v0.1.0 · verified on CPU · Oct 2026 → Present
The People's Supercomputer
Kill a laptop mid-sentence.
Not one token changes.
Pool idle laptops and gaming PCs into one network that runs open LLMs too big for any of them — and when a node dies mid-sentence, the stream carries on with output token-for-token identical to an uninterrupted run.

Highlights
The problem.
The open models worth running are bigger than the machines most people own, while the laptops and gaming PCs in a house or an office sit idle most of the day. Splitting a model's layers across them is an old idea; doing it with machines that close their lids, drop off the Wi-Fi and belong to strangers is the hard part.
Two things have to hold at once. A dead node can't cost the user their answer — or quietly change it. And a pool that pays contributors in credits has to assume some of them will lie about the work they did.
What I built.
A coordinator splits a Llama-family model's layers across whoever joins, in proportion to the memory each offers, and serves the pool as an OpenAI-compatible API. Activations stream hop to hop over persistent websockets in a plain binary frame — a JSON header and raw tensor bytes, no pickle — and every node keeps its own KV cache. Each node downloads only the safetensors shards that hold its layers.
When a hop can't reach the next one it names the dead node. The coordinator confirms with a probe, re-plans on the survivors, and replays the request step by step. Sampling is seeded by absolute position and the replay feeds the same steps as the original run, so the rebuilt caches are bitwise identical and the stream continues exactly where it stopped, with no repeated text.
Nodes earn credits per token-layer, and only for steps whose attestation chain verifies end to end: each hop signs the digest of the reply it got from the next, so a break pins the fault on one node or an adjacent pair, which is banned. Joining mints nothing, joiners run a real attested step on probation before they serve, and every control request has a deadline and a reply cap. Three independent attack rounds were run against it.
Screens.

What I considered.
Rejected
Re-prefill the whole context in big chunks after a crash
Rejected as the default. It is faster for long outputs, but in bf16 it changed the continuation in 3 of 4 seeds tried. It stays available behind --fast-replay, labelled as inexact.
Rejected
Pay nodes on a plain signed receipt per step
Rejected after review. A receipt proves a node took part, not what it received, so a node lying in the middle of the chain couldn't be singled out. The attestation chain can.
Chosen
Exact step-by-step replay, position-seeded sampling, and credits only for verified work
The output a user gets doesn't depend on which laptop failed. The cost is a replay of one pipeline round trip per token generated so far, and exactness only holds when the layers run on the same device type and dtype before and after the failure.
Results.
- make demo kill -9s one of three node processes after 40 tokens; the pool re-plans onto two, replays, and the streamed text matches a single-process run of the whole model on all 140 tokens.
- Logits parity-tested against transformers for Llama, Llama-3 RoPE, tied Llama, Qwen2 and Qwen3; pooled output matches a local run across crashes and in bf16, including a sharded Qwen2 checkpoint.
- Three adversarial review rounds — credit minting, overdraw, stalling and lying nodes, SSRF and DNS rebinding — each finding fixed with a regression test; 98 tests in CI on Python 3.10–3.13.
- Profiled at 4.5 ms per token on one node against 7.8 ms across three, in-process: pipeline parallelism buys capacity, not speed.
Architecture
How it fits together.
- 01
OpenAI client/v1/chat/completions
- 02
Coordinatortokenize · plan · failover · replay
- 03
Node 1embed + layers 0–4
- 04
Node 2layers 5–8
- 05
Node 3layers 9–11 + head · samples the token
In hindsight
What is verified is narrow: a 1.9M-parameter model, randomly initialised checkpoints, CPU only. A real multi-GB download from Hugging Face and CUDA were both out of reach of the machine it was built on, and mixing CPU and GPU nodes can round differently and change a later token — the coordinator detects that and logs it rather than hiding it. Nodes are still trusted to compute honestly; the receipts prove participation, not correct math. The lesson was where determinism lives: not in the model but in the replay. Seeding by position and feeding the original step shapes is what made 'identical' a test instead of a hope.
Tech specs.
- Type
- Project
- Where
- Personal
- When
- Oct 2026 → Present
- Duration
- 1 mo
- Status
- v0.1.0 · verified on CPU
- Stack
- PythonPyTorchFastAPIWebSocketsEd25519SQLiteDockerGitHub Actions
- Caveats
- Verified on CPU with the bundled 1.9M-parameter model and randomly initialised Hugging Face-format checkpoints. Not yet run on a real multi-GB checkpoint or on CUDA.