Get daily updates by email
One short digest per day, only on days the game actually changes. Sign in to subscribe.
Sign in to subscribe
August 2, 2026
12 updates
-
Terrain
extract the four track height functions and shared noise/lane helpers into src/terrain.js so game and sim bots sample the same groundH objects
7e8e182
-
Multiplayer
sim bots ride the real terrain profile at groundH plus chassis clearance instead of hovering or clipping through jumps
-
Multiplayer
orient sim bots to the surface normal plus heading so they pitch up jump faces and roll into berms
-
Multiplayer
bare ?mp on the live site connects through the sites own secure websocket endpoint instead of localhost
6e4eaf1
-
Multiplayer
LAN relay on :8788 with per-track rooms, 25 Hz state fanout, gate countdown, live positions and results board
aa1dd1a
-
Multiplayer
remote riders use the shared bike mesh plus kinematic contact proxies so bar-to-bar shoves are felt
-
Multiplayer
sim bots follow the corridor for solo dicing tests, and ?mp stays off the solo path via dynamic import
-
Leaderboards
forward accepted lap rows from lb.php to MotoGamers external results API with Bearer credential from out-of-band var/mg-relay-config.php
5e4b6dc
-
Leaderboards
retry 429/5xx via var/mg-retry.jsonl lazy sweep, drop 4xx, never retry 401/403, log outcomes to var/mg-forward.jsonl
-
Leaderboards
cheap sanity checks before forward (monotonic sectors, 5..600s lap band, non-empty build) with local JSONL audit still kept
-
Docs
mark the six Jon open questions answered per motogamers-reply.md and note relay forward-leg status plus independent VD account claim
-
Leaderboards
keep the MotoGamers external-results API handover spec with the integration notes
e3e0fa5
July 30, 2026
6 updates
-
Testing
SHOT env captures the penalty banner when the slowdown fires
8424962
-
Testing
anti-cut harness rides Washougal for the clean, gate-skip and crash scenarios (its berms are script-ridable under the calmer steering) with steer pulsing, tightened r46-to-r43 berm lines and corridor probes for all four tracks
50e082c
-
Changelog
refresh the update feed
-
Anticut
measure the skipped arc from the true corridor exit point so slow-burning cuts can no longer arm late and read as zero gain
036e011
-
Testing
deepen the Anaheim pocket cut to the flat floor and slow the cut zone so the excursion clears the arming budget like a deliberate human cut
-
Changelog
refresh the update feed
July 29, 2026
29 updates
-
Anticut
correct the Anaheim corridor berm arcs to the ridden side and direction so infield cuts east of the berm read as off-course
18f7622
-
Testing
ride the Anaheim berm waypoint arcs in the travel direction so the autopilot stops tumbling across the berm faces
-
Changelog
refresh the update feed
-
Anticut
narrow the Anaheim corridor to the racing envelope (lane w9, berm w8) so deliberate horseshoe-pocket cuts read as off-course while clean berm-edge moments stay inside the grace budget
e7ad6de
-
Testing
anti-cut harness retargets to the nearest waypoint after crashes and stalls instead of respawn-looping, slow-caps the SX rhythm lane and arcs for the calmer steering, rides cut scenarios on a second armed loop, and moves the slowdown cut to track 2 where it skips no gate
-
Changelog
refresh the update feed
-
Changelog
refresh the update feed
471d14c
-
Testing
scripted clean-lap, slowdown-cut, gate-skip-cut and crash scenarios for the anti-cut system
8424155
-
Anticut
off-course cut detection polices timed laps against a per-track racing-line corridor, ignoring crashes, airborne segments, respawns and free riding
ba984b9
-
Anticut
cuts that gain time cost a named-tunable 2x slowdown penalty with a HUD banner counting down, gate-skip cuts invalidate the lap and send the rider back to the leave point
-
Telemetry
lap rows carry penalty ms, distance cut, penalty kind and an under-penalty flag, with session penalties accumulated into the results penalty field
-
Handling
holding a full turn now settles into a calm arc instead of creeping toward a tip-over
74790e5
-
Handling
lean from steering plus body English together is capped well clear of the fall line
-
Crash
the rider lies on the ground about a second before walking back, no more long naps
-
Testing
added a held-turn tolerance probe and made the ride checklist survive the login gate and a sleepy browser tab
-
Changelog
generate public/changelog.json from git history at deploy time (tools/changelog.mjs)
030a3b9
-
Changelog
lazy daily digest included from play/dev/identity.php mails game_subscribers the last 24h of commits with a token unsubscribe link
-
Changelog
digest locks via var/changelog-digest.lock + 20h marker, dev logs composed mail to var/changelog-digest-log.jsonl
-
Identity
carry the masked-email hint helper inside the endpoint so the site core stays untouched
82c502f
-
Identity
entry screen collects a pseudonymous username + rider number on launch, pre-filled from localStorage or a server suggestion, anonymous play always one click away
251a996
-
Identity
claim-to-account via the core auth modal loaded in-page (jQuery + semantic + rendered modals snapshot), round-tripping through ?claim=1 after login/signup since auth.js always redirects
-
Identity
HUD shows the rider name, number and claimed check; telemetry results rows now carry player name/number
-
Identity
ship play/dev/identity.php (suggest/register/status/claim against game_players + users.username, guarded bootstrap, masked-email hint for names claimed by another account)
-
Fix
telemetry and dev-request POSTs use relative dev/ paths so they resolve under /play/ on prod instead of 404ing
-
Ops
remember that virtualdirt workers live in herdr workspace w14
c5e353a
-
Leaderboards
document our race data format, proposed MotoGamers model mapping, submission pathway and cheat-resistance plan in docs/leaderboard-integration.md
38d3e38
-
Telemetry
post every completed lap as a MotoGamers-schema session row to /dev/lb.php, appended to var/lapresults.jsonl
-
Ghosts
show the best-lap path ribbon by default so riders can see the line to chase (G still toggles it)
3639a5d
-
Devreq
resolve the queue dir relative to the vhost root so the prompt inbox works on the production server, not only this machine
980dda9
July 28, 2026
2 updates
-
Audio
recut the full-throttle loop from the clean 20.9-21.7s stretch of the source recording so the kid's voice and other bikes revving are gone (old cut came from 20.2-24.2s which included pit chatter)
6485fbf
-
Track
track 4 berm ends run much wider - crest to 6m, outer slope reaches r~63.5 mid-corner flaring to ~70 at the tangents, long tapering run-out instead of an abrupt end wall
ac902be
July 27, 2026
34 updates
-
Audio
trim engine loops to matching zero crossings so the wrap no longer clicks (seamed sound)
e1f14ba
-
Audio
virtual 5-speed drivetrain - rpm sweeps with road speed in gear, snaps up with throttle, engine braking drags it down, airborn revs flare, clutch-dump at crawl, shift dips, tiny pitch wander
-
Track
widen track 4 berms into one banked bowl r 43-59 so the face catches tight apex lines and the wide line alike (was a narrow band that hooked away from the rider)
160dcc9
-
Timing
ordered sector gates replace the single far checkpoint so line-cutting laps do not rank (worker crashes)
45a51f2
-
Timing
HUD shows next gate name and CUT reason when a lap is invalidated
-
UX
G toggles a visible best-lap ghost path line (worker crashes)
-
Fix
turn gates sit on the racing line at the apexes, not at corner centers (center gates were unreachable, no lap would ever validate)
-
Track
move track 4 180 berms out onto the real U-turn line (band r 44-60, crest r~54, lanes run z=+-55 so riders arc at r 50-58; the old 40-55 band sat on the infield)
2afb724
-
Track
trackness dirt coloring, tree keep-out and grove walls follow the new berm radii
-
Docs
berm geometry rules in AGENTS.md (mirror apex, band straddles the line, ends die at tangents, verify grid + FPV)
-
Track
move corner flag posts from the berm toe (r 38.5) to the flat bowl floor (r 34)
5336ab3
-
Devreq
stamp queue lines with the hashed bundle name so stale-build reports are obvious
-
Perf
park loop at 4 Hz with no physics/render when tab hidden (was 60 Hz busy timer)
20b3b2c
-
Perf
half-rate render when window unfocused, physics stays 60 Hz
-
Perf
suspend AudioContext on hide, resume on visible
-
Perf
pixel ratio capped at 1.5 (?dpr= overrides) and ?lowspec=1 kills AA/shadows for iGPU
-
Perf
HUD string rebuild throttled to 10 Hz
-
Track
start 180 berms 13 deg into the corner so the entry wedge stays flat (prompt to edit track)
9729bab
-
Fix
prompt-to-edit box accepts spaces (only arrows preventDefault)
d58ef5d
-
Track
merge berm tangent fix, corner scenery, audit tooling from designer
f3e3cc1
-
Track
berms now die at the corner tangents instead of running 20+ m up both straights (aFade spans half the arc, zero by the entry/exit line)
fca281f
-
Track
berm crest faces the racing line (face/lip on the inside of the band, fall-off outside), corner discs raised and widened so the bowl reads as one surface
-
Track
infield and off-circuit terrain colored grass-green via trackness so the circuit ribbon reads from the saddle (track 1)
-
Track
inner edge posts around both track 1 corners and white marker posts inside the track 4 bowls
-
Track
hay bales moved from mid-lane on the straights to the corner shoulders as a bale wall outside the berm lip (track 1)
-
Track
border trees pushed off the corner discs and fence lines extended so no trunks stand on the berms (track 4)
-
Track
audit tooling - fpv helmet-cam screenshot rig, autopilot lap runner, terrain probe/bmp maps (tools/)
-
UX
rebrand Y-box as prompt to edit track
2aacf18
-
Fix
scrub float dust from dev-request JSON via toFixed
c73eee2
-
Fix
round snapshot numbers in dev-request payload
6829cf5
-
Fix
hard-clear riding keys while Y-box is open
70e549c
-
Devreq
Y-key in-game request box posts context to queue
3769a8f
-
Devreq
per-track feature registry and __where() locator
-
Integrations
php queue endpoint plus vite /dev proxy
July 24, 2026
1 update
-
v98
rider modeling booth + clean MX look - extract rider construction from main.js into src/rider.js (buildRider(THREE) -> { group, parts }); same group/parts structure and transforms the game and crash anims own - booth.html: studio page (pedestal, grid floor, 3-point lighting, OrbitControls, 7 preset views + ride/stand pose toggle, window.__booth hook) - look: back to clean pre-v96 simplicity on v96 proportions - no shoulder-pad cap, no back plate, no crown stripe; bold two-tone blue/white kit, white MX lid (shell, chin bar, blue peak, goggle strap + lens), boots with shin plates, gloves, bent elbows and knees
bc74869
July 23, 2026
14 updates
-
v97
gentler landing slams + shock pre-load pump - compression damping only firms past a slam-speed gate, so ruts stay plush while true hard landings quit bouncing back out - hold S to squat into the pegs, tap W to spend a small loft (never launches off flat ground); bleeds unused over ~1.5 s
c17ae82
-
v96
proper MX rider - torso tops out at shoulder-pad jersey with number plate, MX helmet as own posable group (shell, chin bar, peak, goggle band, two-tone stripe), head above-forward of shoulders, no more scuba tank
ef25852
-
v95
crash system - rider ejects as free body, bike tumbles and spills, scramble/lift/remount recovery + track 4 Washougal, engine/crowd audio (N, default muted), dev-request hook notes
6d89646
-
v94
helmet cam eyes the landing - airborne, the helmet cam leans forward and the gaze drops toward the landing spot, ramping with smoothed airtime (whoop skips barely register) - AGENTS.md: bank realistic gear, engine sound, stadium crowd audio
994ce0a
-
v93
arena floor fix, menu key, helmet cam - fix: riding off the stadium slab dropped you onto an invisible net at y=-2.4 under the floor; stadium tracks now get a flat arena concourse at slab height (physics + visible floor) so you ride out and back - stadium kill bounds now follow the bowl ring (r>60) instead of a loose square: no more riding into the stands - M or Escape returns to the track menu - helmet cam: C cycles chase/side/top/helmet - rigid at the rider's head, rolls with the bike, wider 82 FOV, rider mesh hidden while active; HUD shows cam name
3dcd60b
-
v92
track 3 Dallas SX '26, poster menu, ghost rider, body/steer split + fixes - track 3: Dallas SX '26 - 4-lane serpentine (whoops/triples/doubles/tabletop), red Texas clay, night sky, east spawn facing -x, keyed 1/2/3 - poster-card track menu at /play/ (SVG art, hover page-tint, click or 1/2/3); ?track=N deep-links - ghost rider: lap line + far checkpoint, records best lap and replays it as a translucent cyan bike, HUD lap/best/GHOST - body L/R split: A/D = steer only, arrows = rider body weight; rider mesh offsets - arrows now also steer at 85% authority (natural turn keys with body english) - fix: initial spawn rotation missing (Dallas bike faced +x until first respawn) - fix: Dallas berm horseshoes faced the infield apex, flipped to the outside of each u-turn to match the bale arcs - AGENTS.md: queue zambianoutdoors.com bale/banner sponsorship
4c5a7d1
-
v91
sculpted full-width SX obstacles - ramp-profile jumps (takeoff/deck/landing), full-width whoops, dirt runs out under the bale lines, taller wider berms
2c62743
-
v90
SX stadium polish - tamer floodlights, much wider lanes/jumps/berms, hay bales properly lining both sides of every lane and around berms (solid, sponsor logos)
51487e7
-
v88
track selector (?track=1/2, keys 1/2) + track 2: indoor supercross at sundown - groomed rhythm double + triple, tabletop, 11-whoop section, smooth banked 180 berms, dusk sky dome, floodlights, sponsor banners, warm haze + long shadows
43a7e6b
-
v87
real baobabs - massive pale smooth trunk, gnarled root-like branch crown, sparse tip leaf tufts (per reference photo), still solid colliders
3a80174
-
v86
Zambian savanna - acacia/mopane/scrub/baobab flora (merged-geometry instancing), 16 big SOLID baobabs (cylinder colliders), giraffes/zebra herd/lying lion, 4 warthog runners crossing the track as kinematic obstacles, few sponsor bales (virtualdirt + floogy logos) with colliders
75a920d
-
v82
roost/dust particle system (single Points draw, 700-particle pool, emission = throttle x load + lateral slip at rear patch)
dec0215
-
v80
cornering that actually arcs without spinning - yaw excluded from tire slip (normal-component, orientation-proof), lateral+camber at COM height (no outlean fight), gravity topple feedforward (no lean droop), solo-contact tire forces to pure COM (tuck spin fix), yaw torque capped, caster gated on sideslip, low-speed yaw clamp, power back (driveForce 1400, drag caps top speed)
88b1687
-
v61
restore tuck/tight-turn bite mid between dead v60 and pivoty peak
87ebee5
July 22, 2026
4 updates
-
v60
half top speed, milder lean/tuck (stops laying flat + less corner pivot), upright holds mild lean but still crashable past ~50 deg
799689e
-
v56
air steer inversion as toggle (default off = air matches ground, T key / ?airinvert=1)
468f1d8
-
v55
outdoor national track (260x170, hillside, huge doubles, long steep berms), scenery, trimesh terrain physics (heightfield raycast has hole lattice at small cells), turning dialed back mid
7223043
-
v48
arenacross loop, rate-PD air control, >0.5m steer inversion, grippy tires
43f5fe5