Skip to content

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.

4 hof continuous execution: 4,321,500 steps, a single seedrun of 28 May 2026, sealed log
24 / 24checkpoints reloaded with an identical fingerprintmeasured on 11 Oct 2026 on the 24 files
15 / 15blocks identical after stop, reload and resumptionmeasured on 11 Oct 2026
6 / 6audit values of 28 May found again to the bitmeasured on 11 Oct 2026

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.

SimulatorMuJoCo, quadruped with 8 joints, 0.02 s step
Controller50,000 neurons, 1,571,646 connections, float32; topology derived from the FlyWire connectome (v783)
Run28 May 2026 · 14,411.91 s · 17,286 blocks of 250 steps (4,321,500 steps) · seed 7
VerdictPASS_FORT: 16 control gates out of 16
SourceSealed run package of 28 May 2026; log long_life_timeseries.jsonl, sha256 d1de89fa…da3ad8; the plotted values are in JSON on this page. The package is not published.
The controller runs a 50,000-neuron subgraph of the full connectome (139,255 neurons). The motor regions are approximations not certified biologically. The body is a quadruped, not a fly.
Situation15 blocks in a cycle250 steps per blockSimulated sensorsscripted signals+ body stateController50,000 neuronsfloat32MuJoCo8 joints0.02 s stepthe body state returns to the sensors at every stepState fingerprintSHA-256 of potentials, weights,step counter and phase:checkpoint, reload, resumptionAction fingerprintSHA-256 of a block’s sequenceof actions: block-by-block replay,17,286 blocks comparedDisconnectionone organ cut, same block,same seed: the effect is the gapin reward with the organ active
Principle diagram of the experiment (not to scale).

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.

perspective viewtop view (front of the body on the right)10 cmP1P2P3P4trunk height (m)angle of the 8 joints (degrees)0.20.40.6−10°−5°0°5°10°001122334455simulated time (s)simulated time (s)P1P2P3P4hipknee
Block 1 (standing), 250 steps = 5 simulated seconds, slowed ×2. The eight joints stay within 6° of their rest position (stops: ±34° at the hips, ±40° at the knees). The trunk goes from 0.55 m to 0.25 m in 0.24 s, then settles around 0.28 m. Data: JSON.

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.

0 h1 h2 h3 h4 h1 standing2 obstacle3 looming mass4 source5 source and danger6 turn (left, right)7 noisy world8 forward9 push10 mixed world11 dark to light12 conflicting odours13 moving obstacle14 novelty zone15 long dark stretchstate checkpoint (24)One colour = one fingerprint. Rows are uniform from one turn to the next, except turn 1 of rows 1 to 3.Row 6: two half-bands, one per fingerprint (left turn, right turn).
Action fingerprint of the 17,286 blocks, by slot of the cycle. Data: JSON.

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.

161718192021222324252627282930action fingerprint of the block (first 4 characters)final state fingerprintContinuous runf2c1fd78096ddb1f69208ad74fa807f636ec666e35a6b5b85c195bd3d263a24bd32b================Stop after block 15, reload into a fresh organism, resumptionf2c1fd78096ddb1f69208ad74fa807f636ec666e35a6b5b85c195bd3d263a24bd32b===============≠Resumption with the reinforcement-signal state omitted (negative control)f2c1fd78096ddb1f69208ad74fa807f636ec666e35a6b5b85c195bd3d263fbf72165= : same block fingerprints. ≠ : the final state fingerprint detects the omission.
Interruption test, blocks 16 to 30 and final state fingerprint. Data: JSON.

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.

Fresh organism (seed 7)standingobstaclelooming masssource (sight, smell)right turnmixed worldforwardpushdarknessintact reward0.1670.0520.2980.4990.0320.0670.0500.1950.342Visual input0−0.002−0.298+0.001+0.0010+0.0010+0.002Sensory projection pathway0−0.002−0.298+0.001+0.0010+0.0010+0.002Associative subgraph000000000Reinforcement signal000000000Integrator subgraph0000−0.022000+0.002Shuffled motor output0+0.005−0.003+0.005−0.003+0.003+0.008+0.034−0.032Organism reloaded from the final checkpoint (4 h)standingobstaclelooming masssource (sight, smell)right turnmixed worldforwardpushdarknessintact reward0.1670.0490.3100.4990.0340.0660.0490.1950.340Visual input00−0.258+0.001−0.002000+0.008Sensory projection pathway00−0.258+0.001−0.002000+0.008Associative subgraph000000000Reinforcement signal000000000Integrator subgraph0000−0.020000+0.002Shuffled motor output0+0.008−0.003+0.005−0.007+0.003+0.0080−0.025lower rewardhigher reward0: gap null to the bit
Gap in mean reward (60 steps) when the organ is disconnected, by situation. Measured on 11 Oct 2026. Data: JSON.

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

→ The Connectome page