Boda Boda — In-Environment Simulation

Delivered Spine rig (v4.2.40) running in a mock game viewport · 375×812
9:41▮▮▮ ⌁ ▭
KES 8.09
1.00X
LOADING…
5.21x1.03x10.78x52.81x52.81x1.03x10.78x52.81x
+
KSHS 10.00
BET NOW
AUTO
BETTING
AUTO
CASH OUT
+
KSHS 10.00
BET NOW
AUTO
BETTING
AUTO
CASH OUT
+
KSHS 10.00
BET NOW
AUTO
BETTING
AUTO
CASH OUT
+
KSHS 10.00
BET NOW
AUTO
BETTING
AUTO
CASH OUT
ALL BETS
MY BETS
TOP BETS

Round / crash triggers

Live telemetry

booting…

Spine events (live)

waiting…

Implementation constants

Scale: Bajaj Boxer 125 = 2.006 m = 152 px → 75.7 px/m · near lane ×1.15, far lane ×0.82 · all 46 vehicles at true model lengths (anchors in wheel_anchors_all46.json)
Speed: green-light kick 430 → base 950 px/s · surge knee random 1.22–1.39X · 1250 @ 2X · +156/X to 2400 cap · +170 instant on ride_tense (1.5X)
Multiplier: ×1.01 every 0.1 s (≈10%/s), 10 Hz UI · countdown 5 s, light r→y(≤2s)→g
Wheels: ω = v/r everywhere (bike r = 100 skeleton px × 0.237 scale) — rim speed ≡ road speed
Crash contacts (px from rider root): rear −90 (cargo edge) · front +65 (tire edge) · pothole +51 (front wheel)
Decels (px/s²): rear skid 420 · front pair 560 · cargo settle 300 · pothole rear-wheel 280 · rear shove +140 · away 700+5000t
Rules: pothole never <3.00X · instant bust 10% at 1.00X (rear/front/cargo/away) · max-crash cap forces bust at ceiling
Traffic: convoys 1–4 @ rel +420–640 · sports rel +950–1300 every 4–16 s · slow traffic rel −300–360, groups 1–3 · single lane: min gap 46 px, overlap resolver, 46-car no-repeat pool
Start queue: 0–2 waiters (30% none) · smallest cars only at the pole · lead pulls away +230, rest drop −240
Scene: viewport 375×355 @2x res · rider root x175 y336, scale 0.237 · near lane y334-336, far lane y270-273 (α .96) · median y277, light pole x290 · pothole y341, ~86 px wide
Parallax: road band 100% scroll, skyline 62%, split at y258
Approach speeds: rear crash car +1200 px/s abs · front car parked (world closes at scroll) · camera shake 0.45 s on evt_impact · rear-hit wobble ±5° @ 4 Hz, 0.9 s decay
Animations: idle_wait → ride_loop → ride_tense (≥1.5X) · crash_{rear_hit,front_hit,pothole,cargo_drop} → crashed_loop_* on evt_settled/complete · rig timeScale = min(2.3, 1.1+0.8·v/1250) · wheel bones overridden in beforeUpdateWorldTransforms · cargo pinned to world in afterUpdateWorldTransforms
Round timing: auto-crash window 1.5–11 s (pothole 11.3–15.8 s) · settle → 2.2 s → reset · results overlay at impact, not after settle
Betting: stake 10–1000 step 10 · place in countdown, mid-round bets queue for next round (cancellable, refunded) · cashout = stake × live mult · states: BET NOW → WAITING FOR NEXT ROUND → CASH OUT → YOU WON / CRUSHED, settled states clear at next countdown
Runtime: Pixi.js 8.6.6 + spine-pixi-v8 4.2.81 (Spine 4.2 export) · antialias off · single atlas 2048×1024