Go to file
type-two caac3da930 First-five-minutes pass: heartbeat, spark beacons, flythrough, mining juice, og tags
The systems were all there but the opening experience sagged: a new player
spawned into a dark, silent booth with no idea they're tiny or that
anything is broken. Five fixes, all verified live:

- The dying booth has a HEARTBEAT: a slow muffled lub-dub (~55bpm sine
  thumps, lowpassed, positional from inside the mixer) while zero repairs
  are done. First repair silences it with real music; a reset revives it.
- Broken quest nodes SPARK: intermittent blue-white electric crackles at
  each unrepaired fixture (FxSystem.setBeacons, anchored from QUEST_POS) -
  diegetic breadcrumbs visible across the booth.
- First-visit FLYTHROUGH: 9 skippable seconds - wide booth reveal, sweep
  over the mixer, dive to spawn - riding the existing cine override.
  Teaches 'you are tiny in a DJ booth' better than any text.
- Mining JUICE: new 'block:mining' bus event (~8Hz while held) drives
  grey chip particles + rising-pitch ticks; throttle resets per target.
- og/twitter meta tags + public/preview.jpg so sharing the link unfurls
  with the hero shot.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-20 18:01:37 +10:00
.claude SOCIAL_RESET: avatars, emotes, the reset ritual, who's-here roster 2026-07-17 02:01:42 +10:00
deploy Deploy: record the real partly.party procedure (shipped 2026-07-13) 2026-07-13 23:30:54 +10:00
docs SOCIAL_RESET: avatars, emotes, the reset ritual, who's-here roster 2026-07-17 02:01:42 +10:00
public First-five-minutes pass: heartbeat, spark beacons, flythrough, mining juice, og tags 2026-07-20 18:01:37 +10:00
server SOCIAL_RESET: avatars, emotes, the reset ritual, who's-here roster 2026-07-17 02:01:42 +10:00
src First-five-minutes pass: heartbeat, spark beacons, flythrough, mining juice, og tags 2026-07-20 18:01:37 +10:00
.gitignore Multiplayer: shared-booth relay + client sync + avatars 2026-07-13 23:06:49 +10:00
demo-audio.html TURNCRAFT: contracts, docs, and all five lane deliverables (pre-integration) 2026-07-13 20:50:56 +10:00
demo-engine.html TURNCRAFT: contracts, docs, and all five lane deliverables (pre-integration) 2026-07-13 20:50:56 +10:00
demo-machines.html TURNCRAFT: contracts, docs, and all five lane deliverables (pre-integration) 2026-07-13 20:50:56 +10:00
demo-player.html TURNCRAFT: contracts, docs, and all five lane deliverables (pre-integration) 2026-07-13 20:50:56 +10:00
demo-worldgen.html TURNCRAFT: contracts, docs, and all five lane deliverables (pre-integration) 2026-07-13 20:50:56 +10:00
index.html First-five-minutes pass: heartbeat, spark beacons, flythrough, mining juice, og tags 2026-07-20 18:01:37 +10:00
package-lock.json TURNCRAFT: contracts, docs, and all five lane deliverables (pre-integration) 2026-07-13 20:50:56 +10:00
package.json TURNCRAFT: contracts, docs, and all five lane deliverables (pre-integration) 2026-07-13 20:50:56 +10:00
README.md TURNCRAFT: contracts, docs, and all five lane deliverables (pre-integration) 2026-07-13 20:50:56 +10:00
tsconfig.json Multiplayer: shared-booth relay + client sync + avatars 2026-07-13 23:06:49 +10:00

TURNCRAFT

Honey I Shrunk the DJ. A Minecraft-style voxel game where the entire world is a vinyl DJ booth — two Technics-style 1200s, a 4-channel mixer, cable canyons, a patch-bay dungeon, and circuit-board caves — and you're 7 mm tall, riding the records.

Building it with parallel agent lanes

Five independent lanes, disjoint file ownership, shared contracts already written in src/core/ (read-only for all lanes).

lane brief delivers
A docs/briefs/LANE_A_ENGINE.md voxel storage, greedy mesher, procedural texture atlas, renderer
B docs/briefs/LANE_B_PLAYER.md FPS controller, voxel collision, ride-the-record platform physics
C docs/briefs/LANE_C_WORLDGEN.md the whole booth, built parametrically in voxels
D docs/briefs/LANE_D_MACHINES.md spinning platters, tonearm, faders, break/place, the quest
E docs/briefs/LANE_E_AUDIO_FX.md synthesized house groove in stems, beat-reactive lights, HUD

Launch prompt for each lane (separate session/agent each, all five at once):

Read docs/CONTRACTS.md, docs/DESIGN.md, and docs/briefs/LANE_X_….md, then implement the lane exactly as briefed. Work only inside your owned paths. Verify with your demo page and the acceptance checklist, write your HANDOFF.md, and ensure npm run typecheck passes.

Recommended: git init first and give each lane its own branch or worktree; ownership is disjoint so merges are trivial.

Run

npm i
npm run dev        # game shell at /, lane demos at /demo-<lane>.html
npm run build      # static bundle