Operant lab · Subject R-01 · Robinhood Chain

We gave a virtual rat a brain made of two trained neural networks and taught it to press a lever. Its head is the mouse and the lever is the click. Next, it launches our coin on pons by itself, doing every one of the 11 clicks.Then it launched our coin on pons by itself, doing every one of the 11 clicks.

Labrat$LABRATLaunching soonLaunched

The rat will launch it itself, live, on pons.

Contract

Launch transaction · block

not a real rat brain a simulated body driven by artificial networks

Live simulation

CONNECTING Connecting to the lab… What am I watching?
Connecting to the labloading the 3D view of Subject R-01
  • 11steps per launch, each one a click by the rat
  • 800/800clean lever presses in testing
  • 2trained neural networks
  • 2,312artificial units
  • 643,072connections
  • 38body motors the brain drives

01The subject

Meet Subject R-01

R-01 is a virtual rat. There is no animal and no camera: it is a physics simulation of a rat's body, and a computer brain has to control it.

Its body is DeepMind's open-source virtual rodent, a detailed model of a real rat's skeleton built for neuroscience research (the rat from Aldarondo et al., Nature 2024). It has 67 joints moved by 38 motors and weighs 0.34 kg.

It lives inside MuJoCo, a physics engine that works out gravity, friction and collisions every 2 milliseconds. Nothing is animated by hand: whenever the brain is in control, it decides 50 times a second where each motor should move its joint, and the physics does the rest.

That makes it a real balancing act. Push the wrong motors and it wobbles, slips or falls over, the way any body would.

Its home is an operant box: the classic lab chamber where rats learn that pressing a lever pays off. Ours has four walls, a floor and a spring-loaded lever hinged on the front wall.

Diagram: the simulated rat standing in an operant box, facing a spring lever on the front wall spring lever front wall R-01 (simulated) floor MuJoCo physics · 2 ms steps
Body
DeepMind rodent model, open source
Joints
67
Motors
38 (the brain drives these)
Weight
0.34 kg
Physics
MuJoCo, one step every 2 ms
Brain
2 trained artificial networks

02The brain

How we built its brain

We never programmed the lever press or the head-steering. We built two artificial neural networks and let them learn by trial and error, the way a lab rat learns a lever: try something, get rewarded, repeat.

Diagram: numbers flow from inputs through layers of units to outputs; every connection is a dial in out a dial

A network is a big set of tiny dials

Numbers go in: what the rat can sense, like its joint angles and where the lever is. They flow through layers of simple units, and every connection has a dial that turns the signal up or down. Numbers come out: where each motor should move its joint.

R-01's two networks: 2,312 units, 643,072 dials.

Diagram: a loop of try, score, and nudge the dials +/− try score it nudge the dials

Learning is trial, error and reward

At first the dials are random, and so are the movements. We score every attempt: points for a clean lever press and for standing well, a penalty for falling over. After each round of practice the dials are nudged towards whatever scored more.

This is reinforcement learning. The method we used is called PPO.

32.5Mpractice steps for the lever network
≈7.5 daysof simulated time for the lever network, spread over many simulated rats at once
1.15Mpractice steps for the steering network

Millions of tries

Each practice step is 20 milliseconds of simulated time. A network that starts from random dials needs a huge number of tries, so training runs many copies of the rat in parallel.

Stage 1The lever-press network

200senses: body + lever
38body motors

It feels 200 numbers about its body and the lever and drives all 38 motors. Its job: press the lever with a paw and stay standing. A press only counts if it is clean: a paw pushes the lever past 11.5°, the head and belly stay off it, and the rat is upright.

Then we tested the lever-press network on its own: 800 fresh attempts in four test suites. Every single time it made a clean press and was still standing 1.2 s later:

  • Standardthe lever task's normal start: standing in front of the lever after a 1 s settle200/200
  • Widenew start spots, stiffer or softer lever, grippier or slippier floor200/200
  • Shovesshoved in a random direction before pressing200/200
  • Noisyrandom jitter added to its own moves200/200

Stage 2The steering network

21senses: target, cursor, head
54 neck motors + PRESS

It sees 21 numbers: where the lit target is compared with the cursor and how big it is, how its head is turned, and whether it is standing upright. It drives the 4 neck motors that turn the head, plus one PRESS signal.

Its job: point the head so the cursor lands on the lit target, and press only when it's on it.

