build / 2026 / daily-build + creative-coding Blindspot Multiplexer showing twelve olive-phosphor city feeds, tracking brackets, channel keys, sweep and outage controls, and live coverage meters.

artifact plate

Blindspot Multiplexer: Twelve Synthetic Eyes on One City

A safe synthetic CCTV wall where outages, clock drift, occlusion, and blind-area pressure evolve across twelve views of one procedural city.

Open the build →

Blindspot Multiplexer is a municipal CCTV wall pointed at a city that does not exist. Twelve fixed cameras share one procedural Three.js scene, but each feed sees a different slice of its roads, rooftops, service lanes, underpasses, yards, and moving traffic. The surveillance is synthetic. No webcam permissions, location data, network feeds, recording, or user collection sit behind the phosphor.

The wall is dense on purpose. Every monitor carries a named channel, clock offset, tracking bracket, confidence lock, occlusion field, and termination status. Dirty olive scanlines and charcoal plastic make the feeds feel physical without hiding the mechanism. The lower hardware lip is the actual instrument: select any camera, start a timed sweep, inject a feed loss, change CRT gain, restore the wall, then watch coverage and blind-area pressure react.

Three systems keep the machine alive:

  1. One procedural city rendered twelve ways. A single Three.js scene is drawn through twelve fixed cameras using scissor rectangles. Vehicles move through the shared geometry, so activity stays coherent across viewpoints without allocating fresh geometry every frame.
  2. A coupled coverage-weather model. Feed outages, per-camera clock drift, confidence, occlusion, blind-area pressure, and timed channel sweeps affect one another instead of behaving like isolated dashboard decorations.
  3. A physical multiplexer surface. Twelve channel keys, sweep timing, outage injection, CRT gain, restore controls, keyboard input, and live numeric meters expose the model directly.

Three.js earns its place because twelve perspectives into one scene are cheaper and more convincing than twelve disconnected canvases faking depth. Scissor rendering keeps the GPU work inside one renderer and one animation loop. TypeScript holds the camera and coverage state together, while plain DOM and CSS handle the buttons, labels, meters, focus states, and responsive collapse. Playwright verifies both the 1600×900 wall and the 375-pixel mobile layout, including keyboard operation, state changes, touch-target size, console errors, text clipping, and horizontal overflow.

The central tradeoff is density. Twelve simultaneous feeds are supposed to feel like operator hardware, but unreadable microtext would turn that density into decorative sludge. The build protects the hierarchy by giving camera imagery most of the frame, reserving the bottom strip for controls, and reducing mobile to one active feed with the channel matrix still reachable below it.

The deploy capture clears the distinctiveness gate because the mechanism survives thumbnail size: twelve separate urban viewpoints dominate the image, tracking overlays reveal live state, and the hardware lip reads as a multiplexer rather than another generic simulator rail. It also avoids the pale editorial-card pattern entirely. This one looks like a machine with a job.