Skip to content

Projects

23 things on the bench. Chips rebuilt from their own dies, instruments reading real hardware, math you can operate, and a few ideas that might not ship. Most were built with Claude as co-pilot. The sites run on my own servers, and the code is on GitHub.

Chips and consoles

A processor and a games console, simulated from photographs of their actual silicon, not from a description of what they should do. The wiring maps were traced by the visual6502 project and by Quietust, and are theirs (CC BY-NC-SA). I built the engines that run them, the tests that keep every fast engine faithful to the exact one, and the bench that sets a real console beside the simulation. It all lives at tinymachines.ai.

A stretch of the MOS 6502 die photographed from above with its metal still on: a dense green-gold weave of wiring, with bond pads along the left edgeMOS 6502 · surface
Part of the 6502 die, metal still on, from the photographs the visual6502 team traced the chip from. The simulator in the first card runs that trace. Photograph: the visual6502 project, CC BY-NC-SA 3.0.

simulator

The 6502

The chip that made home computers affordable, simulated one transistor at a time. A team opened up a real 6502, photographed it and traced every wire by hand. This runs their trace: 3,510 transistors, updated twice per clock tick. It also keeps an archive of everything that team published, with every link checked.

RustWebAssemblyWebGL2

AlsoRun it at tinymachines.ai

/6502

console

The NES, from the transistors up

A working Nintendo in the browser. Its two chips run as fast models, and each model is checked against a slower one that copies the real chip wire for wire. It has sound and the fuzz of an old TV signal. You bring the game file, and it never leaves your browser.

RustWebAssembly

AlsoPlay it

tinymachines.ai/nes (another site, opens in a new tab)

analysis

The autopsy

Old games taken apart by playing them. A program runs the game, watches what each piece of code does, and names the pieces it recognises. The result is a readable listing that rebuilds the original game exactly. Only the structure is published, never the game itself.

RustWebAssemblyPythontinymachines.ai/autopsy (another site, opens in a new tab)

libraryearly

halfphi

The simulation engine on its own, as a free open-source library. It runs and analyses chips traced from photographs of their silicon. Five chips load the same way.

RustMIT licencegithub.com/tinymachines/halfphi (another site, opens in a new tab)

hardwarein progress

The NES bench

A stock Nintendo on the desk, wired so one script can press its buttons and measure its signals. The real console and the simulation get the same inputs, and their outputs are compared.

Arduino UNORaspberry Pi 4SCPIKiCad

AlsoThe repository

tinymachines.ai/nes/bench (another site, opens in a new tab)

Tools

Things other people can use: the design system under this page, and four tools for people who work out of a truck. The platforms I architect and build for clients are on the work page.

design system

The tinymachines style kit

The design system this site is built with: colours, type and plain-CSS components, with a gallery of every piece. Its first rule is the one you are looking at. Light paper is for writing. A dark panel is a machine reporting.

CSS custom propertiesNo framework

AlsoThe specimen zoo

tinymachines.ai/style (another site, opens in a new tab)

field tools

Free tools for the trades

A quote pad, a change-order pad with signature, a job photo stamper and a voice material list. No app store, no account, no subscription, and nothing you type, sign or photograph uploads anywhere. They work for the person holding the phone and report to no one.

Browser onlyWorks without signal

AlsoHouse Calls

/housecalls/tools

Instruments on this server

Dashboards that read real hardware on this network: a Geiger counter, radios, cameras, a router. Hardware goes away, and when it does the page says so. Each card carries a dot: filled means the instrument is answering right now, hollow means it is not. The detail is on the bench.

entropy source

Hotbits

Truly random numbers from radioactive decay, tested around the clock. A Geiger counter clicks, a Raspberry Pi times the gaps between clicks, and each gap is compared with the next. No formula makes up a number.

The Geiger counter: checking

Geiger counterRaspberry PiNIST SP 800-90B/trng

sensory machine

Meatball

A caseless home server built from other people's cast-offs, taught to see, hear, think and speak. Every model runs on the metal and nothing touches the cloud.

The camera is offline

Salvaged GPUsLocal LLMWhisper

AlsoField notes

/meatball

airspace receiver

Dragonfli

A Raspberry Pi, a 1090 MHz ADS-B receiver and an FAA registry lookup, running in the garage. Every aircraft is one this antenna heard directly. Nothing is fetched from a flight-tracking service.

The perception bus: checking

ADS-BGPSMapLibreUDP

AlsoAirspace mapThe perception bus

/dragonfli

door log

Knock knock

Everything that has knocked on this server, across every site it hosts. One view, three outcomes: blocked by the router, caught by a trap for scanners, or let in. Almost all of it is bots.

The edge firewall count: checking

nginxOpenWrt/visitors

node health

Fleet

