Experiment · Simulation
The simulated organism: a quadruped that can be replayed, resumed and audited
This experiment runs a quadruped simulated in the MuJoCo physics engine for four hours, driven by a 50,000-neuron controller whose topology is derived from the Drosophila connectome. The result is not walking: the body stands and moves a few centimetres. The result is verifiability. Each block of the run replays identically, the state reloads identically, and each organ that is disconnected leaves a measured trace.
1. The question
A simulated body that stands under a neural-network controller is nothing new. What is rare is the set of properties of the run: can it be replayed identically, interrupted and then resumed without drift, and can one say what each organ contributes by disconnecting it? The experiment puts these three questions to a simulated quadruped and answers them with dated measurements. A computation whose past behaviour can be established after the fact is a condition for the embedded AI one wants to certify.
2. The set-up
The simulator is MuJoCo: a quadruped with eight joints (one hip and one knee per leg), advanced in steps of 0.02 s. At each step, scripted sensory signals enter the controller, a motor decoder derives eight commands from it, and MuJoCo applies the torques. The controller is a network of 50,000 neurons and 1,571,646 connections, computed in single-precision floating point, whose topology is derived from the FlyWire connectome (v783). The diagram shows the loop and the three points where measurements are taken.
long_life_timeseries.jsonl, sha256 d1de89fa…da3ad8; the plotted values are in JSON on this page. The package is not published.3. The four-hour run
The run chains a cycle of 15 blocks of 250 steps (5 simulated seconds each) over nine basic situations: standing, avoiding an obstacle, fleeing a growing mass, seeking a source by sight and smell, turning (left and right from one cycle to the next), moving forward, recovering from a push, crossing darkness, moving in a mixed world. The cycle repeats 1,152 times, plus 6 blocks. At each block the body is put back at 0.55 m height, drops onto its legs and settles.
The figure follows block 1, replayed on 11 Oct 2026: the angle of the eight joints (in degrees) and the pose of the body every 0.1 s, in perspective and from above. The five simulated seconds are shown over ten seconds.
The net displacement of a block ranges from −3.0 cm to +3.2 cm: the organism holds itself up and oscillates, it does not walk. The table gives the figures of the whole run.
| Quantity | Value | Source file |
|---|---|---|
| Duration | 14,411.91 s (≈ 240 min) | long_life_metrics.json |
| Blocks · steps | 17,286 blocks · 4,321,500 steps, i.e. 24.0 simulated hours | long_life_metrics.json |
| Mean rate | 300.1 steps/s | long_life_metrics.json |
| Trunk falls (< 0.15 m) | 0 | long_life_metrics.json |
| NaN · exceptions | 0 · 0 | long_life_metrics.json |
| Pushes absorbed without a fall | 1,152 / 1,152 | long_life_metrics.json |
| Plasticity updates | 27,187,330 (effect on weights not measured) | long_life_metrics.json |
| Peak memory | 144.1 MB | long_life_metrics.json |
| Net displacement of one block | from −3.0 to +3.2 cm | long_life_timeseries.jsonl |
| Control gates | PASS_FORT · 16 / 16 | long_life_metrics.json |
4. Replayability and bit-exact resumption
One fingerprint per block
Each block produces a fingerprint: the truncated SHA-256 of the controller’s sequence of actions. Over the 17,286 blocks of the run there are 19 distinct fingerprints. From cycle 2 on, each slot of the cycle gives the same fingerprint at every turn, up to the last; only the turn alternates between two fingerprints (left, right). The 24 checkpoints are marked on the time axis.
Replay of 11 October 2026
Blocks 1 to 30 (two cycles) were replayed on 11 October 2026 with the code and the seed of the 28 May run, under MuJoCo 3.15.0. The table compares each quantity with the run’s log. The controller’s outputs coincide to the bit on the 30 blocks. The physics simulator, in floating point, differs from the log in the last digit for 6 displacements out of 30 (maximal gap 1.5 × 10−16 m). Reproducibility from one machine to another is not measured.
| Quantity compared with the log | Identical blocks out of 30 |
|---|---|
| mean reward | 30 / 30 |
| action fingerprint | 30 / 30 |
| plasticity updates | 30 / 30 |
| motor entropy | 30 / 30 |
| reinforcement signal | 30 / 30 |
| falls | 30 / 30 |
| body displacement (simulator, floating point) | 24 / 30 |
Bit-exact resumption
The run wrote 24 checkpoints of the controller’s state, about one every ten minutes, with the fingerprint of the state just before writing (truncated SHA-256 of potentials, weights, step counter and phase). On 11 October 2026, each was reloaded into a fresh organism: the 24 reloaded fingerprints are identical to the 24 stored fingerprints, and the 24 files have the logged sha256.
| no. | time | stored fingerprint | reloaded fingerprint | |
|---|---|---|---|---|
| 1 | 0 h 10 | 1b193981f9a03cbe |
1b193981f9a03cbe |
= |
| 2 | 0 h 20 | 97c8936682335aa6 |
97c8936682335aa6 |
= |
| 3 | 0 h 30 | 4b34dfb714b0e2f7 |
4b34dfb714b0e2f7 |
= |
| 4 | 0 h 40 | 7de3d84b498e9f70 |
7de3d84b498e9f70 |
= |
| 5 | 0 h 50 | 73b4ca216fb6b1d0 |
73b4ca216fb6b1d0 |
= |
| 6 | 1 h 00 | a5a6f037d3343dc4 |
a5a6f037d3343dc4 |
= |
| 7 | 1 h 10 | f624527bbfcb0b50 |
f624527bbfcb0b50 |
= |
| 8 | 1 h 20 | 3e1de520ff3994f8 |
3e1de520ff3994f8 |
= |
| 9 | 1 h 30 | 0b673d09f635edfd |
0b673d09f635edfd |
= |
| 10 | 1 h 40 | 2bfc141efdb2ec59 |
2bfc141efdb2ec59 |
= |
| 11 | 1 h 50 | 4d635c491b95ebe3 |
4d635c491b95ebe3 |
= |
| 12 | 2 h 00 | 25618d1f81f9626e |
25618d1f81f9626e |
= |
| 13 | 2 h 10 | 14f3886f9001510c |
14f3886f9001510c |
= |
| 14 | 2 h 20 | cd11bbeb65de3e84 |
cd11bbeb65de3e84 |
= |
| 15 | 2 h 30 | 27bd5774116e7d53 |
27bd5774116e7d53 |
= |
| 16 | 2 h 40 | 04933df1c99f75fa |
04933df1c99f75fa |
= |
| 17 | 2 h 50 | 0f5913faa19291dd |
0f5913faa19291dd |
= |
| 18 | 3 h 00 | d70f50beea507ff6 |
d70f50beea507ff6 |
= |
| 19 | 3 h 10 | 409bf65931a1a314 |
409bf65931a1a314 |
= |
| 20 | 3 h 20 | 7193c8a491a67100 |
7193c8a491a67100 |
= |
| 21 | 3 h 30 | bd1bece87ede9a53 |
bd1bece87ede9a53 |
= |
| 22 | 3 h 40 | 341045eab96a8490 |
341045eab96a8490 |
= |
| 23 | 3 h 50 | 68f77a424b352e19 |
68f77a424b352e19 |
= |
| 24 | 4 h 00 | c792e9b06bfb1371 |
c792e9b06bfb1371 |
= |
Interruption test: a continuous run of 30 blocks, and the same run stopped after block 15, reloaded into a fresh organism from the checkpoint file, then continued. The full state comprises that of the controller and that of the reinforcement signal that modulates it; the latter is kept separately. The next 15 blocks are identical (action fingerprint, reward, body-trajectory fingerprint) and the final state fingerprint is the same (a24bd32b1cc5ce07). Negative control: if the state of the reinforcement signal is omitted at resumption, the 15 blocks remain identical but the final state fingerprint differs (fbf72165030f234b): the fingerprint detects the omission.
5. The causal audit, organ by organ
Disconnecting an organ and measuring the effect is the way to know what it contributes. Six organs are cut in turn: the simulated visual input, the sensory projection pathway, an associative subgraph, the reinforcement signal, an integrator subgraph, and the motor output (shuffled). For each organ and each of the nine situations, a block of 60 steps is replayed with the organ disconnected, on a fresh organism and then on the organism reloaded from the final checkpoint. The effect is the gap in mean reward with the same block, organ active.
Reading. Cutting the visual input and cutting the projection pathway have the same effect, massive on a single situation, the growing mass: reward goes from 0.298 to 0.000 on the fresh organism and from 0.310 to 0.052 after four hours; the gap does not exceed 0.008 on the eight other situations. The integrator subgraph acts only on the right turn (0.032 → 0.010; 0.034 → 0.013) and nowhere else. The associative subgraph and the reinforcement signal change nothing, to the bit, in these 60 steps. The shuffled motor output moves the reward in both directions, from −0.032 to +0.034.
A null gap only establishes that these 60 steps do not call on the organ. The six values measured at the end of the 28 May run (“obstacle” situation, 60 steps, fresh organism) were found again identically on 11 October, as was the hourly measurement of the cut vision in the growing-mass situation (40 steps: 0.2779 with the organ, −0.00001 without, listed three times in the log).
6. What this prepares
The three properties measured here (replay, resumption, audit) are those a certifiable embedded AI requires: replaying exactly a past decision after an incident, resuming after a power cut without drift, establishing what each component contributes.
This run’s controller computes in floating point: its reproducibility is measured, not guaranteed by the arithmetic. ArithSpec’s integer arithmetic, identical from one machine to another, is the intended way to turn it into a guarantee. The protocol of this page (fingerprint per block, reload, disconnection) replays unchanged on that future controller.
A research programme, an outside test
These results cover domains with nothing to do with each other: the geometry of packings (Packomania, Friedman Packing Center), space mechanics (ESA SpOC 4), number theory (IBM Ponder This) and graphs (FlyWire Codex). In each, the result is entered on a third party’s page, a table, a ranking or a list, and can be rechecked by computation: ESA evaluates each solution with its simulator, Packomania publishes the entries it accepts, IBM publishes a list of names, Friedman keeps a page that credits authors. For FlyWire, the participation belongs to the study of propagation in neural networks and graphs, with a view to embedded AI; the scores start from solutions published by other participants and were submitted after the challenges closed. These results belong to a single research programme: keep only what a certificate proves.
This page does not belong to a challenge: the simulated organism is work of its own, with no outside referee. Its properties are checked by computation, by means of fingerprints: identical replay, identical resumption, organ-by-organ audit. It prepares the certifiable embedded AI the programme aims at.
The principle is public: every hypothesis is tested by computation and kept only if a certificate proves it. Generative AIs serve me as assistants, interchangeable ones: they propose, my AI decides, the certificate settles. The internal workings remain confidential. The results are public.
The certificate changes the nature of proof. A result can be checked without trusting whoever produced it, as a proof can be checked without knowing its author. That is what makes this page possible: you do not have to believe me, you recheck. The submitted result is fixed and its fingerprint is published.
All the work runs on accessible hardware: a desktop PC, a Raspberry Pi 5 and a Raspberry Pi Pico, which also serve to check that the computation stays identical from one machine to another; occasionally, a 32-vCPU instance. The programme aims at a certifiable embedded AI, down to modest machines.
A result that is verifiable without trust, fixed and rechecked: these properties open onto the intended uses:
- certifiable embedded AI, down to modest machines;
- steering generative AIs, keeping only what is proven;
- verifiable identity for AI agents;
- audit after an incident: replaying a past decision exactly;
- reproducible science;
- an open map of certified computations: each result with its certificate, so that what is proven is not recomputed.
The research programme sets out this framework. All the results, with their sources and dates, are gathered on the Results page.
All the results, with their sources and dates