Skip to content

feat(tracks): a half-width ramp at Bell Deer's Spoon exit - #341

Merged
khiet merged 4 commits into
mainfrom
feat/330-half-width-ramp
Nov 8, 2026
Merged

khiet merged 4 commits into
mainfrom
feat/330-half-width-ramp

Conversation

@khiet

@khiet khiet commented Nov 8, 2026 •

Copy link
Copy Markdown
Owner

Summary

Spoon's exit becomes a choice: the left half flies off a boosted ramp, the right half stays on the ground for the tow. Closes #330.

 Layout
   elevation: [bridge_hill]          # lifts the whole road, walls included
-    Ramp(s, s + 12, 1.5)
+  ramps: [Ramp(s, s + 8, 0.5, right=0, left=6)]   # a slope on part of the asphalt
   boost_pads:
+    BoostPad(ramp foot - 2, offset=3)             # same half, into the foot

 build
   Asphalt
+    ramp_in_the_asphalt             # slope shares the road's vertices at the foot
   Scenery
+    ramp_markings                   # kerb stripes, striped sides, white lip

Three things differ from a plain reading of the issue, each measured through step and recorded in ADR 0101:

  • Lower and later ramp. It goes from 1.5 x 12 m to 0.5 x 8 m, and from 14 m to 36 m along back-straight. A pad's 1 s boost ends in flight off a higher ramp, and the old lip's next checkpoint was closer than any landing. Airtime is about 0.4 s, not much more than a hop's 0.3 s.
  • Slope only, in the Asphalt mesh. A separate wedge threw karts at up to 17 m/s, side and lip faces stopped karts dead on the flat half, and road under the slope killed the launch.
  • Bots keep their line. That line is on the flat half, and traffic still puts some on the ramp. Choosing it on purpose is card X5.

Evidence

  • Before: the whole road jumps; every kart leaves the ground.
    After:
kart 3 m left of centre   off the lip at 962 m, 42 m/s; lands 979 m, 0.4 s later, 0.2 s boost left
kart 3 m right of centre  never airborne, no boost
bots, 40 seeds x 3 levels  0 of 960 unfinished; 200-race stuck sweep clean

cargo nextest run   573 passed, 8 skipped
pnpm test           1137 passed
pnpm test:tracks    OK
replays             new bell-deer-ramp-launch fixture; native and wasm agree

Screenshots:

Pad and ramp ahead, from its half On the slope, boosted
The ramp ahead, from the flat half Passing its side on the flat half

Merge Danger

Door: two-way

Layout, sidecar and replays revert together.

Blast Radius: Bell Deer

Every Bell Deer race changes. A kart cutting under the slope's last 1.6 m reads grass for a few ticks and drops to the off-track cap. Projectiles ride the centreline's height, so they pass through the slope's drawing. Other courses' exports are byte-identical.

khiet added 4 commits November 8, 2026 08:40
The ramp covers the left half of the road with a boost pad leading into
it and a flat line beside it, so Spoon's exit is a choice: air or the
ground and the tow. A layout gains `ramps`, a slope bounded across the
road and built into the asphalt mesh (ADR 0101).

Closes #330
The Ramp docstring and ADR 0101 now say what the mesh does, an unused
height method goes, every bot level runs the field test, and a new
fixture carries a launch through the determinism gate.

Refs #330
@khiet khiet linked an issue Nov 8, 2026 that may be closed by this pull request
@khiet
khiet marked this pull request as ready for review November 8, 2026 09:01
@khiet
khiet merged commit d69ac12 into main Nov 8, 2026
3 of 4 checks passed
@khiet
khiet deleted the feat/330-half-width-ramp branch November 8, 2026 09:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

A half-width ramp at Bell Deer's Spoon exit

1 participant