How the two work together

  1. The steering network turns the head, while the rest of the body just holds its standing pose. The head's direction moves the cursor.
  2. On target, it signals PRESS. The lever-press network takes the whole body for up to 1.2 s and presses. The cursor holds still.
  3. The press is the click. Then the steering network gets the head back.

Watching it learn

From the recorded training logs of the two networks in R-01's brain (not live): every row of the steering log, 160 of the lever log's 1,043.

Lever-press network · clean presses in practice

Final training run, from 5 M to 35 M steps, under the strict clean-press rules. We kept the 32.5 M-step snapshot.

Steering network · targets clicked per practice attempt (out of 4)

Practice had a difficulty dial that rose as it improved. The dip near 0.9 M is where training resumed from a saved checkpoint and the dial restarted from easy. By the end it had climbed back only to 0.32 of full difficulty, so the last value is on easier practice targets than the 2.96 it scored at full difficulty before the resume.

03The launch

How the rat launches a coin

R-01 launches our coin, Labrat ($LABRAT), on pons, a coin launchpad on Robinhood Chain, and it does every click itself. Here is how a rat uses a website.

Diagram: the rat turns its head and the cursor on the screen moves the same way head turnscursor moves
The head is the mouse. Turn the head left and the cursor slides left; hold it straight and the cursor stays still. Small turns make fine moves, big turns make big sweeps.
Diagram: a paw pushes the lever down and that press is a click on the page Confirm lever pressclick
The lever is the click. When the steering network decides the cursor is on target, the rat presses its lever with the whole body. One press, one click.

Each step goes like this

  1. Cue light

    The rig lights up the next thing to click, like the cue light in a lab box, and scrolls it into view.

  2. Aim

    R-01 turns its head and steers the cursor onto the lit target.

  3. Press = click

    It presses the lever. A click inside the lit target reaches the page. A click anywhere else is ignored and never sent.

  4. Type

    If it clicked into a text box, the rig types that box's text. The rat does every click, not the typing.

Between steps. The rig puts R-01 back in its standing start pose, and the brain rests while the rig types or scrolls. That is the jump you see in the replay.

Who does what. We choose the name, ticker, description, image and settings before the run, and a person presses Start. The rig types our text and, only if every check passes, signs the launch transaction once. The rat's brain makes all 11 clicks, and nothing reaches the page without one.

The 11 steps

each one a lever press by the rat

  1. 01
    Terms of Useticks the checkbox
  2. 02
    Privacy Policyticks the checkbox
  3. 03
    Accept and continuecloses the terms dialog
  4. 04
    Choose imageopens the picker; the rig chooses the coin logo
  5. 05
    Nameclicks the box; the rig types Labrat
  6. 06
    Tickerclicks the box; the rig types LABRAT
  7. 07
    Descriptionclicks the box; the rig types the text with the brain fingerprint
  8. 08
    Advancedopens the advanced settings
  9. 09
    Settings fieldclicks the box; the rig types our setting
  10. 10
    Launch tokenopens pons's review screen
  11. 11
    Confirmpons asks for the launch transaction

A step only moves on when the rat presses the lever with the cursor inside the lit target. A press anywhere else is ignored and never reaches the page, so the rat has to hit every one of the 11 targets itself.

Checked field by field, then signed once

pons builds the launch transaction. Before anything is signed, the rig decodes it and checks it field by field. Every check has to pass:

  • sent to the pons launch contract
  • calls the launch function
  • pays exactly what pons charges to launch
  • paired with ETH
  • name is Labrat
  • ticker is LABRAT
  • description is exactly what was typed
  • brain fingerprint is in it
  • the image is the one pons stored
  • no social links added
  • every setting is exactly what we chose
  • no developer buy
  • the unused number field is 0
  • nothing extra tacked on the end
  • encoded the standard way
  • created and sent by us, nobody else

signed onceOnly then does the rig sign it, once. Anything that doesn't match stops the launch unsigned. In a dry rehearsal the rig runs every check and then refuses to sign, so nothing is created.

The Labrat coin logo: a pixel-art rat in yellow, pink and violet on black
The coin's logo, and this site's.

The result

Labrat $LABRAT

Launching soon

Not launched yet. R-01 will launch it itself, live, on pons. Its contract, the launch transaction and the block appear here once it has.

Contract
Transaction
Block
Launched

What went wrong, and how we fixed it

01

The belly flop

ProblemAn early lever network found a loophole: flop the whole body onto the lever. The lever went down, so it scored, but that isn't a press.

