EVALUATION NOTES / ROBOT LEARNINGMJAK Labs

YAM and SO101: pick and place through Robot APIs

What this report proves

The APIs executed complete pick and place in MuJoCo with live GR00T V3 outputs adapted to YAM and SO101. The fixed controller passed 2 of 2 held out YAM trials and 2 of 2 held out SO101 trials. Each success required a physical grasp, unsupported lift, transfer, release, and a settled object at the destination.

The full history contains 3 successes and 1 failures for YAM, and 3 successes and 5 failures for SO101. V3 received cameras and joint state from an SO100 shadow simulation. These results establish API execution with that transfer controller in the tested scenes; target camera feedback, physical hardware performance, and broader reliability require further evaluation.

Researcher: Akhilesh Chandra

Report updated: 21 October 2026, 18:27:03 IST

Live GR00T V3 outputs were mapped to each arm and executed through its APIs in MuJoCo. This report follows the failed attempts, the controller corrections, and the two held out trials for each arm. The videos, contact measurements, and API records show how each result was reached.

Interpretation boundary. The V3 model is SO100 trained. In the transfer runs it generates live actions from a synchronized SO100 shadow environment, which are transformed and executed through the target arm's APIs and real MuJoCo contacts. The target arm's own cameras are not fed back to V3. No YAM/SO101 specific checkpoint or demonstration set exists, so these are controller transfer results, not native learned target embodiments.
Live trained V3 outputs · YAM target physics

YAM: model controlled API transfer

Physical success. The SO100 V3 checkpoint observed a live SO100 shadow scene; each newly inferred model action was converted by forward kinematics, a two anchor workspace transform, and target arm inverse kinematics before an authenticated target API command. This is not native YAM camera conditioned policy inference, retraining, or a replayed/scripted path.

Controller corrections were chosen on seed 42001; seeds 42002 and 42003 are held out follow ups using the fixed final controller: 2/2 physical successes for YAM. This small, selected seed set is not a fleet level reliability estimate. The attempt table distinguishes tuning history from follow up and never replaces a failure with a later success.

43Actual V3 inference calls
337Authenticated target setpoints
28.00 sTarget simulated time
41.38 sWall clock episode time
8.56 sUnsupported bilateral lift
6.98 mmFinal destination error
58.3 mmMaximum lift

Every attempt, including failures

RunPhysical gateAPI setpointsModel callsErrorEvidence
yam seed42001 attempt1FAIL18023Not recordedVideo · Trace · Outcome
yam seed42001 attempt2PASS40151Not recordedVideo · Trace · Outcome
yam seed42002 attempt1PASS37748Not recordedVideo · Trace · Outcome
yam seed42003 attempt1PASS33743Not recordedVideo · Trace · Outcome

Actual API call sequence

1POST /v1/sessions with robot_id=yam, scene=pick_place, manual mode, recording enabled.
2, each tickV3 model inference on live SO100 shadow camera/joints at each chunk boundary; GET /v1/sessions/{id}/observation?include_rgb=false on the YAM target returns measured joints and a fresh sequence.
3, each tickPOST /v1/sessions/{id}/setpoint with increasing command sequence, observation sequence, lease header and target IK joint values. Acceptance is not physical completion.
4, each tickPOST /v1/sessions/{id}/step advances 40 native MuJoCo steps and returns measured joints, contacts, object state and time.
5GET /v1/sessions/{id}/cameras/overview/rgb captures real renderer frames; close session, then GET /export saves the journal.

Counts for the selected run: 337 target observations, 337 setpoints, 350 physics steps, 0 IK failures. Example tick from the actual trace (no authentication secrets):

{
  "tick": 0,
  "api_observation_sequence": 0,
  "api_command_sequence": 0,
  "api_accepted_sequence": 0,
  "source_target": [
    0.5309028029441833,
    -1.3722734451293945,
    1.3263784646987915,
    1.6236151456832886,
    -2.1009674072265625,
    0.699999988079071
  ],
  "target_tool_goal_m": [
    0.24854906658195788,
    -0.0016476439025129817,
    0.15955210704380535
  ],
  "target_joint_target": {
    "joint1": -0.004498660669756926,
    "joint2": 1.4983425563202757,
    "joint3": 1.401610764931806,
    "joint4": -1.3009176420426312,
    "joint5": 0.0029823384967683207,
    "joint6": -0.0007929796696357223,
    "gripper": 0.03752399936097009
  },
  "target_positions": {
    "joint1": -0.0009319544215701186,
    "joint2": 1.4116157395478968,
    "joint3": 1.4593794952215824,
    "joint4": -1.2999528997217482,
    "joint5": 0.0003000976727029928,
    "joint6": -0.00015531627067669914,
    "gripper": 0.037524161295854064
  },
  "target_object": {
    "position_m": [
      0.2500009098,
      -2.715396712e-17,
      0.10006832832704898
    ],
    "quaternion_wxyz": [
      0.7071067811865477,
      0.0,
      0.0,
      0.7071067811865477
    ],
    "contacts": [
      {
        "geom": "pickup_pedestal",
        "body": "world",
        "normal_force_n": 0.061353299067769144
      },
      {
        "geom": "pickup_pedestal",
        "body": "world",
        "normal_force_n": 0.061353299067769144
      },
      {
        "geom": "pickup_pedestal",
        "body": "world",
        "normal_force_n": 0.061353299067769144
      },
      {
        "geom": "pickup_pedestal",
        "body": "world",
        "normal_force_n": 0.061353299067769144
      }
    ],
    "left_finger_force_n": 0,
    "right_finger_force_n": 0,
    "bilateral_contact": false,
    "supported": true,
    "lift_m": -5.304070083347878e-05
  }
}

