ABOUT TRASHCADE
A retro synth lab and browser arcade.
Trashcade is a side project with two halves. The Lab is 8 browser tools that model old hardware: sound chips, CRT tubes, 1-bit beepers, demoscene shaders. The Arcade is 21 small games, some straight homages and some classics with one rule changed.
Most of the code here was written by prompting AI coding models and then playing, breaking, and fixing the results. Some of it came out polished. Some of it came out strange, and the strange ones that were still fun got to stay.
The older experiments that did not hold up are kept in the archive at the bottom of the home page.
The lab tools start from specific machines: the C64 SID and NES 2A03 sound chips, Trinitron aperture grilles, the ZX Spectrum beeper. The quirks of the hardware are the point.
There is not a single audio file on the site. Every kick, laser, and Karen screech is synthesized in real time with Web Audio oscillators, noise buffers, and filters.
Take an arcade standard and change one rule. In Pong Panic, the other paddle runs away from the ball. In Identity Crisis, the power pill turns you into the ghost and the ghosts into Pac-Men.
Most games are plain HTML, CSS, and JavaScript on a canvas, each sandboxed in its own iframe. The 3D ones use Three.js with React Three Fiber. The site counts plays with Google Analytics; the games themselves send nothing anywhere.
A chiptune studio with four sound engines: 1-bit beeper, C64 SID, NES 2A03, and 16-bit arcade FM. Shareable by URL, exports WAV.
A WebGL CRT shader bench: shadow masks, glass curvature, a degauss button, and the 15.7 kHz flyback whine. Drop in your own image.
A 16-step sequencer with 8 synthesized voices that exports 16-bit WAV files for your own game.
The devlogs explain how the tools work: the filter chains, the shader math, and the physics.
All code and sound generation algorithms on Trashcade are fully open for learning, remixing, and direct incorporation into your own indie or commercial software.
All we ask is a simple written attribution in your credits or documentation: