CaPtain trains Qwen3.5-4B to control a robot in code and beats several frontier-model agents

1 hour ago

CaPtain post-trains Qwen3.5-4B into a robot agent that writes Python against 22 low-level calls, with no grasp or place skill. Fine-tuning and then reinforcement learning with a simulator critic take it from 0% to 73.8% on held-out LIBERO, and to 78.5% on LIBERO-PRO, above several agents built on Gemini and Claude. Two-arm tasks and unfamiliar arms remain out of reach. From arXiv 2610.40799v1 (submitted 29 October 2026), MMLab at The Chinese University of Hong Kong and NovaXBot. Paper: https://arxiv.org/abs/2610.40799 Code: https://github.com/waltstephen/CaPtain Weights: https://huggingface.co/YijiaFan/CaPtain-4B Training data: https://huggingface.co/datasets/YijiaFan/CaPtain-SFT-Data

Ask about this presentation

Chapters

  1. 0:00CaPtain trains Qwen3.5-4B to control a robot in code
  2. 0:12No grasp or place skill
  3. 0:26Every call returns a receipt
  4. 0:39SFT then RL
  5. 0:54A critic that sees the simulator
  6. 1:10The gain holds when the scene changes
  7. 1:26A real arm
  8. 1:42Past several frontier-model agents
  9. 1:58Two arms and new arms
  10. 2:10Training needs a simulator
  11. 2:24Where to get it
