Infinite Arcade — 8 fictional arcade cabinets in one hall, camera dives into each CRT
A 3D PORTAL demo: the Infinite Arcade with 8 fictional cabinets running in parallel — PADDLE-PAL · CHOMP-MAZE · STRIPE-RACE · BRICK-BUSTER · NEON-SNAKE · ROCKY-RAIN · HOPPER-LEAP · STACK-BOT — and 5 named arcade-rats (Vic, Joni, Marco, Lila, Rex) rotating between cabinets. Camera dives INTO each CRT with warp transition every 62-74s.
Built with:three.js r0.160 (single file)Live CRT canvas on each cabinet renders in-progress game + CRT-warp dive transitionlocalStorage arcade high scores + per-rat lifetime quarters across reseeds
#threejs#portal#autoplay
## What this is
A 3D recreation of an Infinite Arcade hall, with eight fictional arcade cabinets running simultaneously plus the central hall hub. PADDLE-PAL is the fictional Pong-like cabinet on a cyan palette with two paddles bouncing a square ball. CHOMP-MAZE is the fictional Pac-Man-like cabinet on a yellow palette with a smiling chomper navigating a wall maze. STRIPE-RACE is the fictional Out-Run-like cabinet on an orange palette with a striped car and a horizon road. BRICK-BUSTER is the fictional Breakout-like cabinet on a green palette with a paddle and stacked bricks. NEON-SNAKE is the fictional Snake-like cabinet on a hot-pink palette with a growing serpent on a grid. ROCKY-RAIN is the fictional Galaga-like cabinet on a deep-blue palette with a ship dodging falling rocks. HOPPER-LEAP is the fictional Frogger-like cabinet on a lime palette with a hopper crossing platform lanes. STACK-BOT is the fictional Tetris-like cabinet on a purple palette with falling blocks stacking. The central arcade hall has a prize counter, change machine, pinball corner, ticket-redemption desk, and exit door. Five named arcade-rats walk the hall and rotate between cabinets between sessions: Vic, Joni, Marco, Lila, and Rex. Eight in-game heroes star inside each cabinet's world: Paddle-Pal, Chompy, Stripey, Brick-Buster, Slither, Rocky, Hopper, and Stack-Bot. Eighteen director cameras cycle: arcade wide, cabinet walls east and west, change machine close, behind-cabinet POV, prize counter, pinball wide, top-down hall, neon sign close, exit door drift, in-game wide, in-game hero close, CRT reflection, overhead chase, orbit tracking, low hero, sky cam, and wide orbit. Sixty instanced arcade-goers fill the hall. The mini-map shows the floor plan with eight cabinet markers and colored rat dots tracking which rat plays which cabinet.
The arcade *remembers*. localStorage saves per-cabinet high scores and per-rat lifetime quarters between reseeds. After ten minutes the next session arrives; new high scores are bumped, top-scorer banners surface, lifetime quarter counts compound.
You don't play it. You watch it. And it remembers.
## Why this is mind-blowing
The chyron is the secret weapon: "Cycle 12 — Vic just beat Stripey's old high score on STRIPE-RACE: 48,200! Across the hall, Joni starts a new run on NEON-SNAKE." That single line stitches three worlds in one beat — Vic on the STRIPE-RACE in-game-hero close camera with Stripey's striped car drifting around a corner and the dollar counter ticking up to 48,200, Joni on the NEON-SNAKE behind-cabinet camera with the hot-pink serpent slithering on the grid through the live CRT canvas, and the hall wide camera showing both rats at their cabinets simultaneously. Multiply that by eight fictional cabinets each with a live canvas texture rendering the actual in-progress game, a CRT-warp dive transition that rings and scans every 62 seconds, five named rats rotating cabinets while their lifetime-quarter counts compound across reseeds, and a top-scorer banner that surfaces on each new session, and you've got a Stranger-Things-arcade-cozy stream that genuinely earns its multiverse scope. Tone is nostalgic: ALL cabinet titles purely fictional.
Prompt
Build a single-file HTML page that recreates "an arcade hall with 8 fictional cabinets running simultaneously" as a continuous 3D autoplay world with PORTAL multiverse mechanics.
CONCEPT: THE INFINITE ARCADE has 8 fictional arcade cabinets analogous to Pong/Pac-Man/Out-Run/Breakout/Snake/Galaga/Frogger/Tetris but ALL FICTIONAL: PADDLE-PAL, CHOMP-MAZE, STRIPE-RACE, BRICK-BUSTER, NEON-SNAKE, ROCKY-RAIN, HOPPER-LEAP, STACK-BOT. Plus the central ARCADE HALL with prize counter, change machine, pinball corner.
Hard constraints:
- One HTML file, < 200KB.
- three.js r0.160.0 from unpkg, IIFE strict, full disposable cleanup, reseed every ~10 min.
- First body line: <!-- ROUND17_PORTAL v1 -->
- localStorage memory under key `arcade_high_scores_v1` — saves per-cabinet high scores + per-rat lifetime quarters.
Round 17 PORTAL spec:
- 8 cabinet worlds + 1 arcade hall hub = 9 worlds, each with own palette
- Portal travel via diving INTO each cabinet's CRT — live canvas texture renders the in-progress game. Dive-in + dive-out warp overlay (rings + scanlines + per-cabinet color). Auto-portal every 62-74s.
- 5 named rats walk hall + 8 in-game heroes
- 100+ named: 5 rats + 8 heroes + 60 instanced + 95-name pool
- 18 director cameras
- Per-world HUD: "CABINET 3 OF 8: STRIPE-RACE · HIGH SCORE 47,820 · QUARTERS SPENT 142"
- Mini-map = top-down floor plan with 8 cabinet markers + colored rat dots
- Era stamp = flickering neon banner
Tone: warm, nostalgic, joyful. ALL game titles fictional, no real arcade games referenced.
Paste this into Claude, Cursor, or Copilot. Change one thing that matters to you.
What I learned shipping it
How to use a live canvas texture on each cabinet to make every cabinet show its own in-progress mini-game in real time
How to dive a camera INTO a CRT and out the other side in three.js using ring overlays + scanlines + per-cabinet color flash
How to use localStorage to track per-rat lifetime quarters spent and per-cabinet high scores compounding across reseeds