JustRUA

A Controlled Study of GPT-6 Robot-Use Agents

GPT-6 Astra can drive a robot arm directly through a fixed harness, and scores on RoboDojo have risen quickly since. Reported systems differ in harness and test subset and often change several designs at once, so it is hard to tell which choices produce the gains. We take these designs apart and test them in one framework. JustRUA starts from the official L3 harness and keeps only what matters most. Even with no learned policy, self-improvement loop or task-specific tuning, this simple harness raises the score on the RoboDojo simulation benchmark substantially, from 29.7 to 50.3.

  1. 01A lean harness goes a long way. Keeping the full episode history and stopping each motion after 20 control steps lift the score from 29.7 to 38.0. Relative targets, named skills and model-chosen step counts do not beat plain absolute targets.
  2. 02Reusing experience is not a free lunch. Demonstrations and a self-written skill library change how the model acts, but neither clearly beats the default, and both make an episode more expensive. They also carry the highest risk of gaming the benchmark.
  3. 03Scene geometry helps most. Depth images cut empty grasps from 41 to 16, even when Depth Pro predicts the depth from RGB alone and is off by tens of centimetres. With code that solves 3D coordinates from pixels and no decision cap, the score reaches 50.3.
  4. 04Remaining failures are mostly long-tail. Most failures left in our best configuration are specific to one task, such as plans that do not suit the arm, unplanned knocks and slipping grasps. Fixing them would take trial and error on each task, which comes close to tuning on the test tasks.

From the official L3 harness to JustRUA

We test the designs that recent systems add and keep what matters most.

Design tested. Score
HarnessFull history helps
Official L3 harness29.7
Full history234.7
ActionShort motions help
20-step cap38.0
Model-set step count37.9
Relative targets33.9
Semantic operations34.6
Reusing experience3No clear gain
Visual demonstration§39.9
Text trajectory§35.2
Self-built library37.0
Scene geometryHelps most, except affordances
Compact readings39.8
Predicted depth42.4
Coordinate solving450.3
Affordances drawn36.7
Affordance panel42.1

Figure 1. The table lists every design we tested, by axis, and the chart the designs JustRUA keeps, in the order added. Each score is one evaluation-set run, the ring its first-round subset. Cost is a lower bound that assumes all cacheable input hits the cache.

1 Four layouts for the 23 most uncertain tasks and one for the rest, with a score SD of 2.6. The official L3 harness scores 29.7 on it and 29.0 on all 2,100 episodes.2 The official loop moved into a Codex session that keeps every image of the episode.3 Gaming risk. Reusing experience draws on the tasks being scored, so none is kept, whatever the score. § marks the most direct case, an expert demonstration of the very task being scored.4 The model may also run code, with web search off. The decision cap is lifted, and the official action limit still applies.

Controlled study framework

Instead of reproducing each reported system, we take the designs apart and test them on one testbed and one benchmark, changing as little as we can between runs.

Other episodesdemos, own library GPT-6 AstraCodex sessionfull episode history Commandmove_eefabsolute targets PlannerCuRobounchanged Executeat most 20control steps RoboDojosimulator Observation3 RGB views, arm state, scene geometry Scoreevaluation setbehaviour review Reusing experience Harness Action Scene geometry Evaluation

Blue outlines mark what JustRUA changes. Select a dashed area to see what we varied.

Evaluation set

The 23 most uncertain tasks, those that succeed only some of the time, get four layouts each and the rest keep one, for 111 episodes. Layouts are fixed in advance (Notes on evaluation).

The selected tasks
vary most
Fewer episodes,
lower SD

Left, each task's score SD across eight rounds. Right, bootstrap SD of the overall score at medium effort, lower for the evaluation set than for every task run three times.

Behaviour review

Every first-round episode is reviewed from video, and behaviours the score misses are counted as lower bounds.

01Harness and action

The first evaluation of GPT-6 Astra on RoboDojo found it weak on precision tasks, scoring 12.7 on Precision under the official L3 harness (RoboProbe), and Galbot saw a similar gap between its decisions and physical control (Galbot). Yet a few reasonable fixes to the harness and the action loop brought its Precision score to the level of the strongest vision-language-action models of the time (25.0 on our evaluation set, against 24.8 for DM0.5). Much of the weakness seemed to lie in the harness rather than the model.