Show transcript
  1. CaPtain trains Qwen3.5-4B, a small open model that can't move a robot at all, to run one by writing Python. The code, training data and weights are all released.

    Slide text
    AI Papers

    CaPtain trains Qwen3.5-4B to control a robot in code and beats several frontier-model agents

    Yijia Fan, Xilin He, Yilei Jiang, Dongming Wu, Jiaxu Wang, Xiangyu Yue · MMLab, The Chinese University of Hong Kong · NovaXBot

    Six frames of CaPtain-4B moving a black bowl onto a plate in simulation: look, reach, grasp, lift, place, finish
    Fan et al. · CaPtain · arXiv 2610.40799v1 · submitted 29 Oct 2026 · Figure 1
  2. Code-writing robot agents usually lean on ready-made skills like grasp and place. CaPtain removes them. With 22 low-level calls, the model itself decides where to grasp, how to approach, and when to close the gripper.

    Slide text
    01 02 03 The model

    CaPtain gives the model no grasp or place skill

    grasp() place() open_drawer() VLA

    22 low-level calls instead: look, measure, move, close the gripper

    Fan et al. · CaPtain · arXiv 2610.40799v1 · Section 3.1
  3. The model writes into a Python session that keeps its variables between turns. Each robot call returns a receipt: where the arm stopped, how hard it pushed, how far the gripper closed.

    Slide text
    01 02 03 The model

    Every robot call reports back what physically happened

    CaPtain-Harness design: a persistent Python session, low-level primitives only, guarded execution, receipts, a completion gate, and the same API on LIBERO, RoboTwin 2.0, RoboDojo and a real robot
    Fan et al. · CaPtain · arXiv 2610.40799v1 · Figure 7 · Section 3.1
  4. Training copies the coding-agent recipe. Fine-tuning on runs written by GPT-6 Astra gets it through just over half the held-out LIBERO tasks. Reinforcement learning lifts that to about three in four.

    Slide text
    01 02 03 What it scores

    Fine-tuning, then reinforcement learning, takes it from zero to most tasks

    Held-out LIBERO · 240 episodes · success rate

    Qwen3.5-4B
    0.0%
    after fine-tuning
    55.4%
    after RL · CaPtain-4B
    73.8%
    Fan et al. · CaPtain · arXiv 2610.40799v1 · Table 1
  5. A task only says at the end whether it worked. So a critic reads the simulator's exact object positions and credits each turn by how much it moved the odds of success. Most credit lands on moving, grasping and releasing.

    Slide text
    01 02 03 What it scores

    A critic that can see the simulator scores every turn

    It reads exact object positions the model never sees, and is removed at test time.

    65% moving
    14% grasping
    14% releasing

    Share of credit by kind of turn · looking around gets 1.3%

    Fan et al. · CaPtain · arXiv 2610.40799v1 · Section 3.3 · Section 4.5 (offline analysis of an earlier 9B policy)
  6. Here the objects move, the wording changes, or the scene shifts mid-task. Reinforcement learning still adds about 20 points on each. π0.5, an end-to-end robot model, falls from 97 percent to about 13.

    Slide text
    01 02 03 What it scores

    The RL gain holds when objects, layouts and wording change

    after fine-tuning after RL
    LIBERO-PRO
    59.5%
    78.5%
    LIBERO-Plus
    48.6%
    66.1%
    LIBERO-MAX Dynamic
    40.0%
    61.2%

    π0.5, an end-to-end robot model: 97% on LIBERO, 12.8% on LIBERO-PRO

    Fan et al. · CaPtain · arXiv 2610.40799v1 · Table 1 · 600 / 700 / 80 episodes · π0.5 as cited in Section 4.1
  7. On a real Astrabot arm, it was told to put the cube the color of the sky into the container that isn't round. It chose the light blue cube and the rectangular tray. It was adapted to this arm in simulation only, with no real-world data.

    Slide text
    01 02 03 What it scores

    On a real arm, it finds the sky-colored cube and the tray that isn't round

    Ten frames, 2 to 82 seconds, of an Astrabot XR1 arm placing a light-blue cube into a rectangular wooden tray

    Adapted in a rough simulated twin of the arm, with no real-world data · two episodes shown, no success rate reported

    Fan et al. · CaPtain · arXiv 2610.40799v1 · Figure 5 · Section 4.4
  8. On LIBERO-PRO, the 4B model beats agents built on Gemini 3.7 Flash and Claude Opus 4.6. One on Claude Opus 5 still leads, about 92 percent to 79. CaPtain costs a few cents a task.

    Slide text
    01 02 03 What it scores

    On LIBERO-PRO, a 4B model passes agents running on Gemini and Claude

    OpenRUA · Claude Opus 5
    91.8%
    CaPtain-4B
    78.5%
    K1 · Gemini 3.7 Flash
    77.2%
    WAA · Gemini 3.7 Flash
    75.6%
    ASPIRE · Claude Opus 4.6
    71.7%

    Per episode: CaPtain-4B about $0.03 to $0.06 · frontier agents $0.18 to $22

    Fan et al. · CaPtain · arXiv 2610.40799v1 · Table 2 (3-suite average; other systems as published) · Section 4.2
  9. Trained on one arm, it struggles when a task needs two. On RoboTwin it finishes about 23 percent of tasks, half the rate of models trained there. On RoboDojo's shorter arms, under one percent.

    Slide text
    01 02 03 Where it stops

    Two-arm tasks and unfamiliar arms still beat it

    RoboTwin 2.0 · 22.6% models trained on its demos reach 46.0%
    RoboDojo · 0.8% two 6-joint arms that reach about half a meter

    Its transfer setups add depth, camera calibration and a wrist force signal

    Fan et al. · CaPtain · arXiv 2610.40799v1 · Table 3 · Section 4.3 · repository transfer README
  10. The critic needs the true position of every object, so training on a physical robot would need a separate way to measure the scene. And motions stop at contact, so it can't wipe a surface.

    Slide text
    01 02 03 Where it stops

    Training still needs a simulator's exact state

    RL ran on 40 LIBERO tasks with one arm the critic reads true object poses
    It cannot press down with steady force CaP-Bench's Wipe task is out of reach
    Fan et al. · CaPtain · arXiv 2610.40799v1 · Section 5 · Section 4.3
  11. For a one-arm robot that writes its own code, I'd start from CaPtain-4B before paying a frontier model per step, because it runs locally and every training stage is open. Links are below.

    Slide text
    01 02 03 Where it stops

    CaPtain-4B, its training data and its RL code are released

    Paper arxiv.org/abs/2610.40799
    Code github.com/waltstephen/CaPtain
    Weights huggingface.co/YijiaFan/CaPtain-4B
    Fan et al. · CaPtain · arXiv 2610.40799v1 · MIT license

What happened in AI today, in your inbox

One short email each evening. Read it and you’re caught up.

Built with ❤️ in New York