Physical measurements

Acceptance requires at least 2 simulated seconds unsupported bilateral lift, one final second released and settled on the drop pedestal, less than 40 mm XY destination error, and less than 1 mm final one second drift. Selected run result: 1.04 s settled; 0.00 mm drift. All values are MuJoCo contacts and positions, not video interpretation.

Measured object path

Red = pickup · Green = destination · Cyan = measured object path

Object lift (mm)

58.26-0.22350 frames

Bilateral contact

1.000.00350 frames
Live trained V3 outputs · SO101 target physics

SO101: model controlled API transfer

Physical success. The SO100 V3 checkpoint observed a live SO100 shadow scene; each newly inferred model action was converted by forward kinematics, a two anchor workspace transform, and target arm inverse kinematics before an authenticated target API command. This is not native SO101 camera conditioned policy inference, retraining, or a replayed/scripted path.

Controller corrections were chosen on seed 42001; seeds 42002 and 42003 are held out follow ups using the fixed final controller: 2/2 physical successes for SO101. This small, selected seed set is not a fleet level reliability estimate. The attempt table distinguishes tuning history from follow up and never replaces a failure with a later success.

43Actual V3 inference calls
338Authenticated target setpoints
28.08 sTarget simulated time
42.28 sWall clock episode time
7.68 sUnsupported bilateral lift
23.56 mmFinal destination error
57.2 mmMaximum lift

Every attempt, including failures

RunPhysical gateAPI setpointsModel callsErrorEvidence
so101 seed42001 attempt1FAIL18023Not recordedVideo · Trace · Outcome
so101 seed42001 attempt2FAIL19825HTTPStatusError: Client error '422 Unprocessable Entity' for url 'http://127.0.0.1:8000/v1/sessions/s_0254619f387b45df96f737a8017eaf88/setpoint' For more information check: https://developer.mozilla.org/en US/docs/Web/HTTP/Status/422Video ·. · Outcome
so101 seed42001 attempt3FAIL19825HTTPStatusError: Client error '422 Unprocessable Entity' for url 'http://127.0.0.1:8000/v1/sessions/s_6b7c4f019c2a416181d43e929bd6a5bb/setpoint' For more information check: https://developer.mozilla.org/en US/docs/Web/HTTP/Status/422Video · Trace · Outcome
so101 seed42001 attempt4FAIL40151Not recordedVideo · Trace · Outcome
so101 seed42001 attempt5FAIL40151Not recordedVideo · Trace · Outcome
so101 seed42001 attempt6PASS40151Not recordedVideo · Trace · Outcome
so101 seed42002 attempt1PASS37748Not recordedVideo · Trace · Outcome
so101 seed42003 attempt1PASS33843Not recordedVideo · Trace · Outcome

Actual API call sequence

1POST /v1/sessions with robot_id=so101, scene=pick_place, manual mode, recording enabled.
2, each tickV3 model inference on live SO100 shadow camera/joints at each chunk boundary; GET /v1/sessions/{id}/observation?include_rgb=false on the SO101 target returns measured joints and a fresh sequence.
3, each tickPOST /v1/sessions/{id}/setpoint with increasing command sequence, observation sequence, lease header and target IK joint values. Acceptance is not physical completion.
4, each tickPOST /v1/sessions/{id}/step advances 40 native MuJoCo steps and returns measured joints, contacts, object state and time.
5GET /v1/sessions/{id}/cameras/overview/rgb captures real renderer frames; close session, then GET /export saves the journal.

Counts for the selected run: 338 target observations, 338 setpoints, 351 physics steps, 0 IK failures. Example tick from the actual trace (no authentication secrets):

