Project Tarski is an attempt to build an analogue neuromorphic accelerator for low-power computing. The idea is simple to state and hard to do. Run a spiking neural network in analogue electronics, on ordinary discrete components, and classify MNIST digits while drawing a fraction of the power a digital chip needs for the same work.
Most AI runs on digital hardware that burns a lot of power. Brains don't. A brain computes in analogue, with spikes, on roughly 20 watts. Tarski takes that literally and builds it from parts you can buy off a reel: op-amps, transistors, resistors, capacitors. No custom silicon.
This repository is the anchor. It holds the project-level context and pulls the real implementation together as submodules.
This is a proof of concept, not a finished product. The board exists: a 350 by 350 mm, four-layer, 3,442-component PCB. It has been powered, reworked, and it spikes on stimulation. What it has not done yet is a full end-to-end MNIST classification on the bench. The board arrived two days after the project deadline, so bring-up is still ongoing.
So read the numbers accordingly. The accuracy figures (mid-80s on 6×6 MNIST) and the power figures come from the trained model and the hardware-accurate emulator. They are what the board is expected to reach, not a measured bench result. Bench validation is the next step.
emulator/: Tarski-Emulator. Boots the real board firmware in simulation and couples it to a physics model of the analogue neurons.gilgamesh/: Gilgamesh. Trains the networks with the hardware's constraints built in, not an idealised model.Schematics/: Tarski-Schematics. The KiCad schematics and PCB layouts for the board itself.
The work runs end to end.
- Design the analogue leaky integrate-and-fire neuron and check it in SPICE.
- Train a network in Gilgamesh against the real circuit behaviour.
- Lay out the board in Tarski-Schematics and build it.
- Emulate firmware and board together, before and after fabrication.
- Measure power and accuracy.
Start here for the whole picture. Work inside the dedicated repos when you want to change something.
SPICE/: circuit-level simulation workspaces and generatorsarduino-mnist/: the Arduino digital baseline and host toolingT1-devboard/: interface firmware for board controlscope-probe/: oscilloscope capture and power-analysis toolingreferences/: datasheets and background materialassets/: collateral and exported artifactsarchive/: superseded material, kept for traceabilityUtilities/: small maintenance scripts
git clone --recurse-submodules https://github.com/ETM-Code/Project-Tarski.gitIf you already cloned it:
git submodule update --init --recursive