FixWe closed it. Now a press only counts with a paw on the lever, the head and belly off it, and the rat upright.

02

Head-down tumbles

ProblemSweeping the head down hard to reach low targets tipped the rat over.

FixWe limited how far it could pitch its head up and down. Turning sideways stayed free, for the small sideways moves small targets need.

03

Falls after a press

ProblemThe lever network was trained to recover its balance for a moment after each press. Taking the body back too early made 6 of 10 test runs through the pons steps fall.

FixNow it keeps the body for 0.8 s after the click to finish recovering before steering resumes.

04

Stuck on the tiny Confirm button

ProblemWe added a rest between steps, so the rat stands still while the rig types or scrolls. With the head limit, it could then no longer reach the last target: the small Confirm button low on the screen.

FixWith the rest in place the limit was no longer needed, so we removed it: 11 of 11, no falls, on 6 of 6 test runs.

04Proof

Don't take our word for it

Everything the rat does can be checked: the brain it uses is fingerprinted on-chain, and the session re-runs bit for bit.

A

The brain's fingerprint goes in the coin

Before the run we compute a sha256 fingerprint over the whole brain: both networks, the physics scene and the code that runs them. The rig types it into the coin's description, so it goes on-chain inside the launch transaction. Change one dial and the fingerprint changes.

The coin's description

launched by a virtual rat: its trained brain steered the cursor and clicked every button. brain sha256 <the brain's 64-character fingerprint>

coversscene.xmlpolicy.ptsteer.ptenv.pycursor_env.pysteer_env.pysession.pyptload.py

B

The session replays bit for bit

Every session saves its commands, the brain's actions and every physics frame. The replay re-runs the same brain from the same start with the same commands, and prints MATCH only if every frame, every click and the session fingerprint come out identical.

terminal
$ python replay_session.py runs/<the launch session>
brain commit   <the brain fingerprint> OK
frames         identical
clicks         11 recorded, identical
recorded proof <the session fingerprint>
replayed proof <the same fingerprint>
MATCH

Exact on the recording machine. A different CPU or numpy build can round the networks' float maths differently, so every session records the Python, numpy and MuJoCo versions it used.

C

Check it on GitHub

The code, both trained networks, the training logs behind the charts above and recorded sessions are in the public repo. Read the rules the rat trained under, check the fingerprint yourself, or run a replay.

LabratDevRH/labratgithub.com/LabratDevRH/labrat
  • runs/final/ the two networks
  • train.py · env.py · steer_env.py the training and the rules
  • runs/lever_v3/log.jsonl · runs/steer_v1/log.jsonl the training logs
  • session.py · replay_session.py the launch session and its bit-exact replay

05The live panel

What you're watching

The badge in the corner of the panel at the top tells you which of two things you're seeing.

Badge legend: what each badge means when the panel shows it

LIVE TRAINING

When it says LIVE TRAINING: we're training R-01 at that moment

Training runs many simulated rats in parallel, with random exploration switched on, and every so often saves a checkpoint: a snapshot of all the dials.

A small program next to the training takes the newest saved checkpoint and plays it in its own separate simulation, in real time at 25 frames a second, making its best move each time. Whenever training saves again, the rat you see gets the new dials, so you can watch it improve. The charts are the training log, row by row as it is written.

“LIVE” appears only while a training run is actually streaming. The rest of the time the panel says REPLAY, or STANDBY while no recording is loaded.

REPLAY

When it says REPLAY: a recording of a launch session

When nothing is training, you're watching a replay of a recorded launch session, named next to the badge: a dry rehearsal of the Labrat launch, where the rat does all 11 steps on the real pons page and the rig checks the transaction and then refuses to sign, so nothing is created. It is re-run from its saved log with the same brain, the same start and the same commands, so the lit targets and clicks are the real ones from that session.

Between targets the rig puts the rat back in its standing start pose, so it jumps, and the long waits while the rig types play fast-forward. It is a recording, not live. The readout beside it shows the recorded training logs of the two networks it uses.

Never a camera, never a real rat. The 3D rat is a drawing of the simulated body's pose, frame by frame, as the physics engine computed it. The screen on the chamber wall is a drawing for you too: it shows the cursor and the lit target. The rat never sees a screen or the pons page: its steering network is told where the target is as numbers.

Reading the charts. An attempt (an “episode” in the training log) is one practice try: about 5 s at the lever for the lever-press network, up to 15 s and 4 targets for the steering network. “Falls” is the share of attempts that ended with the rat falling over.