1.1Codex and full history

The official L3 harness (L3 Inspect EEF, RoboProbe) calls the model API directly and keeps images from the last two observations only. We run the same loop in a Codex session* that keeps every image, with Codex's own tools off. Codex alone lowered the first-round score, so we credit the gain to the two together. All comparisons keep the default cap of 100 decisions per episode, which only the final JustRUA lifts.

ConfigurationEvaluation setFirst round
Official L3 harness29.732.3
Codex, last two images—19.5
Codex, full history34.743.5

* Every experiment runs on Codex 0.153.4, pinned so that small differences between versions cannot move the results.

1.2Action design

Motion length. In the official loop a whole motion runs before the model sees anything, so an unstable CuRobo plan can carry the arm far. We stop each motion after 20 control steps. Letting the model choose 3 to 32 steps, as in action chunking (ACT, Astranomy), did no better, so JustRUA keeps the fixed cap.

Evaluation setNo cap20-step capModel-chosen
Generalization36.042.540.4
Precision9.425.014.4
Long-horizon24.524.732.5
Memory52.549.660.4
Open50.948.141.6
Overall34.738.037.9

All three keep the full episode history.

Alternative interfaces. Two alternatives from recent systems did not beat absolute targets. Relative targets, offsets from the measured pose as in RoboDawn, scored lower, as Astranomy also found, and the arm struck objects almost three times as often. Every coordinate the model reads is in the world frame, so an offset likely asks for one more subtraction before each move.

Semantic operations replace raw targets with named skills, as in SayCan and Code as Policies. Ours are built on move_eef and add no new control code or learned policy. They changed what the model did more than how well it did. It moved its camera more than three times as often and dropped more of what it held, and the score did not rise.

Evaluation setAbsoluteRelativeSemantic
Generalization42.527.123.3
Precision25.010.921.9
Long-horizon24.728.028.7
Memory49.656.761.0
Open48.146.938.1
Overall38.033.934.6
Behaviour, first round
View adjustments5954211
Dropped objects263035
Empty grasps475447
Arm hits an object72012

Behaviour over the same 42 first-round episodes.

World-frame targets for the grasp point of either arm. Unnamed dimensions keep their observed value. Orientation is measured from a fixed straight-down grasp rather than added to the current one, and a gripper command runs after the arm motion.

Toolsmove_eef(targets, note)left_x / y / z in metres, left_pitch / roll / yaw_deg, left_gripper from 0 closed to 1 open, and the same for right. Both arms can move in one call.give_up()Ends an episode the model judges unrecoverable.

Move sequences. Up to four moves per decision raised the score, mostly by easing the 100-decision budget. The final configuration of JustRUA removes the budget instead.

Episodes by decisions used
DefaultMove sequences111 episodes each · budget 100 decisions
Score on the evaluation set38.0 → 42.0If the six episodes that used to run out of decisions keep their old scores, the new score is only 39.4.
Decisions used per episode63.2 → 52.7In the 31 episodes both versions complete, 50.2 to 40.0.
Episodes that ran out of decisions0 → 3 of 6 now succeedThe mean score of these six rises from 11.7 to 58.3.

1.3Reasoning effort

Medium effort, the default, scored highest overall. Low effort gave up most of the precision score, and high effort traded precision for memory at a higher cost.

EffortGeneralizationPrecisionLong-horizonMemoryOpenOverallCost / episode
Low40.35.328.852.939.433.3$4.49
Medium, default42.525.024.749.648.138.0$4.94
High38.317.223.867.340.637.4$5.16

Evaluation set. Cost per first-round episode.

02Reusing experience

Experience from other episodes is the core of recursive self-improvement, and of everything we tried it carries the greatest risk of gaming the benchmark. It draws on the tasks being scored, so its scores are not comparable with a standard evaluation. We tested it because it is widely used. In our runs, no form clearly beat the default.

2.1Demonstrations

Demonstrations in context are a common way to help GPT-6 Astra (SenseNova). Both versions draw on one expert-curated successful episode per task from RoboDawn, inserted once before the first decision. The visual demo shows its 16 keyframes, and the text trajectory gives the same episode stage by stage, as poses, commands and outcomes in our coordinates.

