Expérience · Simulation
L’organisme simulé : un quadrupède rejouable, reprenable et auditable
Cette expérience fait tourner pendant quatre heures un quadrupède simulé dans le moteur physique MuJoCo, piloté par un contrôleur de 50 000 neurones dont la topologie est dérivée du connectome de la drosophile. Le résultat n’est pas la marche : le corps tient debout et se déplace de quelques centimètres. Le résultat est la vérifiabilité. Chaque bloc de l’exécution se rejoue à l’identique, l’état se recharge à l’identique, et chaque organe débranché laisse une trace mesurée.
1. La question
Un corps simulé qui tient debout sous un contrôleur à réseau de neurones n’a rien d’inédit. Ce qui est rare, ce sont les propriétés de l’exécution : peut-on la rejouer à l’identique, l’interrompre puis la reprendre sans écart, et dire ce que chaque organe y apporte en le débranchant ? L’expérience pose ces trois questions à un quadrupède simulé et y répond par des mesures datées. Un calcul dont on peut établir après coup ce qu’il a fait est une condition de l’IA embarquée que l’on veut certifier.
2. Le dispositif
Le simulateur est MuJoCo : un quadrupède à huit articulations (une hanche et un genou par patte), avancé par pas de 0,02 s. À chaque pas, des signaux sensoriels scénarisés entrent dans le contrôleur, un décodeur moteur en tire huit commandes et MuJoCo applique les couples. Le contrôleur est un réseau de 50 000 neurones et 1 571 646 connexions, calculé en virgule flottante simple précision, dont la topologie est dérivée du connectome FlyWire (v783). Le schéma montre la boucle et les trois points où l’on mesure.
long_life_timeseries.jsonl, sha256 d1de89fa…da3ad8 ; les valeurs tracées sont en JSON sur cette page. Le paquet n’est pas publié.3. L’exécution de quatre heures
L’exécution enchaîne un cycle de 15 blocs de 250 pas (5 s simulées chacun) sur neuf situations de base : tenir debout, éviter un obstacle, fuir une masse qui grossit, chercher une source par la vue et l’odeur, tourner (à gauche et à droite d’un cycle à l’autre), avancer, se rétablir après une poussée, traverser le noir, évoluer dans un monde mixte. Le cycle se répète 1 152 fois, plus 6 blocs. À chaque bloc, le corps est replacé à 0,55 m de hauteur, retombe sur ses pattes et se stabilise.
La figure suit le bloc 1, rejoué le 11/10/2026 : l’angle des huit articulations (en degrés) et la pose du corps toutes les 0,1 s, en vue en perspective et en vue de dessus. Les cinq secondes simulées sont montrées en dix secondes.
Le déplacement net d’un bloc va de −3,0 cm à +3,2 cm : l’organisme se tient et oscille, il ne marche pas. Le tableau reprend les chiffres de l’exécution entière.
| Grandeur | Valeur | Fichier source |
|---|---|---|
| Durée | 14 411,91 s (≈ 240 min) | long_life_metrics.json |
| Blocs · pas | 17 286 blocs · 4 321 500 pas, soit 24,0 h simulées | long_life_metrics.json |
| Cadence moyenne | 300,1 pas/s | long_life_metrics.json |
| Chutes du tronc (< 0,15 m) | 0 | long_life_metrics.json |
| NaN · exceptions | 0 · 0 | long_life_metrics.json |
| Poussées absorbées sans chute | 1 152 / 1 152 | long_life_metrics.json |
| Mises à jour de plasticité | 27 187 330 (effet sur les poids non mesuré) | long_life_metrics.json |
| Mémoire vive au pic | 144,1 Mo | long_life_metrics.json |
| Déplacement net d’un bloc | de −3,0 à +3,2 cm | long_life_timeseries.jsonl |
| Portes de contrôle | PASS_FORT · 16 / 16 | long_life_metrics.json |
4. Rejouabilité et reprise bit-exacte
Une empreinte par bloc
Chaque bloc produit une empreinte : le SHA-256 tronqué de la suite des actions du contrôleur. Sur les 17 286 blocs de l’exécution, il existe 19 empreintes distinctes. À partir du cycle 2, chaque emplacement du cycle redonne la même empreinte à chaque tour, jusqu’au dernier ; seul le virage alterne entre deux empreintes (gauche, droite). Les 24 sauvegardes sont marquées sur l’axe du temps.
Rejeu du 11 octobre 2026
Les blocs 1 à 30 (deux cycles) ont été rejoués le 11 octobre 2026 avec le code et la graine de l’exécution du 28 mai, sous MuJoCo 3.15.0. Le tableau compare chaque grandeur au journal de l’exécution. Les sorties du contrôleur coïncident au bit près sur les 30 blocs. Le simulateur physique, en virgule flottante, diffère du journal au dernier chiffre pour 6 déplacements sur 30 (écart maximal 1,5 × 10−16 m). La reproductibilité d’une machine à l’autre n’est pas mesurée.
| Grandeur comparée au journal | Blocs identiques sur 30 |
|---|---|
| récompense moyenne | 30 / 30 |
| empreinte des actions | 30 / 30 |
| mises à jour de plasticité | 30 / 30 |
| entropie motrice | 30 / 30 |
| signal de renforcement | 30 / 30 |
| chutes | 30 / 30 |
| déplacement du corps (simulateur, virgule flottante) | 24 / 30 |
Reprise bit-exacte
L’exécution a écrit 24 sauvegardes de l’état du contrôleur, une toutes les dix minutes environ, avec l’empreinte de l’état juste avant l’écriture (SHA-256 tronqué des potentiels, des poids, du compteur de pas et de la phase). Le 11 octobre 2026, chacune a été rechargée dans un organisme neuf : les 24 empreintes rechargées sont identiques aux 24 empreintes enregistrées, et les 24 fichiers ont le sha256 consigné.
| n° | instant | empreinte enregistrée | empreinte rechargée | |
|---|---|---|---|---|
| 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 |
= |
Test d’interruption : une exécution continue de 30 blocs, et la même exécution arrêtée après le bloc 15, rechargée dans un organisme neuf depuis le fichier de sauvegarde, puis poursuivie. L’état complet comprend celui du contrôleur et celui du signal de renforcement qui le module ; le second est conservé à part. Les 15 blocs suivants sont identiques (empreinte des actions, récompense, empreinte de la trajectoire du corps) et l’empreinte d’état finale est la même (a24bd32b1cc5ce07). Contrôle négatif : si l’on omet l’état du signal de renforcement à la reprise, les 15 blocs restent identiques mais l’empreinte d’état finale diffère (fbf72165030f234b) : l’empreinte détecte l’omission.
5. L’audit causal, organe par organe
Débrancher un organe et mesurer l’effet est la manière de savoir ce qu’il apporte. Six organes sont coupés tour à tour : l’entrée visuelle simulée, la voie de projection sensorielle, un sous-graphe associatif, le signal de renforcement, un sous-graphe intégrateur, et la sortie motrice (mélangée). Pour chaque organe et chacune des neuf situations, un bloc de 60 pas est rejoué avec l’organe débranché, sur un organisme neuf puis sur l’organisme rechargé de la sauvegarde finale. L’effet est l’écart de récompense moyenne avec le même bloc, organe actif.
Lecture. La coupure de l’entrée visuelle et celle de la voie de projection ont le même effet, massif sur une seule situation, la masse qui grossit : la récompense passe de 0,298 à 0,000 sur l’organisme neuf et de 0,310 à 0,052 après quatre heures ; l’écart ne dépasse pas 0,008 sur les huit autres situations. Le sous-graphe intégrateur n’agit que sur le virage à droite (0,032 → 0,010 ; 0,034 → 0,013) et pas ailleurs. Le sous-graphe associatif et le signal de renforcement ne changent rien, au bit près, à ces 60 pas. La sortie motrice mélangée déplace la récompense dans les deux sens, de −0,032 à +0,034.
Un écart nul établit seulement que ces 60 pas ne sollicitent pas l’organe. Les six valeurs mesurées à l’issue de l’exécution du 28 mai (situation « obstacle », 60 pas, organisme neuf) ont été retrouvées à l’identique le 11 octobre, ainsi que la mesure horaire de la vision coupée dans la situation de la masse qui grossit (40 pas : 0,2779 avec l’organe, −0,00001 sans, relevée trois fois dans le journal).
6. Ce que cela prépare
Les trois propriétés mesurées ici (rejeu, reprise, audit) sont celles qu’exige une IA embarquée certifiable : rejouer exactement une décision passée après un incident, reprendre après une coupure d’alimentation sans écart, établir ce que chaque composant apporte.
Le contrôleur de cette exécution calcule en virgule flottante : sa reproductibilité est mesurée, elle n’est pas garantie par l’arithmétique. L’arithmétique entière d’ArithSpec, identique d’une machine à l’autre, est la voie visée pour en faire une garantie. Le protocole de cette page (empreinte par bloc, rechargement, débranchement) se rejoue tel quel sur ce futur contrôleur.
Un programme de recherche, une épreuve extérieure
Ces résultats couvrent des domaines sans rapport entre eux : la géométrie des empilements (Packomania, Friedman Packing Center), la mécanique spatiale (ESA SpOC 4), la théorie des nombres (IBM Ponder This) et les graphes (FlyWire Codex). Dans chacun, le résultat est inscrit sur la page d’un tiers, table, classement ou liste, et se revérifie par calcul : l’ESA évalue chaque solution avec son simulateur, Packomania publie les entrées qu’il retient, IBM publie une liste de noms, Friedman tient une page qui crédite les auteurs. Pour FlyWire, la participation s’inscrit dans l’étude de la propagation dans les réseaux de neurones et les graphes, en vue de l’IA embarquée ; les scores partent de solutions publiées par d’autres participants et ont été transmis après la clôture des défis. Ces résultats relèvent d’un même programme de recherche : ne retenir que ce qu’un certificat prouve.
Cette page ne relève pas d’un défi : l’organisme simulé est un travail propre, sans arbitre extérieur. Ses propriétés se vérifient par le calcul, au moyen d’empreintes : rejeu à l’identique, reprise à l’identique, audit organe par organe. Il prépare l’IA embarquée certifiable visée par le programme.
Le principe est public : chaque hypothèse est testée par le calcul et n’est retenue que si un certificat la prouve. Des IA génératives me servent d’assistants, interchangeables : elles proposent, mon IA décide, le certificat tranche. Le fonctionnement interne reste confidentiel. Les résultats, eux, sont publics.
Le certificat change la nature de la preuve. Un résultat se vérifie sans faire confiance à celui qui l’a produit, comme une démonstration se vérifie sans connaître son auteur. C’est ce qui rend cette page possible : vous n’avez pas à me croire, vous revérifiez. Le résultat déposé est figé et son empreinte est publiée.
Tout le travail tourne sur du matériel accessible : un PC de bureau, un Raspberry Pi 5 et un Raspberry Pi Pico, qui servent aussi à vérifier que le calcul reste identique d’une machine à l’autre ; ponctuellement, une instance de 32 processeurs virtuels. Le programme vise une IA embarquée certifiable, jusque sur des machines modestes.
Un résultat vérifiable sans confiance, figé, revérifiable : ces propriétés ouvrent sur les usages visés :
- l’IA embarquée certifiable, jusque sur des machines modestes ;
- le pilotage des IA génératives, dont on ne retient que ce qui est prouvé ;
- l’identité vérifiable des agents d’IA ;
- l’audit après incident : rejouer exactement une décision passée ;
- la science reproductible ;
- la carte ouverte des calculs certifiés : chaque résultat avec son certificat, pour ne pas recalculer ce qui est prouvé.
Le programme de recherche détaille ce cadre. Tous les résultats, avec leurs sources et leurs dates, sont réunis sur la page Résultats.
Tous les résultats, avec leurs sources et leurs dates