BeamNG.Earth
A 1:1 scale streamed Earth for BeamNG.drive: real elevation and satellite imagery, floating origin, LOD streaming from a companion server
Live marble racing and betting for tech team timeouts.
GamesTypeScript · PLpgSQLGitHub @ZeroClickLabsOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
A live marble-racing betting game for team video calls. The host screen-shares a 3D physics race; everyone else bets Marble Bucks from their phone. The lowest finishers are knocked out each race until one marble is crowned champion.Read the full README ↗A live marble-racing betting game for team video calls. The host screen-shares a 3D physics race; everyone else bets Marble Bucks from their phone. The lowest finishers are knocked out each race until one marble is crowned champion.
Odds are pari-mutuel: each market is one pot, and everyone who bet on a winning option splits it in proportion to their stake, so odds move as money comes in. A small virtual seed on every option keeps early odds sane.
Music and sound effects play on the host's machine only — when sharing on Zoom, tick Share sound. Each theme has its own generated soundtrack (calm while betting, full band while racing, a lead line near the finish), plus countdown beeps, crowd cheers, boost whooshes, a rolling rumble that follows the marbles' speed, and fanfares. Mute/volume is in the host's top bar. To use your own music, see public/music/README.md.
.env.local.example to .env.local (or .env) and fill in the Project URL and publishable key.supabase/migrations/*_init.sql in the dashboard SQL Editor, or supabase link --project-ref <ref> && supabase db push.npm install && npm run dev, then open http://localhost:3000.Tip for testing alone: each *.localhost subdomain gets its own anonymous player, e.g. host on localhost:3000 and players on p1.localhost:3000, p2.localhost:3000.
Push to GitHub and import it into Vercel, adding the two NEXT_PUBLIC_SUPABASE_* env vars. The QR code uses whatever URL the host screen is served from.
| Path | What |
|---|---|
lib/race/track.ts | Seeded procedural track: banked S-bends, helixes, spinners, pegs, boost pads |
lib/race/engine.ts | Rapier physics race: progress, standings, checkpoint/lead/finish events. Deterministic per seed |
lib/race/renderer.ts, runner.ts | three.js view, camera director, slow-mo, animation loop |
lib/game/director.ts | Host-side race control: locks betting, opens/settles live props, eliminates, advances rounds |
lib/game/odds.ts | Pari-mutuel odds (mirrors private.settle_market in SQL) |
supabase/migrations/ | Schema, RLS and RPCs. Clients only read tables; all writes go through host/player-checked functions |
components/host/HostGame.tsx | The screen-shared host view |
components/play/PlayGame.tsx | The phone view |
/sandbox | Race-only page for tuning tracks and cameras without a backend |
npm test runs the odds and race-engine tests (headless physics).