How Every Track is Born — Procedural Circuit Generation
The Undercut generates a new circuit for every race. No two tracks are the same. Here's how a blank canvas becomes a fully playable circuit in under a second.
From random points to a real circuit
Every track starts as anchor points on a ring — like numbers on a clock face. Each point sits at a random distance from the center, giving the shape an organic feel.
A gap between two points naturally becomes the main straight — the fastest section where the pit lane and start/finish line live.
The game reads corners like a driver would
Once the path exists, the game measures curvature at every point. High curvature = slow corner. Near zero = fast section.
From curvature alone, a realistic speed profile emerges:
A forward pass computes max speed at each point
A backward pass caps speeds based on braking zones
Each section gets classified: Accelerating, Braking, or Cornering
These zones drive everything — tire wear, overtaking opportunities, dirty air effects, and mistake probabilities.
Automatic racing line
The game computes an outside-apex-outside racing line for every generated circuit. No manual tuning — pure geometry.
Scenery from physics data
Nothing is hand-placed:
Kerbs on the inside of corners
Tire walls on the outside — height scales with danger
Sand traps in front of barriers — depth follows curvature
Grandstands along the fastest straights
Pit lane parallel to the main straight with smooth entry/exit
Four circuit personalities
Same algorithm, different parameters:
High-Speed — 10-12 corners, 5.5-8 km. Flowing arcs, long straights
Technical — 16-20 corners, 3-4.5 km. Tight hairpins, constant direction changes
Street — 13-16 corners, 3.5-5 km. Mix of fast straights and chicanes
Balanced — 12-16 corners, 4-6 km. A bit of everything
The result
In under a second: a smooth circuit with realistic proportions, a full speed profile, a natural racing line, kerbs, tire walls, sand traps, grandstands — all from geometry and physics.
Every race on a new track. Every track with its own personality.
Full devlog with technical details on our website: https://www.the-undercut.com/blog/devlog-001/
Join our Discord for development updates and to share your feedback.