Evaluation setDefaultVisual demoText trajectory
Generalization42.541.040.3
Precision25.022.811.6
Long-horizon24.728.928.3
Memory49.670.055.4
Open48.136.640.3
Overall38.039.935.2
Cost per episode$4.94$5.11$5.84
Behaviour, first round
Handovers through the table91513
Dropped objects262017
Arm-to-arm collisions600
Empty grasps475053

Cost per first-round episode.

The 16 keyframes the model sees before its first decision in make_kong, head camera.

Sixteen keyframes of the make_kong demonstration, from the opponent's discard to the final kong

Three tasks also include the author's wrist-camera views. No action trace or robot state is attached.

A better plan is not enough. With either demonstration the model passed objects through the table more often and dropped fewer. In make_kong it copies the demonstrated handover, which it never does without one, even when the text trajectory gives the handover only as coordinates. Neither run copies the last step, gripping the tile upright to push it into the row, and both lose the tiles there and score 0. Fixes of this kind are lost to failures elsewhere, so the overall score barely moves.

2.2Self-improvement loop

Several RoboDojo entries improve themselves by writing their own skills (EmbodiedEvo, SenseNova-RoboRSI). Here a Codex agent writes extra operations on top of move_eef, with a guide on when to use them, starting from the RoboDawn demonstrations. The 42 tasks are split into five groups. Each round the model runs the library on one group, and the agent reviews the scores, logs and videos and revises it. Nothing is edited by hand, and nothing is stored or looked up by task.

new added this round
Librarygrasptransportplacepushwritten from the demonstrations
Group 1 · 3 successes
stack_bowls1plug_in_charger0general_pickup1fill_pen_holder0sweep_blocks0deposit_coin0.2cover_blocks0classify_objects0.4push_T1
SeenIn plug_in_charger and fill_pen_holder the model let go before the plug or the pen was in place.
Changed for round 2place and grasp can pause before letting go or closing. A new insert pushes a held tip into a hole once it is within 2 mm and 1° of the entry.
place(..., release_after_lowering=false)
grasp(..., close_after_approach=false)
insert(arm, entry_point, tip_offset, axis, standoff, depth, advance)

Scores are per task, from 0 to 1. Each round runs a different group, so this is not a learning curve. Problems and changes paraphrase the library's own records.

The library changed how the model grasped, with fewer empty grasps and no arm-to-arm collisions in the first round. With each task practised once, it scored slightly higher than the loop's own runs on the tasks it had seen and stayed level with the default on the evaluation set. Systems that report clear gains practise each task many more times (EmbodiedEvo, PhysRSI-eval). The loop helps, but slowly.

Practice per task1 run in the loopEach round runs a different group of tasks.
Evaluation set38.0 → 37.0The default against the round-5 library.
Iterate set35.4 → 36.4Runs inside the loop against the round-5 library.
Empty grasps, first round47 → 33The default against the round-5 library.

03Scene geometry

Recent agent systems give the model depth, point clouds and affordances from dedicated models. GPT-6 needs less. Its own grip readings, depth predicted from RGB and a little code that turns pixels into 3D coordinates carry most of the gain without simulator ground truth, while precomputed affordances did not help.

3.1Robot readings

Robot readings are each gripper's basic sensor values, finger positions and forces, contact force and wrist load, with no privileged information such as the true pose of an object.

They help most in grasping. The default interface reports only the jaw opening the model asked for, while the readings give the opening the fingers actually reached and the force at each fingertip.

insert_tubes, after closingDefaultWith readings
Jaw opening, 0 to 10.240.44 13.6 mm
Contact force, Nnot reported24.9 / 24.5

The fingers stopped at 0.44, not the commanded 0.24, and press on both sides, so the tube is held.

Left wrist view after the jaw closes on a tube

How the readings are written matters too. As full JSON they crowded the context and pushed many episodes into compaction, so JustRUA writes them in a short text format.


          
No readingsFull JSONCompact
Evaluation set38.0–39.8
First round42.433.538.3
Empty grasps, first round474741
Characters added per decision0~3,100~1,800
Episodes with context compaction0%38%0%
Cost per episode$4.94$7.13$5.51

Full JSON was run on the first round only. Cost per first-round episode.

3.2Depth

