Draft · values labeled expected are targets, not measurements

Sim-to-Thor: Synthetic Data, Compressed Policies, Real-Time Robot Control

Faster GR00T inference and closed-loop control on NVIDIA Jetson AGX Thor

[Authors]

Nota AI · NetsPresso Tech

Rollout videos Success rates Paper · coming soon Code · coming soon

1Motivation

Too slow at the edge

GR00T N1.7 runs at about 8 Hz on Thor in BF16 (125 ms), while reactive manipulation needs 30 Hz or more.

Costly real data

Robot demonstrations are expensive, and plain simulation frames look visibly different from camera images.

Hard-to-trust evaluation

Real-robot results are slow to collect and hard to reproduce.

2Key results expected

8.3×lower end-to-end latency on Thor (125 → 15 ms)
67 Hzpolicy rate with async execution and RTC/LIPO
< 2 %pLIBERO success drop after full compression

3NVIDIA stack

GR00T N1.7base VLA policy
Cosmos 3photoreal sim-to-real rendering, world-action policy
Isaac Simscene generation, latency-aware evaluation
Jetson AGX Thoron-robot inference
TensorRTNVFP4 engines, CUDA Graph

4Pipeline overview

  1. Sim-to-real data synthesisIsaac Sim scenes → Cosmos 3 photoreal rendering
  2. Policy training & compressionfine-tune → step distillation → vision token pruning → NVFP4
  3. Real-time control on ThorTensorRT + CUDA Graph, async chunks with RTC/LIPO

4.1 Data synthesis

4.2 Policy compression

Step distillation

A flow-matching action head integrates the velocity field over several denoising steps. We distill it into a single step with a Drift loss: each generated action is pulled toward the demonstration while sibling samples of the same input push each other apart, which keeps the action distribution diverse without a teacher at inference time.

  • GR00T N1.7: the DiT action head runs once instead of 4 times.
  • Cosmos3-Edge: the 4-step sampler with classifier-free guidance (8 tower forwards) becomes 1 forward at σ = 1 with guidance off.
4-step flow matching with CFG needs 8 forwards; the drift-distilled policy needs 1 Flow matching · 4 steps × CFG conduncond conduncond conduncond conduncond 8× Drift · 1 step cond action chunk 1×

Vision token pruning / video token drop

Most of the sequence entering the backbone is visual. We remove the tokens the action does not need.

  • GR00T N1.7 · Grid-Sampler: a small head predicts K continuous coordinates per camera and bilinearly samples K tokens from the vision-encoder patch grid, so only K image tokens reach the LLM.
  • Cosmos3-Edge · video token drop: the world-action model also generates future video (8 latent frames × 340 tokens). We keep the conditioning frame and the first K generated frames and drop the rest; dropping 75% keeps 2 of 8 frames, dropping 100% keeps actions only (FastWAM).
Grid-Sampler keeps K sampled tokens per camera; video token drop removes generated video frames from the Cosmos3 sequence GR00T · Grid-Sampler K tokens → LLM Cosmos3 · video token drop text v0 + K generated actions drop 75%: keep 2 of 8 generated frames drop 100%: actions only (FastWAM)

NVFP4 quantization

Mixed NVFP4/FP8 TensorRT engines, calibrated per component: vision encoder in FP8, LLM in NVFP4 with o_proj/down_proj in FP8, DiT action head in NVFP4.

4.3 Real-time control on Thor

Sync
inferexecuteinfer
Async
execute kexecute k+1
infer k+1infer k+2

5Evaluation protocol

Latency-aware simulation
Sim time keeps running during inference (Thor in the loop, or measured latency injected).
Benchmarks
GR00T N1.7: LIBERO (4 suites, 500 episodes each) and SO-101 move-the-cube on the real robot (20 trials per config). Cosmos3-Edge: RoboLab (96 episodes: 12 tasks × 8).
Trust in sim
Sim vs. real success correlation (Pearson r, MMRV) across all configs.

6Results

6.1 Latency on Thor expected

6.2 Success rate by vision token pruning (VTP) and step distillation (SD)

Summary · success rate (%) as shown on the poster
ConfigGR00T N1.7Cosmos3-Edge
LIBERO avgSO-101RoboLab overall
BaselineTBDTBD36.5
+ VTPTBDTBD38.5
+ SDTBDTBD22.7
+ VTP + SDTBDTBD21.9

VTP: Grid-Sampler for GR00T, 75% generated-video token drop for Cosmos3-Edge. SD: one-step Drift distillation. TBD = being measured.

Detailed results

GR00T N1.7 · LIBERO success rate (%), 500 episodes per suite
ConfigSpatialObjectGoalLongAvg
Baseline (4-step flow matching)TBDTBDTBDTBDTBD
+ VTP (Grid-Sampler, K tokens/camera)TBDTBDTBDTBDTBD
+ SD (Drift, 1 step)TBDTBDTBDTBDTBD
+ VTP + SDTBDTBDTBDTBDTBD
GR00T N1.7 · SO-101 move-the-cube on the real robot
ConfigSuccess / trialsSuccess (%)
BaselineTBD / 20TBD
+ VTPTBD / 20TBD
+ SDTBD / 20TBD
+ VTP + SDTBD / 20TBD
Cosmos3-Edge · RoboLab success rate (%), 96 episodes (12 tasks × 8)
ConfigOverallSimpleModerateComplex
Baseline (4-step, CFG)36.556.234.418.8
+ VTP: video token drop 75%38.565.625.025.0
video token drop 100% (FastWAM)25.046.928.10.0
+ SD: 1-step Drift22.743.624.60.0
+ VTP + SD: 1-step Drift + drop 75%21.940.625.00.0
1-step Drift + drop 100%9.43.125.00.0

Dropping 75% of the generated video tokens matches the baseline. One-step distillation loses success on complex tasks.

6.3 Synthetic data expected

★Rollout videos

LIBERO-Spatial
LIBERO-Object
LIBERO-Goal
LIBERO-Long

7Limitations & next steps