SceneRig: An Agentic System for Simulation-Ready 3D Scene Reconstruction from Single Images
Organizations: Luma AI · Cornell University
Abstract
Simulation is a powerful tool for robotics, but building diverse, simulation-ready scenes at scale remains difficult. Reconstructing scenes from single images is a promising alternative, but visual similarity alone is insufficient: objects must also be recovered, accurately placed, and physically grounded. Existing methods that rely on post-hoc physics settling often misplace objects, producing scenes that look correct but behave poorly under manipulation. We present SceneRig, an agentic system that turns a single image into an editable, simulation-ready scene. SceneRig combines geometric, visual, and physical tools to reconstruct a faithful 3D scene. An agent then performs edit-and-validate loops inside a physics simulator to achieve physical stability. Across diverse inputs, SceneRig improves instance segmentation, object-centric appearance, and 3D placement while keeping the reconstructed scenes physically stable. Furthermore, SceneRig is effective for downstream robotics: its scenes predict real-robot policy outcomes more accurately than the baseline method and more reliably support replay of recorded manipulations without trajectory adaptation.
Figures & tables
| Source-view reconstruction | Pairwise VLM evaluation | Physical stability | |||||||
| Method | PSNR | SSIM | LPIPS | nCLIP | Completeness | Layout | Appearance | Scene (%) | Object (%) |
| VIGA | 11.414 | 0.529 | 0.653 | 0.180 | 0.225 | -0.237 | -0.249 | 10.0 | 27.1 |
| REST3D | 11.092 | 0.590 | 0.729 | 0.214 | -1.074 | -0.840 | -1.625 | 31.3 | 76.6 |
| SceneConductor | 10.140 | 0.503 | 0.727 | 0.172 | 0.385 | -0.837 | -0.473 | 8.8 | 36.5 |
| SimFoundry | 12.060 | 0.582 | 0.720 | 0.194 | -0.432 | -0.683 | -0.792 | 98.8 | 99.9 |
| SceneRig (ours) | 13.277 | 0.544 | 0.518 | 0.122 | 0.895 | 2.597 | 3.139 | 100.0 | 100.0 |
| Object-centric metrics | 3D object layout | |||||||||
| Method | ARI | FG-IoU | Count MAE | PSNR ∗ | SSIM ∗ | LPIPS ∗ | nCLIP ∗ | OSPA@5 | OSPA@10 | F1@10 |
| SAM3D ∗ | 0.784 | 0.705 | – | 12.810 | 0.403 | 0.195 | 0.078 | 2.7 | 3.7 | 0.88 |
| VIGA | 0.283 | 0.260 | 3.36 | 8.987 | 0.315 | 0.325 | 0.149 | 4.9 | 8.9 | 0.29 |
| REST3D | 0.210 | 0.204 | 3.20 | 9.636 | 0.378 | 0.296 | 0.148 | 4.7 | 8.7 | 0.29 |
| SceneConductor | 0.197 | 0.187 | 1.14 | 9.493 | 0.329 | 0.317 | 0.152 | 5.0 | 9.5 | 0.14 |
| SimFoundry | 0.676 | 0.589 | 1.05 | 11.497 | 0.379 | 0.240 | 0.103 | 3.3 | 4.8 | 0.82 |
| Environment | Everything bin | Fruits plate | Fruits bowl | Marker cup | Mustard bin | All | Cohen’s | Pearson | |
| Real-world | success | 7/10 | 7/10 | 7/10 | 5/10 | 7/10 | 33/50 | – | – |
| SimFoundry | success | 4/10 | 6/10 | 5/10 | 6/10 | 6/10 | 27/50 | – | -0.38 |
| agreement | 5/10 | 7/10 | 2/10 | 5/10 | 5/10 | 24/50 | -0.07 | – | |
| SceneRig | success | 9/10 | 8/10 | 5/10 | 4/10 | 7/10 | 33/50 | – | 0.70 |
| agreement | 8/10 | 7/10 | 6/10 | 7/10 | 8/10 | 36/50 | 0.38 | – |
Appendix figures & tables16 assets
Supplementary material from the paper’s appendix.
Appendix
| Component | Role and conditioning |
| Configurable VLM | Category/instance proposals, semantic reviews, physical-property estimates, and stage agents; launcher default: claude-opus-5 . |
| MolmoPoint-8B / SAM3 | Instance-description localization / category, synonym, crop, and point-conditioned masks. |
| MoGe-2 / SAM3D | Metric camera and point map / textured per-object mesh. |
| LanPaint + Qwen-Image-Edit-2509 | Masked occluder removal and one-sided outpainting. |
| LingBot-Depth | Edited RGB, surviving metric depth, and intrinsics; ViT-L/14 v0.5 pretrained checkpoint. |
| SHARP + GPT-Image-2 | Gaussian novel-view rendering followed by image repair; point-splat/masked-edit fallback. |
| Setting | Default |
| Input / image-edit resolution | RGB input long edge 1536 pixels; GPT image-edit input long edge at most 2048 pixels. |
| Root plane fitting | 200 RANSAC trials, at most 5000 points, 0.01 inlier distance; reliable root planes require inlier fraction and image coverage . |
| Occluder image editing | 20 diffusion steps, guidance 4, seed 0; one LanPaint Langevin step per diffusion step. |
| Ordinary / support CoACD | Concavity 0.05 / 0.02; at most 32 / 64 parts; a capped support can be retried with 128 parts. Ordinary resolution 50; support resolution , where is mesh maximum extent. |
| Physics material fallback | Density 250 kg/m 3 ; contact offset 0.002, rest offset 0. |
| Settlement | 120 Hz; 600-step ordinary or 240-step local budget, with a further 600 steps for an unconverged drop. |
| Environment | Everything bin | Fruits plate | Fruits bowl | Marker cup | Mustard bin | All | Cohen’s | Pearson | |
| Real-world | success | 5/10 | 7/10 | 2/10 | 3/10 | 3/10 | 20/50 | – | – |
| SimFoundry | success | 4/10 | 4/10 | 0/10 | 0/10 | 2/10 | 10/50 | – | 0.88 |
| agreement | 5/10 | 5/10 | 8/10 | 7/10 | 5/10 | 30/50 | 0.09 | – | |
| SceneRig | success | 5/10 | 6/10 | 1/10 | 1/10 | 0/10 | 13/50 | – | 0.93 |
| agreement | 6/10 | 7/10 | 7/10 | 6/10 | 7/10 | 33/50 | 0.25 | – |
| Policy | Method | Agreement | Cohen’s | Pearson | MMRV | Rate error | McNemar |
| SimFoundry | 48% [36, 62] | [ , 0.18] | 0.12 | 0.16 | 18 vs. 6, | ||
| SceneRig | 72% [60, 84] | 0.38 [0.11, 0.63] | 0.70 | 0.00 | 0.12 | ||
| LingBot-VLA 2.0 | SimFoundry | 60% [46, 74] | 0.09 [ , 0.35] | 0.88 | 0.06 | 0.20 | 7 vs. 4, |
| SceneRig | 66% [52, 78] | 0.25 [0.00, 0.50] | 0.93 | 0.04 | 0.14 | ||
| Pooled | SimFoundry | 54% [45, 63] | 0.09 [ , 0.27] | 0.84 | 0.11 | 0.18 | 25 vs. 10, |
| SceneRig | 69% [60, 78] | 0.38 [0.20, 0.56] | 0.92 | 0.04 | 0.13 |
| Task | Code edits only | Full SceneRig |
| Everything bin | 1/5 | 3/5 |
| Cup bowl | 1/5 | 4/5 |
| Fruits bowl | 2/5 | 4/5 |
| Marker cup | 2/5 | 4/5 |
| Mustard bin | 5/5 | 5/5 |
| All | 11/25 (44%) | 20/25 (80%) |
| Source-view reconstruction | Object-centric appearance | Instance structure | 3D object layout | |||||||||
| VLM backbone | PSNR | SSIM | LPIPS | nCLIP | PSNR ∗ | SSIM ∗ | LPIPS ∗ | nCLIP ∗ | ARI | FG-IoU | OSPA@5 | F1@10 |
| Claude Opus 5 | 13.277 | 0.544 | 0.518 | 0.122 | 13.609 | 0.440 | 0.170 | 0.062 | 0.878 | 0.819 | 2.4 | 0.93 |
| Claude Fable 5 | 12.837 | 0.535 | 0.535 | 0.126 | 13.082 | 0.432 | 0.170 | 0.064 | 0.879 | 0.820 | 2.4 | 0.94 |
| GPT-5.6-terra | 13.918 | 0.577 | 0.527 | 0.128 | 13.338 | 0.437 | 0.178 | 0.067 | 0.850 | 0.781 | 2.6 | 0.92 |
| Kimi K3 | 12.830 | 0.542 | 0.557 | 0.121 | 13.196 | 0.439 | 0.184 | 0.066 | 0.865 | 0.802 | 2.5 | 0.93 |
| GPT-6 Astra | 16.512 | 0.592 | 0.369 | 0.100 | 14.535 | 0.462 | 0.151 | 0.060 | 0.891 | 0.838 | 2.3 | 0.95 |
| Source-view reconstruction | Object-centric appearance | Instance structure | 3D object layout | |||||||
| Placement | PSNR | LPIPS | nCLIP | PSNR ∗ | LPIPS ∗ | nCLIP ∗ | ARI | FG-IoU | OSPA@5 | F1@10 |
| SAM3D raw poses | 12.915 | 0.538 | 0.131 | 12.810 | 0.195 | 0.078 | 0.784 | 0.705 | 2.7 | 0.88 |
| SAM3D raw poses + physics settle | 12.768 | 0.546 | 0.129 | 12.408 | 0.198 | 0.079 | 0.748 | 0.664 | 3.0 | 0.84 |
| SceneRig , code edits only | 13.272 | 0.523 | 0.124 | 13.415 | 0.178 | 0.066 | 0.858 | 0.792 | 2.4 | 0.92 |
| SceneRig | 13.277 | 0.518 | 0.122 | 13.609 | 0.170 | 0.062 | 0.878 | 0.819 | 2.4 | 0.93 |
| Full-scene appearance | Object-centric appearance | Instance structure | 3D object layout | Physics | API cost | ||||||||
| VLM backbone | Method | PSNR | LPIPS | nCLIP | PSNR ∗ | LPIPS ∗ | nCLIP ∗ | ARI | FG-IoU | OSPA@5 | F1@10 | Stable scenes | (\downarrow$ |
| Claude Opus 5 | VIGA | 11.042 | 0.671 | 0.191 | 8.725 | 0.337 | 0.154 | 0.261 | 0.239 | 4.9 | 0.20 | 8/80 | 16.13 |
| SceneRig | 13.277 | 0.518 | 0.122 | 13.609 | 0.170 | 0.062 | 0.878 | 0.819 | 2.4 | 0.93 | 80/80 | 4.22 | |
| GPT-6 Astra | VIGA | 15.316 | 0.433 | 0.125 | 14.077 | 0.187 | 0.082 | 0.721 | 0.648 | 4.6 | 0.37 | 24/80 | 7.74 |
| Codex harness | 17.007 | 0.370 | 0.100 | 14.773 | 0.178 | 0.073 | 0.653 | 0.594 | 4.2 | 0.60 | 16/80 | 3.99 | |
| SceneRig | 16.512 | 0.369 | 0.100 | 14.535 | 0.151 | 0.060 | 0.891 | 0.838 | 2.3 | 0.95 | 80/80 | 6.24 | |
| Stage-1 segmentation | Final scene | |||||
| Method | ARI | FG-IoU | Count MAE | ARI | FG-IoU | Count MAE |
| VIGA | 0.450 | 0.394 | 4.43 | 0.283 | 0.260 | 3.36 |
| REST3D | 0.864 | 0.809 | 3.18 | 0.210 | 0.204 | 3.20 |
| SceneConductor | 0.824 | 0.800 | 1.11 | 0.197 | 0.187 | 1.14 |
| SimFoundry | 0.780 | 0.732 | 1.84 | 0.676 | 0.589 | 1.05 |
| SceneRig (ours) | 0.981 | 0.970 | 0.27 | 0.878 | 0.819 | 0.27 |