Every computer in the house network reports its own health: disk, temperature, load, radio and internet link. This page shows them all in one place.

The fleet collector is offline

UDP bus/fleet

Math instruments

A map of prime-number theory, and four tools built from it. Build the zeta function, hear its zeros play the primes, test the primes directly, and watch the oldest prime-finding method run as weather. All five run in your browser with nothing to install and nothing fetched. The sixth is Einstein's gravity, also solved in your browser.

The Primality Atlas: a dark terrain map of prime-number theory, its landmarks drawn as labelled rings and squares across coloured regions of proven, conjectured and open ground

the map

Primality Atlas

Prime-number theory drawn as a map you can explore, with twenty-nine landmarks. It shows what is proven, what is only believed, what nobody knows, and what has been proven impossible.

One HTML fileNo network requests/projects/prime-atlas
Zeta Forge: the partial sums of the zeta series drawn as a walk of short arrows that spirals in to a point, with the step count and the running value printed under it

the workbench

Zeta Forge

Build the zeta function, ζ(s) = Σ n⁻ˢ, one term at a time. Each term is an arrow. Where the arrows end up is the value. A zero is a walk that comes back to where it started.

One HTML fileNo network requests/projects/zeta-forge
Prime Orchestra: the true prime staircase drawn as a rising line over a field of vertical marks, one at each prime, with the wave controls beneath

the reconstruction

Prime Orchestra

Rebuild the count of prime numbers from waves, one at a time. Each wave comes from a zero of the Riemann zeta function. Add enough of them and the primes appear out of pure harmonics.

One HTML fileNo network requests/projects/prime-orchestra
Primality Zoo: a grid of residue rows for one prime pattern, cells lit where the pattern occupies a class, above a chart of the counted occurrences against the predicted curve

the field instruments

Primality Zoo

Three tools for looking at the first two million numbers. Test whether a pattern of primes can exist at all. Watch primes race to fill different remainders. See how a prime's last digit tends not to repeat in the next one.

One HTML fileNo network requests/projects/prime-zoo
Storm Plates: one swell drawn under a row of numbered planks, the planks it breaks marked, with a second plate of stacked swells below

the weather

Storm Plates

The oldest way to find primes, drawn as waves in six pictures. Each prime sends a wave under a bridge of numbered planks. Where a crest breaks a plank, that number is out. The planks left standing are prime. The last picture shows the same storm two ways: once from primes, once from zeros.

One HTML fileNo network requests/projects/storm-plates
Critical Collapse: an amber ring of field energy seen from above, beside plots of the field and the horizon signal over radius, with the amplitude slider below

numerical relativity

Critical Collapse

Einstein's equations, solved live on your device. Tune a pulse of energy to the edge between flying apart and collapsing into a black hole. Narrow in on the tipping point, and measure the universal constant γ ≈ 0.374 yourself.

In the browserNo external requests/projects/critical-collapse

History

Where the machines came from. A lineage chart drawn in 1961, carried forward to the processors in your pocket and the supercomputers at the top of the list.

The Computer Tree: a radial tree of computers around ENIAC, teal dots from the 1961 chart, orange dots added since, one lineage traced in blue

dataset

The Computer Tree

The US Army's 1961 family tree of the computer, copied out and grown one ring per decade to 2025. It holds 542 machines, from ENIAC to Fugaku. Pick one and the tree traces its ancestry. The data is free to take, with its known gaps written down.

542 machines614 linksCSV and JSON/projects/computer-tree

Things that might not ship

Hardware hacks, radio toys and AI experiments. This is where the next product gets sketched. Most sketches stay sketches.

The faceplate of the Rain Bird ESP-6Si controller the sidecar is designed for, with its analog scheduling dial

hardware designv0.1

Turfy

An AI sprinkler brain that falls back to the old timer. It sits beside a 1990s Rain Bird controller and waters by the weather. It only takes over while it is provably healthy. If anything fails, relays hand the lawn back to the Rain Bird.

Raspberry Pi555 watchdogMCP23017Relays/projects/turfy

Sketches 3

  • Sovereign (GitHub, opens in a new tab)2025A tiny programming language for programs that improve themselves. It has 32 basic instructions. Some of them ask a local AI model to write code, and to rewrite it after an error.
  • ADDAI (GitHub, opens in a new tab)2025A homegrown EEG monitor. Brainwave readings arrive from a NeuroSky-based headset over a serial port and are drawn live in a web page.
  • ZephyrprivateA network of AI devices that talk to each other directly over raw Wi-Fi signals, with no ordinary internet plumbing. The code is private, so there is nothing here to open.

The rest

This is the short list. The bench lists every page this server serves and says which instruments are up. The work page has the client projects, and counts every repository across four GitHub organisations from the commit log. The lab itself is at meatball.ai.

Anti-cloud. Host local, think global.

Terminal
/terminal