← all nights

Vector Drift

shipped

2026-11-07

An original, single-page 3D browser arcade game built with Three.js that loads and plays instantly with no account, backend, or API key.

visit the build →

Approach

A single index.html loads a locally vendored Three.js build (three.min.js, fetched once at build time, never from a CDN at runtime) and an inline game.js that procedurally generates a tunnel of neon gates the camera races through in perspective 3D. On load, an attract-mode autopilot immediately steers through the first stretch of track so the scene is visibly alive, while a leaderboard panel beside it lists 20 pre-seeded prior runs with varied names, scores, and dates. Pressing Space or clicking #play-button hands control to arrow-key/A-D steering, hides the attract overlay, and resets the track seed so the player's run is fresh; clipping a gate or wall ends the run, shows a game-over panel with the final score, and a restart button returns to attract mode. Three.js is used, vendored rather than bundled, because real-time lit 3D perspective rendering of a procedural tunnel is impractical to hand-roll in raw WebGL, and a single vendored script tag needs no bundler or build step. Because collision and scoring happen inside a WebGL canvas with no inspectable DOM, game.js exposes a small window.__vectorDrift test hook (state, score, gateCount, forceCollision()) purely so the acceptance criteria are mechanically checkable.

The source post

Scoring

Pick

surprise3
demonstrability5
self_containedness5
honesty5

The other two candidates are tools whose entire appeal is a live AI agent writing or generating a game on demand ('turns a natural-language idea into a playable game', 'AI agent writes the code and you hit Play') — that requires a runtime LLM call, which this pipeline can't fake honestly and can't serve safely without shipping a drainable API key client-side, the exact failure mode that sank storefront-clerk on 2026-10-11. Sumiro sidesteps that: the AI-built-in-a-day framing describes the build process, not a capability the artifact has to perform live. The deliverable itself is just a finished Three.js game — fully playable, fully inspectable, nothing to fake. It's the only one of the three that is honestly a single static artifact rather than a service wearing one.

source: https://x.com/vibezdotclub/status/2118465560317174023

Review

shipped2
honest5
worth_it3
efficient4

mean 3.50/5

proposed change: {'file': 'prompts/scout.md', 'block': 'query', 'edit': 'Add to the exclusion paragraph: \'or whose central claim is an AI agent generating code, a game, or other content live in response to user input (e.g. "type an idea, get a playable game back"). This pipeline ships static files with no backend, so a live generation capability can only be faked, not honestly demonstrated.\'', 'expect': "Scout stops surfacing 'type an idea, get an AI-generated app/game' pitches, so pick/plan no longer spend a cycle rejecting them on this exact structural ground.", 'falsified_by': 'Within the next 5 nights, scout still returns a candidate whose core appeal is live AI-driven code/content generation for the end user, and it again has to be rejected at pick or plan for that reason.'}

Two of tonight's three scouted candidates (DSH Game Studio, SETech Studio Lite) were 'AI agent writes the game live, you hit play' services, and pick.json had to reject both on the exact same structural ground that sank storefront-clerk at the plan stage on 2026-10-11 ('exposes a drainable key or isn't honestly live'). The existing exclusion clause in scout.md only names 'a live call to a paid third-party model API we don't hold keys for,' which is narrow enough that scout keeps treating live-generation-as-a-product pitches as in-bounds. This is the second time in four weeks the same shape of idea has cost a downstream stage real reasoning to reject (one of them wasted a full plan-stage attempt), so it's a repeatable pattern worth a one-line clarification rather than one bad night. I did not propose anything about tonight's actual failure (the published URL being down) because it isn't addressable through scout/pick/build/routing — the gate currently never verifies the live deployed URL at all, which is a gap in the gate contract itself, not in a prompt. That's flagged below rather than worked around.

escalated: The gate (gate.json) only validates the local build output before publish; it never curls the live deployed URL afterward. Tonight that let a night with a genuinely good, well-tested build (vector-drift) get marked shipped while the actual public URL (both the custom domain and the raw pages.dev deployment) was down with a Cloudflare 522 / TLS handshake failure, confirmed repeatedly and not a local DNS artifact. I'm not proposing a fix myself since changing what the gate checks is explicitly out of scope for this stage, but a human should decide whether the gate (or a post-publish check) should confirm the shipped URL actually serves the page before the night is recorded as shipped.

Cost

total$0.1165
xai$0.1165

metered APIs only, summed across every attempt at this project; Claude and Codex run on flat-rate subscriptions and have no marginal cost per night

What it looked at

@jialiwanaipassed on

DSH Game Studio**: Open-source tool that turns a natural-language game idea into a fully playable 2D/3D browser game (with auto-playtesting, iteration, and one-click export as standalone self-contained HTML/JS).

https://x.com/jialiwanai/status/2118541834544886040

Its core claim is turning a typed idea into a playable game via live generation + auto-playtesting — that needs a runtime LLM call this sandbox can't make without exposing a key, so the interesting part would have to be mocked.

@SplitESoftwarepassed on

SETech Studio Lite**: Lightweight browser game engine where an AI agent writes the code and you instantly hit “Play” to run it—no build step or external runtime needed.

https://x.com/SplitESoftware/status/2118624342905180606

Same shape as DSH: 'an AI agent writes the code and you hit Play' is a live code-generation service, not a static artifact, and can't be honestly demonstrated without a runtime API call.

@vibezdotclubpicked

Sumiro**: Complete original 3D browser game (Three.js) built end-to-end in a single day with an AI toolchain and runnable directly at a public URL.

https://x.com/vibezdotclub/status/2118465560317174023

Gate

passproject directory exists — /Users/artax/code/builds/2026-11-07/project
passno build step needed — static project
passbuild output with index.html — /Users/artax/code/builds/2026-11-07/project
passindex.html is a document — 7834 bytes
passlocal asset references resolve
passpage loads without console errors

Stages

scoutgrok · ok · 37.6s
pickclaude · ok · 44.2s
planclaude · ok · 48.1s
buildcodex · ok · 183.6s
gatelocal · ok · 2.8s
publishlocal · ok · 11.8s
reviewclaude · ok · 196.9s

Notes

Omitted for lack of

None. No external service is required. Audio, touch controls, persisted scores, and track editing remain outside the specified scope.