Chapter 20 · agent-neuron · Lab
Neuron Space
A network drawn in 3D before any traffic: pulses on the links as a run plays, gold answers arcing back, and the whole run replayed under a scrubber at the end.
The run, drawn before and after
Neuron Space is the viz repo’s 3D page for a run: pick a network file and it is drawn before any traffic, spheres for the neurons by kind, links laid left to right by depth, a composed neuron a glass shell with its inside dim, because sealing means a run never names it. The drawing comes from the engine itself: describe_network, the sixth tool on the engine’s MCP surface, added to the Rust engine for this page.
A browser cannot speak stdio, so the viz repo’s bridge starts one engine child and turns its JSON-RPC into endpoints the page can call: the description on load, then a run as a job with its trace kept and its stream subscribed. A Run plays live (pulses along the links, answers arcing back gold, a drop or an unknown flashing at the neuron that made it, links brightening as traffic accumulates), and at the end the kept trace replaces the live list, replayable under the scrubber at the foot of the page.
Two modes cover the series. Pick a file, which the first shot below shows: the alert storm’s network drawn at rest, scrubber at zero, log empty. Or attach: the page follows the demos repo’s runs/current.json and joins each run as it starts, where human networks refused by the run tools are still drawn, the person’s neuron breathing, labelled waiting, while the desk waits on them. The second shot is a colony run replayed to its end, the run’s own ground lines in the log. The two are recordings of the page, not a live view.


The rule it proves
The surface is the engine’s MCP one (M3, decision 0009): the Rust engine speaks JSON-RPC over stdio (a network check, run_network, start_run and poll_run as jobs, read_trace at the end), and describe_network is the tool the drawings come from, added after the milestone’s five. The bridge holds no second copy of a network: it reads its inputs file and asks the engine for everything else, so what the page draws is what the engine would run.
The live half is SPEC 9.1 read twice: the stream the page plays while a run goes is the trace itself, and the replay is read_trace on the kept run. What the page refuses to be is a second desk: the run tools refuse human networks (the desk is the person’s surface, not an MCP one), and attach watches from outside only (3.4, Appendix D), the answers happening on the desks where they belong.
Run it
cd agent-neuron-viz && npm install && npm run dev # the page, on http://localhost:5180
# open http://localhost:5180/?attach, then run any demo of the demos repo beside itWhat it is not
Not the multiplayer table built out: the page draws, plays and replays, it answers no item (that is the desks’ work), and the two shots are recordings of demo runs on one machine, not a hosted view any reader can join.