Many recent agent systems use depth to place objects in 3D (RoboHarness, GPT-GEAR, RAX), but the RoboDojo leaderboard does not accept simulator depth for agent entries, as a maintainer stated in review. We test both simulator depth and depth that Depth Pro predicts from RGB alone.

The predicted distances are far off, by tens of centimetres even with the true focal length. Scaling each frame to the robot's geometry helps, but the scale drifts between frames and cannot be fitted for the wrist cameras, so JustRUA passes the raw predictions on.

Head camera RGB view of make_kong
RGB
Raw Depth Pro prediction, mostly beyond two metres
Depth Pro, raw given to the model
Depth Pro prediction scaled to the robot geometry
Scaled to robot geometry
Simulator depth
Simulator
0 m2 m or more
Head camera, table areaMean absolute errorPearson rSpearman ρ
Raw prediction73.7 cm0.9930.992
With the true focal length40.1 cm0.9930.992
Scaled to robot geometry, per frame7.3 cm0.9930.992

Images from make_kong. The table averages six head-camera frames from make_kong and fill_egg_holder against simulator depth. Scaling a frame leaves both correlations unchanged.

Even so, predicted depth improves manipulation almost as much as simulator depth, with as few empty grasps and fewer failed fine placements, though drops did not fall. The prediction gets the order of depths right, and that seems to be enough.

Robot readingsSimulator depthPredicted depth
Evaluation set39.846.042.4
Cost per episode$5.51$7.26$7.74
Robot readings Simulator depth Predicted depth

First round, same 42 episodes.

3.3Affordances

Depth shows where surfaces are, but not where an object can be held or which arm can reach it. That knowledge is an affordance. Recent agent systems compute affordances with dedicated models (CLARO, ORA), and since many episodes go wrong at the grasp, we tested giving them to the model directly.

For each camera view, GraspGen proposes up to eight grasp poses per object and inverse kinematics marks which surfaces each arm can reach. Both are drawn onto the image, and the text lists the grasp poses. The hard part is presentation, since anything added to an observation either takes more space or crowds what is already there.

Head camera image of insert_tubes with yellow grasp candidates and blue, orange and purple reach shading
Yellow marks are grasp candidates with their approach direction. Blue, orange and purple shading marks surfaces the left arm, the right arm or both arms can reach.
Affordances drawnSimulator depth · 3 images
Grasp candidates and reach shading drawn on the head camera image
Drawn ×3

Drawn onto each camera view, with no depth images. The marks cover the pixels they point at.

Drawn with RGB and depthSimulator depth · 9 images
Clean head camera image
RGB ×3
Simulator depth image of the head camera
Depth ×3
Affordances drawn on the head camera image
Drawn ×3

Clean RGB and depth go back in, so each camera view appears three times.

Drawn with depthPredicted depth · 6 images
Affordances from predicted depth drawn on the head camera image
Drawn ×3
Predicted depth image of the head camera
Depth ×3

Depth predicted from RGB, with the clean RGB left out again.

Affordance panelPredicted depth · 4 images
Clean head camera image
RGB ×3
One panel with six small views, depth on top and drawn affordances below
Panel ×1

Clean RGB at full size. The six other views shrink to 256 × 192 pixels in one panel, with at most four grasp candidates.

Head camera at the first decision of insert_tubes. Click an image to enlarge it.

None of the four versions grasped more reliably or scored higher than depth images from the same source. Affordances could matter in few moments, since handovers stayed rare and grasp candidates only matter when a grasp starts, while their cost comes with every observation. We left them out of JustRUA.

Simulator depthPredicted depth
Depth imagesAffordances drawnDrawn with RGB and depthDepth imagesDrawn with depthAffordance panel
Evaluation set46.036.7–42.430.942.1
First round51.834.635.247.730.145.5
Behaviour, first round
Empty grasps171725163934
Handovers9141115914
Views from the other arm252927313940
Tokens per observation~3,500~3,000~5,300~3,700~3,200~3,300
Cost per episode$7.26$6.91$9.17$7.74$6.63$7.54

3.4Coordinate solving

In the last step the model may also write and run code in its session1, as in Code as Policies and URAI, and the 100-decision cap is lifted.

