CMB Track Designer is a spline-based level design toolkit for Unity that lets
you build complete race circuits without manual modellingCMB Track DesignerBuild complete race circuits in Unity without modeling a thing. CMB Track Designer is a spline-based level design toolkit that turns a handful of control points into a fully-formed track — drag points in the Scene view and watch the geometry generate in real time.FeaturesTrack surface — procedural road with adjustable width, camber, beveled edges, thickness, and painted centre/lane lines. Follows elevation or locks flat.Kerbs — striped rumble strips with configurable profile, bevels, alternating colour patterns, end caps and width tapering.Barriers — four types in one tool:Sweep — solid concrete/jersey-style barriersWire Fence — chain-link with rails, posts and dome capsArmco — corrugated W-beam guardrails with square posts and a flip-profile optionPrefab — place any prefab along the path with spacing, stacking, staggered offsets and colour cyclingPit Lane — a narrower branch surface with pit boxes, dashed separator lines and entry/exit tapers.Terrain Generator — sculpts Unity terrain beneath the track to match its shape and elevation, with margin, falloff and smoothing.Bake to mesh — export any generated element as a reusable mesh asset.Workflow One unified editor window (Tools > CMB > Track Designer) with mode tabs for every element, quick-access controls, and a full categorised options panel. Shift-click to add points, drag to shape, hit Rebuild. Duplicate freely — each object keeps its own independent mesh.Ideal for racing games, driving prototypes, and rapid circuit blockouts.ArchitectureClean three-layer pattern per element: Spline (data + math) → MeshGenerator (procedural geometry) → Editor (scene interaction). A single CMBTrackDesignerWindow (EditorWindow) ties everything together and auto-detects the selected component.All code lives in the CMB.TrackDesigner namespace, split into Scripts/Runtime and Scripts/Editor (editor code is properly separated so it strips from builds).SplinesCatmull-Rom interpolation through control points stored in local space (moves with the Transform).Adjustable sampling resolution (lengthRefinement); open or closed-loop.Parallel-transport frame (right/up vectors) with flip-prevention for stable orientation around curves.Optional lockToGroundY to flatten to a ground height, or free 3D elevation following point Y.Mesh generationFully procedural, rebuilt on demand. Meshes written to child GameObjects with MeshFilter / MeshRenderer / MeshCollider.Track: beveled cross-section slab, per-ring camber rotation, double-sided geometry with correct per-face normals, UV mapping scaled to track width, separate sub-lines mesh for centre/lane markings.Barriers: swept profiles (W-beam corrugation, box beams), submesh-per-colour for pattern cycling, cylinder/box primitives for posts.Each rebuild creates a fresh Mesh instance so duplicated objects stay independent (no shared-mesh cross-editing).Vertex-colour material support via an included VertexColour shader for pattern colouring.Editor toolingScene-view handles: click-to-select points, position handles to drag, Shift+Click to add points via raycast onto colliders or a ground plane.Full Undo support (Undo.RecordObject / RegisterCreatedObjectUndo)."All Options" panel renders every serialized field grouped into [Header]-based category tabs (SerializedObject-driven).Bake saves generated meshes as .asset files to Assets/CMB_TrackDesigner/BakedMeshes.TerrainDirectly edits Unity TerrainData heightmap beneath the track, with pixel-accurate sampling, weighted blending, configurable margin/falloff, smoothing passes, and Undo.Requirements / NotesUnity Editor tool (uses UnityEditor APIs); runtime components use [ExecuteInEditMode].Materials/shader target the URP/Lit shader by default, with fallbacks.No external package dependencies




