Identitycarry the masked-email hint helper inside the endpoint so the site core stays untouched82c502f
Identityentry screen collects a pseudonymous username + rider number on launch, pre-filled from localStorage or a server suggestion, anonymous play always one click away251a996
Identityclaim-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
IdentityHUD shows the rider name, number and claimed check; telemetry results rows now carry player name/number
Identityship play/dev/identity.php (suggest/register/status/claim against game_players + users.username, guarded bootstrap, masked-email hint for names claimed by another account)
Fixtelemetry and dev-request POSTs use relative dev/ paths so they resolve under /play/ on prod instead of 404ing
Opsremember that virtualdirt workers live in herdr workspace w14c5e353a
Leaderboardsdocument our race data format, proposed MotoGamers model mapping, submission pathway and cheat-resistance plan in docs/leaderboard-integration.md38d3e38
Telemetrypost every completed lap as a MotoGamers-schema session row to /dev/lb.php, appended to var/lapresults.jsonl
Ghostsshow the best-lap path ribbon by default so riders can see the line to chase (G still toggles it)3639a5d
Devreqresolve the queue dir relative to the vhost root so the prompt inbox works on the production server, not only this machine980dda9
July 28, 2026
2 updates
Audiorecut 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
Tracktrack 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 wallac902be
July 27, 2026
34 updates
Audiotrim engine loops to matching zero crossings so the wrap no longer clicks (seamed sound)e1f14ba
Audiovirtual 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
Trackwiden 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
Timingordered sector gates replace the single far checkpoint so line-cutting laps do not rank (worker crashes)45a51f2
TimingHUD shows next gate name and CUT reason when a lap is invalidated
UXG toggles a visible best-lap ghost path line (worker crashes)
Fixturn gates sit on the racing line at the apexes, not at corner centers (center gates were unreachable, no lap would ever validate)
Trackmove 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
Tracktrackness dirt coloring, tree keep-out and grove walls follow the new berm radii
Docsberm geometry rules in AGENTS.md (mirror apex, band straddles the line, ends die at tangents, verify grid + FPV)
Trackmove corner flag posts from the berm toe (r 38.5) to the flat bowl floor (r 34)5336ab3
Devreqstamp queue lines with the hashed bundle name so stale-build reports are obvious
Perfpark loop at 4 Hz with no physics/render when tab hidden (was 60 Hz busy timer)20b3b2c
Perfhalf-rate render when window unfocused, physics stays 60 Hz
Perfsuspend AudioContext on hide, resume on visible
Perfpixel ratio capped at 1.5 (?dpr= overrides) and ?lowspec=1 kills AA/shadows for iGPU
PerfHUD string rebuild throttled to 10 Hz
Trackstart 180 berms 13 deg into the corner so the entry wedge stays flat (prompt to edit track)9729bab
Trackmerge berm tangent fix, corner scenery, audit tooling from designerf3e3cc1
Trackberms 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
Trackberm 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
Trackinfield and off-circuit terrain colored grass-green via trackness so the circuit ribbon reads from the saddle (track 1)
Trackinner edge posts around both track 1 corners and white marker posts inside the track 4 bowls
Trackhay bales moved from mid-lane on the straights to the corner shoulders as a bale wall outside the berm lip (track 1)
Trackborder trees pushed off the corner discs and fence lines extended so no trunks stand on the berms (track 4)
Fixscrub float dust from dev-request JSON via toFixedc73eee2
Fixround snapshot numbers in dev-request payload6829cf5
Fixhard-clear riding keys while Y-box is open70e549c
DevreqY-key in-game request box posts context to queue3769a8f
Devreqper-track feature registry and __where() locator
Integrationsphp queue endpoint plus vite /dev proxy
July 24, 2026
1 update
v98rider 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 kneesbc74869
July 23, 2026
14 updates
v97gentler 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 sc17ae82
v96proper 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 tankef25852
v95crash 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 notes6d89646
v94helmet 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 audio994ce0a
v93arena 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 name3dcd60b
v92track 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 sponsorship4c5a7d1
v91sculpted full-width SX obstacles - ramp-profile jumps (takeoff/deck/landing), full-width whoops, dirt runs out under the bale lines, taller wider berms2c62743
v90SX 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
v87real baobabs - massive pale smooth trunk, gnarled root-like branch crown, sparse tip leaf tufts (per reference photo), still solid colliders3a80174
v86Zambian 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 colliders75a920d
v82roost/dust particle system (single Points draw, 700-particle pool, emission = throttle x load + lateral slip at rear patch)dec0215
v80cornering 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
v61restore tuck/tight-turn bite mid between dead v60 and pivoty peak87ebee5
July 22, 2026
4 updates
v60half top speed, milder lean/tuck (stops laying flat + less corner pivot), upright holds mild lean but still crashable past ~50 deg799689e
v56air steer inversion as toggle (default off = air matches ground, T key / ?airinvert=1)468f1d8
v55outdoor national track (260x170, hillside, huge doubles, long steep berms), scenery, trimesh terrain physics (heightfield raycast has hole lattice at small cells), turning dialed back mid7223043
v48arenacross loop, rate-PD air control, >0.5m steer inversion, grippy tires43f5fe5