Almost every run uses code to solve for coordinates, casting rays from pixels through the camera calibration and triangulating a point seen by two cameras or meeting a known surface height. The code never reads the depth images. Code thus acts as one more source of scene geometry, which is why it sits on this axis.

Use of codeRunsShare
Geometry: triangulation, pixels to 3D points, poses and offsets12393.2%
Listing input files or rereading its own code53.8%
Cropping and enlarging an image32.3%
No output10.8%
Total132100%

Code runs in the 42 first-round episodes, reviewed by hand.

Predicted depthCoordinate solving
Evaluation set42.450.3
First round47.754.0
Cost per episode$7.74$12.53

Cost per first-round episode.

In insert_tubes the model locates the tubes and the holes of the rack from pixels and places all three tubes.

code running
>_ codex

              
output
insert_tubes, same layoutPredicted depthCoordinate solving
Score40100
Decisions6557
Control steps, of 500500496

The player pauses where the code runs and skips the stretches between. Distances compare the code's output with the commands that followed, not with true object positions. Code and output as the model ran them.

1 Web search stays off, so that the model cannot look up the benchmark or its solutions.

04Error analysis

With our best configuration, 21 of the 42 first-round tasks score below 50. We sorted every such episode by cause, to see whether further gains need one general fix or work on each task. Most failures turn out to be specific to one task.

4.1Failure classification

4.2Potential fixes

Each of the first three causes points to a general fix, but each needs knowledge that is costly to supply.

StrategyPlanning with high-level knowledge of the arm, such as which flip angles one arm cannot reach while placing. Which limits matter changes from task to task.
CollisionCollision checking against complete digital assets of the arm and of every object it holds. Modelling every held object and joint at that level is hardly feasible.
Unstable graspGrasp planning on the same digital assets, to model how each irregular or round object sits in the gripper.

Revising the task prompts fixes the prompt and scoring cases and raises the first round from 54.0 to 55.6. The rest would need trial and error on each task, close to tuning on the test tasks.

Notes on evaluation

The official evaluation scores each task over 50 episodes, since one layout's score is spiky. We run far fewer, and rounds differ in difficulty, so every configuration here runs on the same fixed layouts, in the first round and on the evaluation set alike.

Round-to-round variation

Low and medium effort rise and fall together across eight rounds (correlation 0.84), though we have not separated layout difficulty from run-to-run randomness. The first round alone tends to run high, above the eight-round mean in all three settings below.

Score of the default testbed in each of eight rounds.

First roundMean of 8 roundsFull evaluation
Official L3 harness32.328.729.0
Default testbed, low effort35.934.5—
Default testbed, medium effort42.435.9—

Official L3 rounds map our eight layouts onto the episodes published by RoboProbe.

Tasks run on four layouts

These 23 tasks run on four layouts each. On each, a partial result scores at most 50, and the default testbed both succeeded and failed within eight rounds.

Generalizationpush_Tsort_nesting_dolls_by_sizestack_bowlsfold_clothesarrange_largest_numberpack_objects_into_box
Memoryswap_Tmatch_and_pick_from_conveyorimitate_sorting_sequencepress_by_numbercover_blocks
Openalign_blockssolve_equationstack_blocks_by_languageclassify_objects_by_languagegeneral_pickuppick_from_conveyor_by_image
Precisionplug_in_chargerfasten_screwsplay_Xylophonepour_balls_into_vase
Long-Horizonput_bottles_into_dustbinclassify_objects

swap_T is a typical case. It scores 100 only when the two T blocks swap places within 20 mm and 3° and both arms are back at rest, and 0 otherwise. Both settings scored 0 in the first round and succeeded in four of the eight rounds.

Round12345678
Low effort0100000100100100
Medium effort0010010001000100

