Splat2Real: Novel-view Scaling for Physical AI with 3D Gaussian Splatting
Organizations: Department of Mechanical Engineering, State University of New York, Korea, 21985, Republic of Korea. · Department of Mechanical Engineering, State University of New York, Stony Brook, Stony Brook, NY 11794, USA.
Abstract
Physical AI faces viewpoint shift between training and deployment, and novel-view robustness is essential for monocular RGB-to-3D perception. We cast Real2Render2Real monocular depth pretraining as imitation-learning-style supervision from a digital twin oracle: a student depth network imitates expert metric depth/visibility rendered from a scene mesh, while 3DGS supplies scalable novel-view observations. We present Splat2Real, centered on novel-view scaling: performance depends more on which views are added than on raw view count. We introduce CN-Coverage, a coverage+novelty curriculum that greedily selects views by geometry gain and an extrapolation penalty, plus a quality-aware guardrail fallback for low-reliability teachers. Across 20 TUM RGB-D sequences with step-matched budgets (N=0 to 2000 additional rendered views, with N unique <= 500 and resampling for larger budgets), naive scaling is unstable; CN-Coverage mitigates worst-case regressions relative to Robot/Coverage policies, and GOL-Gated CN-Coverage provides the strongest medium-high-budget stability with the lowest high-novelty tail error. Downstream control-proxy results versus N provides embodied-relevance evidence by shifting safety/progress trade-offs under viewpoint shift.
Figures & tables
| Metric | Value | Split/frames |
|---|---|---|
| Median abs depth error (m) | 0.028 0.019 | held-out real frames |
| Mean abs depth error (m) | 0.088 0.111 | held-out real frames |
| Valid-pixel fraction | 0.875 0.171 | held-out real frames |
| N | Random | Robot | Coverage | CN-Coverage | CN-Coverage (MeshHist) | GOL-Gated CN-Coverage |
|---|---|---|---|---|---|---|
| 0 | 0.36 0.05 | 0.35 0.06 | 0.34 0.04 | 0.35 0.05 | 0.30 0.07 | 0.31 0.07 |
| 25 | 0.36 0.07 | 0.35 0.08 | 0.36 0.07 | 0.35 0.08 | 0.31 0.05 | 0.28 0.05 |
| 50 | 0.36 0.09 | 0.37 0.09 | 0.37 0.10 | 0.38 0.07 | 0.33 0.08 | 0.40 0.12 |
| 100 | 0.35 0.06 | 0.37 0.09 | 0.36 0.08 | 0.40 0.10 | 0.34 0.07 | 0.36 0.09 |
| 200 | 0.38 0.07 | 0.39 0.10 | 0.39 0.06 | 0.40 0.12 | 0.38 0.11 | 0.31 0.04 |
| 500 | 0.36 0.08 | 0.44 0.12 | 0.40 0.11 | 0.36 0.09 | 0.33 0.09 | 0.31 0.06 |
| Method | Mean | Worst | Range |
|---|---|---|---|
| GOL-Gated CN-Coverage | 0.317 | 0.328 | 0.020 |
| CN-Coverage (MeshHist) | 0.356 | 0.390 | 0.066 |
| Random | 0.367 | 0.382 | 0.028 |
| CN-Coverage | 0.374 | 0.399 | 0.044 |
| Coverage | 0.397 | 0.416 | 0.035 |
| Robot | 0.446 | 0.482 | 0.096 |
| Method | 400-step | 2000-step | ||
|---|---|---|---|---|
| GOL-Gated CN-Coverage | 200 | 0.322 0.087 | 0.253 0.046 | -0.069 |
| Random | 200 | 0.369 0.092 | 0.314 0.046 | -0.055 |
| GOL-Gated CN-Coverage | 2000 | 0.356 0.082 | 0.263 0.051 | -0.093 |
| Random | 2000 | 0.362 0.092 | 0.316 0.042 | -0.046 |
| Mode | Scenes | Tail@0 | Tail@2000 | Tail |
|---|---|---|---|---|
| CN-Coverage | 20 | 0.367 0.063 | 0.387 0.116 | 0.020 0.082 |
| CN-Coverage (MeshHist) | 20 | 0.330 0.088 | 0.408 0.136 | 0.079 0.062 |
| Coverage | 20 | 0.350 0.053 | 0.419 0.132 | 0.069 0.109 |
| GOL-Gated CN-Coverage | 20 | 0.319 0.072 | 0.348 0.115 | 0.030 0.083 |
| Random | 20 | 0.377 0.060 | 0.387 0.117 | 0.010 0.082 |
| Robot | 20 | 0.385 0.091 | 0.462 0.154 | 0.077 0.098 |
| Setting | Value |
|---|---|
| Total scenes | 20 |
| High-quality scenes (q_s ¿= 1) | 10 |
| Low-quality scenes (q_s ¡ 1) | 10 |
| High-quality rate | 0.500 |
| PSNR threshold | 10.000 |
| SSIM threshold | 0.200 |
| Mode | N | Succ | Col/100 | Col/fail | Path |
|---|---|---|---|---|---|
| CN-Coverage | 0 | 0.226 0.026 | 0.900 0.341 | 0.140 0.053 | 0.281 0.026 |
| CN-Coverage | 200 | 0.523 0.031 | 22.892 2.225 | 5.759 0.417 | 0.647 0.029 |
| CN-Coverage | 500 | 0.514 0.031 | 21.525 2.104 | 5.315 0.394 | 0.625 0.029 |
| CN-Coverage | 1000 | 0.386 0.030 | 11.667 1.734 | 2.280 0.320 | 0.429 0.029 |
| Coverage | 0 | 0.226 0.026 | 0.900 0.341 | 0.140 0.053 | 0.281 0.026 |
| Coverage | 200 | 0.280 0.028 | 4.458 1.037 | 0.743 0.171 | 0.291 0.027 |
| Condition | AbsRel | RMSE | SIlog | Scale | d1 |
|---|---|---|---|---|---|
| real (upper) | 0.221 0.086 | 0.505 0.171 | 21.556 | 0.163 | 0.605 0.160 |
| mesh | 0.283 0.104 | 0.583 0.213 | 24.000 | 0.226 | 0.506 0.160 |
| mesh+DR | 0.308 0.098 | 0.621 0.213 | 25.575 | 0.255 | 0.458 0.180 |
| mesh+Hist | 0.281 0.149 | 0.527 0.150 | 22.192 | 0.221 | 0.560 0.187 |
| mesh+AdaIN | 0.279 0.115 | 0.563 0.155 | 24.724 | 0.220 | 0.523 0.145 |
| 3DGS | 0.315 0.073 | 0.726 0.239 | 27.978 | 0.257 | 0.379 0.168 |
| N | Comp | Scenes | MedD | MeanD | p |
|---|---|---|---|---|---|
| 200 | Best non-guardrail | 20 | 0.030 | -0.076 | 0.869 |
| 200 | Coverage | 20 | -0.047 | -0.081 | 0.00558 |
| 200 | Random | 20 | -0.042 | -0.074 | 0.00944 |
| 2000 | Best non-guardrail | 20 | -0.003 | -0.032 | 0.498 |
| 2000 | Coverage | 20 | -0.023 | -0.058 | 0.0121 |
| 2000 | Random | 20 | -0.020 | -0.031 | 0.0826 |
| Mode | NPoints | Pearson | Spearman |
|---|---|---|---|
| All | 48 | 0.182 | 0.182 |
| Random | 8 | 0.296 | 0.244 |
| Robot | 8 | 0.909 | 0.952 |
| Coverage | 8 | 0.899 | 0.903 |
| CN-Coverage | 8 | 0.452 | 0.390 |
| CN-Coverage (MeshHist) | 8 | 0.658 | 0.537 |
| N | BestSampler | BestAbsRel | Coverage |
|---|---|---|---|
| 0 | CN-Coverage (MeshHist) | 0.298 0.066 | 0.771 |
| 25 | GOL-Gated CN-Coverage | 0.283 0.045 | 0.823 |
| 50 | CN-Coverage (MeshHist) | 0.331 0.084 | 0.860 |
| 100 | CN-Coverage (MeshHist) | 0.342 0.066 | 0.905 |
| 200 | GOL-Gated CN-Coverage | 0.308 0.036 | 0.946 |
| 500 | GOL-Gated CN-Coverage | 0.309 0.058 | 0.971 |
| Method | AbsRel | RMSE | d1 |
|---|---|---|---|
| mesh+Hist | 0.302 | 0.759 | 0.354 |
| 3DGS | 0.452 | 1.107 | 0.152 |
| GOL-Gated | 0.363 | 0.882 | 0.263 |
| N | Bucket | Qual. | Scenes | Mean std | Median | Frac( ) |
|---|---|---|---|---|---|---|
| 0 | High-q | 10 | 0.034 0.071 | 0.034 | 0.10 | |
| 0 | Low-q | 10 | 0.069 0.166 | 0.087 | 0.20 | |
| 500 | High-q | 10 | 0.069 0.091 | 0.044 | 0.10 | |
| 500 | Low-q | 10 | 0.007 0.105 | 0.019 | 0.50 | |
| 2000 | High-q | 10 | -0.096 0.147 | -0.021 | 0.60 | |
| 2000 | Low-q | 10 | 0.025 0.107 | 0.020 | 0.40 |
| Domain | Frames | LPIPS | PSNR | SSIM |
|---|---|---|---|---|
| 3DGS | 720 | 0.677 0.075 | 10.855 2.690 | 0.373 0.151 |
| mesh(vertex) | 720 | 0.522 0.105 | 11.374 3.393 | 0.442 0.153 |
| mesh+Hist | 720 | 0.499 0.088 | 13.524 3.166 | 0.506 0.187 |
| mesh-shaded(sim) | 720 | 0.767 0.053 | 5.863 1.342 | 0.341 0.161 |
| Component | Value | Units |
|---|---|---|
| GPU | NVIDIA GeForce RTX 5090 | – |
| Teacher build time (n=19) | 2.529 0.392 | s/sequence |
| 3DGS setup | non-iterative init; voxel m, points , iters | – |
| GS render throughput | 219.89 | views/s |
| Student training time (reference, 6 epochs) | 36.22 | s |
| Student inference speed (320x240) | 552.56 | FPS |
| Scenes | MedianErr (m) | MeanErr (m) | ValidFrac |
|---|---|---|---|
| 20 | 0.028 0.019 | 0.088 0.111 | 0.875 0.171 |
| Name | Sampler | Observation source | Mixing rule |
|---|---|---|---|
| Random / Robot / Coverage | corresponding pose policy | 3DGS RGB observations | none |
| CN-Coverage | coverage + bounded-novelty greedy policy | 3DGS RGB observations | none |
| CN-Coverage (MeshHist) | CN-Coverage | mesh RGB with per-scene LAB Reinhard transfer to train real-RGB statistics | none |
| mesh+AdaIN | Coverage (reference schedule only) | mesh RGB with AdaIN style transfer using a sampled train-split real frame as style reference | none |
| GOL-Gated CN-Coverage | CN-Coverage | 3DGS or mesh+Hist RGB | Bernoulli scene-level mixing with probability |
| GOL-Composite | Coverage (reference schedule only) | 3DGS and mesh+Hist RGB | per-pixel confidence blend 3DGS mesh+Hist |
| Setting | Value |
|---|---|
| Student model | DepthUNet (ch=32), single depth head |
| Input resolution | 320x240 RGB |
| Optimizer | AdamW |
| Batch size | 12 |
| Learning rate | 5.0e-05 |
| Weight decay | 1.0e-04 |
| Sampler | Pose rule |
|---|---|
| Random | train anchor + trans jitter N(0,[0.12,0.12,0.05] m) + yaw jitter N(0,10 deg) |
| Robot | arc offsets: radius U[0.15,0.35] m, heading U[-45,45] deg, z jitter +/-0.05 m |
| Coverage | greedy max new covered voxels |
| CN-Coverage | greedy max coverage-gain * exp(-d/sigma) |
| Candidate pool | benchmark default: random+robot candidates, per scene |
| Reuse | fixed per scene/seed; shared across methods and all budgets |
| Setting | Value |
|---|---|
| Coverage set V(T) | visible voxels from mesh-depth backprojection (z-buffer visibility) |
| Visibility label | supervision mask from mesh ray-casting; distinct from coverage set |
| Voxel size | 0.100 m |
| Depth stride | 12 |
| / scene | 1000 0 |
| Unique selected/scene | 500 |
| Seed | AbsRel |
|---|---|
| 7 | 0.397 0.119 |
| 11 | 0.339 0.086 |
| 19 | 0.328 0.079 |
| Across-seed mean ± std | 0.354 0.037 |
| Scene | AbsRel | Cov@50 | NovQ80 | |
|---|---|---|---|---|
| f1-xyz | 0.220 | 1.253 | 0.872 | 0.218 |
| f3-struct-notex-near | 0.187 | 0.761 | 0.931 | 1.368 |
| f1-desk | 0.119 | 1.158 | 0.862 | 0.336 |
| Method | voxel (m) | AbsRel | scenes | |
|---|---|---|---|---|
| GOL-Gated CN-Coverage | 200 | 0.010 | 0.310 0.071 | 20 |
| GOL-Gated CN-Coverage | 200 | 0.020 | 0.307 0.067 | 20 |
| GOL-Gated CN-Coverage | 200 | 0.050 | 0.308 0.068 | 20 |
| Method | AbsRel | scenes | ||
|---|---|---|---|---|
| GOL-Gated CN-Coverage | 200 | 0.170 | 0.305 0.063 | 20 |
| GOL-Gated CN-Coverage | 200 | 0.350 | 0.313 0.038 | 20 |
| GOL-Gated CN-Coverage | 200 | 0.700 | 0.315 0.088 | 20 |
| GOL-Gated CN-Coverage | 2000 | 0.170 | 0.332 0.086 | 20 |
| GOL-Gated CN-Coverage | 2000 | 0.350 | 0.354 0.095 | 20 |
| GOL-Gated CN-Coverage | 2000 | 0.700 | 0.355 0.092 | 20 |
| Metric | Value |
|---|---|
| Spearman correlation | 0.221 |
| Pearson correlation | 0.028 |
| Scenes | 20 |
| Method | N | Steps | Regime | AbsRel | Scenes |
|---|---|---|---|---|---|
| Random | 0 | 400 | Step-matched | 0.357 0.048 | 20 |
| Random | 200 | 400 | Step-matched | 0.382 0.069 | 20 |
| Random | 200 | 437 | Exp-match | 0.397 0.083 | 20 |
| Random | 2000 | 400 | Step-matched | 0.355 0.080 | 20 |
| Random | 2000 | 770 | Exp-match | 0.345 0.076 | 20 |
| GOL-Gated CN-Coverage | 0 | 400 | Step-matched | 0.312 0.069 | 20 |
| N | Method | AbsRel | Scenes |
|---|---|---|---|
| 200 | Coverage | 0.389 0.058 | 20 |
| 200 | CN-Coverage | 0.399 0.120 | 20 |
| 200 | GOL-Gated CN-Coverage | 0.308 0.036 | 20 |
| 200 | StochGreedy-Cov | 0.395 0.057 | 20 |
| 2000 | Coverage | 0.381 0.095 | 20 |
| 2000 | CN-Coverage | 0.355 0.090 | 20 |
| N | Comparator | MeanD | MedD | W/L/T | p |
|---|---|---|---|---|---|
| 200 | CN-Coverage | -0.091 | -0.010 | 11/9/0 | 0.368 |
| 200 | CN-Coverage (MeshHist) | -0.076 | 0.030 | 9/11/0 | 0.869 |
| 2000 | CN-Coverage | -0.032 | -0.003 | 11/9/0 | 0.498 |
| 2000 | CN-Coverage (MeshHist) | -0.067 | -0.009 | 12/8/0 | 0.097 |
| N | Comparator | MeanD | MedD | W/L/T | p |
|---|---|---|---|---|---|
| 0 | CN-Coverage | -0.048 | -0.066 | 17/3/0 | 0.005 |
| 0 | CN-Coverage (MeshHist) | -0.011 | 0.003 | 10/10/0 | 0.674 |
| 2000 | CN-Coverage | -0.039 | -0.005 | 12/8/0 | 0.216 |
| 2000 | CN-Coverage (MeshHist) | -0.060 | -0.016 | 15/5/0 | 0.012 |
Active View Selection
Active view selection chooses camera or sensor viewpoints that reveal the most useful new evidence for perception, reconstruction, or action.
See all 35 papers