{
  "tick": 0,
  "api_observation_sequence": 0,
  "api_command_sequence": 0,
  "api_accepted_sequence": 0,
  "source_target": [
    0.5309028029441833,
    -1.3722734451293945,
    1.3263784646987915,
    1.6236151456832886,
    -2.1009674072265625,
    0.699999988079071
  ],
  "target_tool_goal_m": [
    0.18588802955942904,
    6.789120500600258e-05,
    0.194555860062779
  ],
  "target_joint_target": {
    "shoulder_pan": -0.0016564132629382545,
    "shoulder_lift": -0.9555073943692493,
    "elbow_flex": 0.1453621677642259,
    "wrist_flex": 1.6333634554968275,
    "wrist_roll": 8.610624509433877e-19,
    "gripper": 0.9999999799978735
  },
  "target_positions": {
    "shoulder_pan": -0.0016388433693159225,
    "shoulder_lift": -0.9543858932695792,
    "elbow_flex": 0.14676718339919942,
    "wrist_flex": 1.633470392622948,
    "wrist_roll": -6.951533982584702e-08,
    "gripper": 0.9999963786772659
  },
  "target_object": {
    "position_m": [
      0.18460905,
      5.799917456000146e-06,
      0.10007208234258336
    ],
    "quaternion_wxyz": [
      0.9997186370071134,
      6.2436799921968536e-18,
      1.8016201939805703e-18,
      -0.023720177500168776
    ],
    "contacts": [
      {
        "geom": "pickup_pedestal",
        "body": "world",
        "normal_force_n": 0.06135329905581372
      },
      {
        "geom": "pickup_pedestal",
        "body": "world",
        "normal_force_n": 0.06135329905581372
      },
      {
        "geom": "pickup_pedestal",
        "body": "world",
        "normal_force_n": 0.061353299055813715
      },
      {
        "geom": "pickup_pedestal",
        "body": "world",
        "normal_force_n": 0.061353299055813736
      }
    ],
    "left_finger_force_n": 0,
    "right_finger_force_n": 0,
    "bilateral_contact": false,
    "supported": true,
    "lift_m": -5.3040697683498506e-05
  }
}

Physical measurements

Acceptance requires at least 2 simulated seconds unsupported bilateral lift, one final second released and settled on the drop pedestal, less than 40 mm XY destination error, and less than 1 mm final one second drift. Selected run result: 1.04 s settled; 0.00 mm drift. All values are MuJoCo contacts and positions, not video interpretation.

Measured object path

Red = pickup · Green = destination · Cyan = measured object path

Object lift (mm)

57.25-13.30351 frames

Bilateral contact

1.000.00351 frames

Separate scripted API baselines. not policy evidence

These are precomputed API commands, retained only as physical engine and API baselines. Their success is excluded from all model controlled claims.

Authenticated API · YAM

YAM: pick, carry, place, release

PASSEDPhysics success gate
900 / 25Distinct frames / video FPS
36.0 sContinuous MuJoCo video
7Completed API commands
99.9 mmMaximum unsupported lift
1.02 mmFinal placement error

Observed motion phases: Ready → Approach → Grasp → Lift → Transfer → Lower → Release → Retreat. The object moved through genuine frictional MuJoCo contacts; the evaluator did not weld it to the gripper or overwrite its pose.

Visual timeline

Physical task measurements

Unsupported bilateral lift10.28 simulated seconds
Final placement error0.001023 m
Final one second object drift0.000000 m
Settled release25 frames
Object mass0.025 kg
Object size[0.016, 0.024, 0.04] m
Pickup position[0.2500009098366757, -2.7153967119061406e-17, 0.10012136902788246] m
Destination position[0.17417713860911788, 0.17933949766865334, 0.10012136902788246] m
Contact modelMuJoCo frictional contacts; no weld or object pose writes

Measured object XY path

Red = pickup · Green = destination · Cyan = measured object path

Object lift, millimeters

99.87-1.83900 frames

Bilateral jaw contact, 0 or 1

1.000.00900 frames
Authenticated API · SO101

SO101: pick, carry, place, release

PASSEDPhysics success gate
900 / 25Distinct frames / video FPS
36.0 sContinuous MuJoCo video
7Completed API commands
96.0 mmMaximum unsupported lift
3.23 mmFinal placement error

Observed motion phases: Ready → Approach → Grasp → Lift → Transfer → Lower → Release → Retreat. The object moved through genuine frictional MuJoCo contacts; the evaluator did not weld it to the gripper or overwrite its pose.

Visual timeline

Physical task measurements

Unsupported bilateral lift10.20 simulated seconds
Final placement error0.003233 m
Final one second object drift0.000000 m
Settled release25 frames
Object mass0.025 kg
Object size[0.016, 0.024, 0.04] m
Pickup position[0.18460904999305738, 5.799917456049495e-06, 0.10012512304026686] m
Destination position[0.14039968358821892, -0.10456627691997465, 0.10012512304026686] m
Contact modelMuJoCo frictional contacts; no weld or object pose writes

Measured object XY path

Red = pickup · Green = destination · Cyan = measured object path

Object lift, millimeters

95.99-1.13900 frames

Bilateral jaw contact, 0 or 1

1.000.00900 frames

Evaluation and provenance

Each arm used its calibrated pick_place scene with a 25 g object. API command completion was necessary but not sufficient: the gate checked physical lift, release near the target, and settled end state. MuJoCo physics ran on CPU; NVIDIA A40 EGL rendered the videos.

Scripted baseline data · Offline 52 pose FK/IK feasibility probe · NVIDIA renderer · Downloaded evidence checksums

Publication record

This site contains the report pages and their linked evidence. Session lease values were removed from publication copies of API journals. The original evaluation files remain unchanged. Source and published file hashes record the exported files and redactions.