References

  1. Michael Ahn, Anthony Brohan, Noah Brown, et al. Do As I Can, Not As I Say: Grounding Language in Robotic Affordances. CoRL, 2022.
  2. Aleksei Bochkovskii, Amaël Delaunoy, Hugo Germain, et al. Depth Pro: Sharp Monocular Metric Depth in Less Than a Second. ICLR, 2025.
  3. Tianxing Chen, Yue Chen, Zixuan Li, et al. RoboDojo: A Unified Sim-and-Real Benchmark for Comprehensive Evaluation of Generalist Robot Manipulation Policies. arXiv:2607.04434, 2026.
  4. Galbot Team, Xuchuan Chen, Xiaoqian Cheng, et al. Systematically Exploring the Capabilities of GPT-6 Astra as Embodied Policies. arXiv:2609.38537, 2026.
  5. Shijia Ge, Alex Zhou, Jianshu Zeng, et al. Make Code as Policy Great Again: Frontier Agents Write, Call, and Evolve Robot Tools. arXiv:2609.39018, 2026.
  6. Meng-Hao Guo, Zhe-Han Mo, Jia-Jun Wang, et al. Transferring the Intelligence of VLMs to Robotic Control. arXiv:2609.22966, 2026.
  7. Runhan Huang, Xiangcheng Zhang, Haoyu Chen, et al. Scaling Online Exploration for Robot Agents. arXiv:2610.22496, 2026.
  8. Sungsu Kim, Vineet Bhat, Prashanth Krishnamurthy, et al. CLARO: Clutter Aware Robot Orchestrator for Open-Vocabulary Grasping using VLM Agents. arXiv:2610.24016, 2026.
  9. Wenyi Li, Yizhe Chi, Youjie Zheng, et al. EmbodiedEvo: Self-Evolving Coding Agent for Physical Intelligence. arXiv:2610.18867, 2026.
  10. Zekai Li, Jiayi Yu, Jinlu Zhang, et al. Where is Physical RSI Capability From? An Observational Scaling Law of LLM-as-Policy. arXiv:2610.26848, 2026.
  11. Jacky Liang, Wenlong Huang, Fei Xia, et al. Code as Policies: Language Model Programs for Embodied Control. ICRA, 2023.
  12. Adithyavairavan Murali, Balakumar Sundaralingam, Yu-Wei Chao, et al. GraspGen: A Diffusion-based Framework for 6-DOF Grasping with On-Generator Training. arXiv:2507.13097, 2025.
  13. OpenAI. Codex. Software, 2026.
  14. OpenSenseNova. SenseNova-RoboRSI: Recursive Self-Improvement for Embodied Agents. Code, 2026.
  15. Bince Qu, Wei Chen, Bo Zhang. RoboHarness: A Simple Harness Outperforms VLA and World Actions Models. arXiv:2610.14018, 2026.
  16. SenseNova and Joint Research Team, Zhongang Cai, Ziang Cao, Tailai Chen, et al. Has GPT-6-Astra Achieved Embodied Intelligence? arXiv:2610.22471, 2026.
  17. Balakumar Sundaralingam, Siva Kumar Sastry Hari, Adam Fishman, et al. cuRobo: Parallelized Collision-Free Minimum-Jerk Robot Motion Generation. arXiv:2310.17274, 2023.
  18. XPolicyLab maintainers. Review comment on simulator depth for agent entries, pull request #151. GitHub, 2026.
  19. Jenai Xuning Yang, Ashna Khetan, Shun Zhang. Astranomy: An Empirical Study of GPT-6 Astra as a Native Robot Policy. CoRL Late-Breaking Results, 2026.
  20. Yuanbo Yang, Siyi Chen, Jun Gao, Hao Zhang. ORA: Open Robot-Use Agents. Code and blog post, 2026.
  21. Wenbo Zhang, Kaixuan Wang, Yutao Ouyang, et al. An Unexpected Robot Policy: Early Evaluations of GPT-6 Astra on RoboDojo and Beyond. arXiv:2609.24170, 2026.
  22. Tony Z. Zhao, Vikash Kumar, Sergey Levine, Chelsea Finn. Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware. RSS, 2023.
  23. Youwei Zhou, Bohan Hou, Yankai Fu, et al. Large Multimodal Models for Direct Robot Control: GPT-6 as a Beginning. arXiv:2610.28259, 2026.

Citation

@article{justrua2026,
  title   = {JustRUA: A Controlled Study of GPT-6 Robot-Use Agents},
  author  = {Zefan Wang and Yufan Dang and Xuanwei Shi and Mingqi Gao and Cheng Yin and SikYuen Tam and Hanyu Liu and Yasheng Wang and Yaxi Lu and Songyang Zhang and Xin Cong and Yuan Yao},
  journal = {arXiv preprint arXiv:2611.16009},
  year    = {2026}
}