Emin Sadikhov

Project report · Technical University of Munich

CrossSplat: Synthetic-to-Real 3D Reconstruction via Multi-View Splatting

Feed-forward Gaussian splatting models are often trained on synthetic scenes and then used on real photos. We measure how large that gap is for MVSplat, and test three ways to narrow it: DINOv2 features, VGGT depth in place of the cost volume, and ground-truth depth supervision.

Authors
Emin Sadikhov
Dominik Schanus
Zhenzhang Ye
Affiliation
Technical University of Munich
University of Edinburgh
Date
April, 2025
Resources
Report (PDF) ↗
Code on GitHub ↗
01

Summary

MVSplat is a feed-forward model that reconstructs a scene as 3D Gaussians from as few as two images.MVSplat: Efficient 3D Gaussian Splatting from Sparse Multi-View Images. Chen, Xu, Zheng, Zhuang, Pollefeys, Geiger, Cham and Cai, 2024. arXiv:2403.14627 ↗ We train it on a synthetic dataset, Aria Synthetic Environments (ASE), and test it on real photos from RealEstate10K (RE10K). The score is clearly lower than for a model trained on RE10K itself. Adding frozen DINOv2 features to the encoder closes part of the gap. Replacing the cost volume with VGGT depth, or adding ground-truth depth supervision, did not help in our runs.

Domain gap · Table 1
−1.81 dB
PSNR on RE10K when training on ASE instead of RE10K (15.63 vs 17.44). SSIM falls from 0.643 to 0.496.
DINOv2 · Table 2
+0.67 dB
PSNR on RE10K, from 16.76 to 17.43. SSIM rises from 0.561 to 0.598, LPIPS falls from 0.361 to 0.335.
Depth RMSE · Table 3
−42%
VGGT depth against MVSplat depth (31.35 vs 54.02). AbsRel is the exception, 2.017 for VGGT and 1.641 for MVSplat.
More scenes · Table 6
+0.49 dB
PSNR on RE10K going from 56 to 400 ASE training scenes, 15.63 to 16.12.
02

Background

Reconstructing a scene from a few views matters for robotics, AR/VR and navigation. NeRF gives high quality but needs per-scene optimization and many views. Generalizable models such as pixelNeRF and IBRNet instead learn scene priors from many scenes and infer a new one in one pass. pixelSplat applied this to 3D Gaussians, predicting them from an image pair. MVSplat extends that with a plane-sweep cost volume,A cost volume compares features from different views at many candidate depths. Where the features agree, the depth is likely right. which places Gaussians more accurately and gives state-of-the-art results on RE10K from two views. We use MVSplat as our backbone.

Real 3D ground truth is hard to collect at scale, so synthetic data is attractive. But models trained on it tend to struggle on real images because of differences in lighting, texture and noise. ContraNeRF, for example, targets this for NeRF-based view synthesis with a contrastive loss that enforces multi-view feature consistency.

We look at two pretrained models as sources of more robust information. DINOv2 is a vision transformer whose features work across image distributions without fine-tuning. VGGT predicts camera parameters, depth maps, point clouds and point tracks from images. We use DINOv2 as an extra feature input, and VGGT as a reference for depth and as a possible replacement for the cost volume.

03

Method

Datasets

  • ASE (Aria Synthetic Environments) is synthetic and first-person. We corrected the image distortion and converted the cameras to MVSplat's format. It is our main training set.
  • ADT (Aria Digital Twin) is real, recorded with Aria glasses in an apartment and an office, with 236 sequences. We use it to compare synthetic and real versions of the same environment.
  • RE10K contains about 80,000 clips from roughly 10,000 YouTube videos, 10 million frames in total, with camera poses from SLAM and bundle adjustment. We use the usual 90/10 train/test split.

We also tried Hypersim and SceneNet. Neither suited our setting, as described in the appendix.

Training setup

The model predicts a set of 3D Gaussians, each with a position, opacity, covariance and color, and renders novel views from them. It is trained on ground-truth target images with a weighted sum of an ℓ2 loss and LPIPS.

L = 1 · L(ℓ2) + 0.05 · L(LPIPS)

Images are resized to 256 × 256. We report PSNR, SSIM and LPIPS, and train with Adam for 15,000 iterations unless stated otherwise.

Adding DINOv2 features

We add frozen DINOv2 features (ViT-L/14) to the architecture. They are fused with the CNN encoder outputs before the transformer block (Figure 2).

Ii ⋯ CNN 4× downsampled DINOv2 ViT-L/14 frozen Multi-View Transformer w/ cross-view attention Cost volume Depth refine Rasterization
Figure 2. Architecture with DINOv2 feature integration. The dashed block stands for the remaining MVSplat modules.

Replacing the cost volume

MVSplat's depth is noisy (see Results). We therefore remove the cost volume and depth refinement modules and use depth maps from a pretrained VGGT to position the Gaussians (Figure 4).

VGGT Ii ⋯ Ij Multi-View Transformer w/ cross-view attention (μi, αi, Σi, ci) ∪ ⋯ ∪ (μj, αj, Σj, cj) 3D Gaussians Render Novel view
Figure 4. Modified architecture without the cost volume or refinement modules, using VGGT depth maps.

Depth supervision

ASE provides ground-truth depth, so we also add a depth loss next to the RGB losses. We try both ℓ1 and ℓ2, with weights of 0.1 and 0.25.

04

Results

Table and figure numbers follow the report.

The domain gap is clear

We train MVSplat on 56 scenes from ASE or from RE10K and test on 24 RE10K scenes. The RE10K-trained model does well. The ASE-trained model drops on all three metrics, from 17.44 to 15.63 PSNR and from 0.643 to 0.496 SSIM. In Figure 1 its reconstructions are blurrier and less accurate.

Table 1. Cross-domain vs. in-domain performance of MVSplat. Training on synthetic data (ASE) leads to lower performance on real-world data (RE10K), highlighting the domain gap. Metrics are computed at 256 × 256 resolution.
Train → TestPSNR ↑SSIM ↑LPIPS ↓
ASE → RE10K15.630.4960.402
RE10K → RE10K17.440.6430.354
Context ViewsASE-trainedRE10K-trainedGround Truth
Four RE10K rooms. Each row shows two context views, the prediction of the ASE-trained model, the prediction of the RE10K-trained model, and the ground truth. The ASE-trained predictions are blurrier and show warped stripes on railings and curtains.
Figure 1. Each row visualizes the context images, novel view predictions from models trained on ASE and RE10K, and the corresponding ground truth image.

DINOv2 features help

With DINOv2 features, results improve on both the synthetic and the real test set. On RE10K, PSNR goes from 16.76 to 17.43, SSIM from 0.561 to 0.598 and LPIPS from 0.361 to 0.335. The synthetic scores improve as well, by a smaller margin. Models trained on 400 ASE scenes also benefit from a longer schedule, 100,000 instead of 15,000 iterations. With 56 scenes, longer training gives no significant gain.

Table 2. Comparison between baseline and DINOv2-enhanced models, both trained on 400 scenes from Aria (synthetic). Evaluation is performed on both synthetic (Aria) and real-world (RE10K) test sets. Best scores per metric are bolded.
ModelTest SetPSNR ↑SSIM ↑LPIPS ↓
BaselineAria (Synthetic)28.920.8650.194
RE10K (Real)16.760.5610.361
DINOv2Aria (Synthetic)29.260.8730.187
RE10K (Real)17.430.5980.335
Better features helped. Fixed depth maps and extra depth supervision did not.

More synthetic scenes help, mostly

We train on 56, 200 and 400 ASE scenes. Going from 56 to 400 raises RE10K PSNR from 15.63 to 16.12 and SSIM from 0.496 to 0.579. The step through 200 scenes is not monotonic on RE10K, where PSNR is 15.52 and LPIPS is 0.409, both slightly worse than with 56. We read the overall trend as a sign that both the diversity and the volume of synthetic data matter for cross-domain robustness.

Table 6. Evaluation of models trained on synthetic ASE data with varying numbers of training scenes. All models are trained for 40,000 iterations. Performance is measured on both the synthetic Aria dataset (in-domain) and the real-world RE10K dataset (cross-domain). Best scores per column are bolded.
# ScenesTest SetPSNR ↑SSIM ↑LPIPS ↓
56Aria (Synthetic)26.480.7980.242
RE10K (Real)15.630.4960.402
200Aria (Synthetic)27.030.8030.224
RE10K (Real)15.520.5050.409
400Aria (Synthetic)27.690.8180.226
RE10K (Real)16.120.5790.352

VGGT depth is cleaner than MVSplat depth

Artifacts such as blurry surfaces, missing regions and black patches often trace back to bad depth, so we compared depth maps directly. Figure 3 shows four scenes. VGGT depth stays closer to the ground truth and keeps room structure and object boundaries. MVSplat recovers the overall layout but is noisier and misses fine detail. In Table 3 VGGT is better on RMSE, RMSE log and δ1, while MVSplat has the lower AbsRel.

Ground Truth RGBGround Truth DepthVGGT DepthMVSplat Depth
Four synthetic rooms. Each row shows the ground truth image, ground truth depth, VGGT depth and MVSplat depth. VGGT depth closely matches the ground truth, while MVSplat depth is blurry and noisy.
Figure 3. Depth map comparisons across four scenes. Each row shows the ground truth RGB image, ground truth depth, and depth predictions from VGGT-pretrained and MVSplat models.
Table 3. Depth prediction quality comparison between MVSplat and VGGT models. Best scores are highlighted.
MethodAbsRel ↓RMSE ↓RMSE log ↓δ1 ↑
MVSplat1.64154.020.9990.300
VGGT2.01731.350.7690.495

Removing the cost volume did not work

With VGGT depth in place of the cost volume, training does not converge properly. On RE10K, PSNR falls from 16.64 to 11.47 (Table 4, Figure 5). In the original MVSplat, depth is learned implicitly through the photometric loss, which corrects depth, color and opacity together. With fixed pretrained depth, inconsistencies between views cannot be corrected. The input depth looks accurate, yet the rendered images are misaligned and the photometric loss stops being useful. Directly using pretrained depth without refinement is therefore not enough. Possible fixes are to fine-tune the depth model with a cross-view consistency loss, or to let the model adjust the depth it receives.

Table 4. Comparison between MVSplat and our modified model without the cost volume module (architecture shown in Figure 4). Both models are trained on 400 ASE scenes for 50,000 iterations and evaluated on synthetic (ASE) and real-world (RE10K) test sets.
ModelTest SetPSNR ↑SSIM ↑LPIPS ↓
MVSplatASE28.20.820.21
RE10K16.640.5670.356
OursASE21.80.630.45
RE10K11.470.3450.547
Context ViewsMVSplatOursGround Truth
Four RE10K rooms. Each row shows two context views, the MVSplat prediction, the prediction of the model without cost volume, and the ground truth. The modified model produces strong artifacts, including black regions and warped geometry.
Figure 5. Qualitative comparison between MVSplat and our modified model without the cost volume module (architecture shown in Figure 4). Both models are trained on 400 ASE scenes and evaluated on real-world RE10K test images. Each row shows context views, model predictions, and ground truth images.

Depth supervision did not help either

We compare the MVSplat baseline with four depth-loss variants. None beats the baseline on RE10K PSNR or on Aria PSNR. A few other numbers improve slightly. The ℓ2 loss with weight 0.1 has the highest RE10K SSIM (0.503), and the ℓ2 variant with weight 0.05 applied after 20,000 iterations has the best Aria SSIM and LPIPS. Overall the gains are small and the picture is mixed.

Table 5. Comparison with and without ground truth depth supervision on the Aria and RE10K test sets. All models are trained on 200 ASE scenes for 40,000 iterations. Best values per test set and metric are shown in bold.
Loss Type (Weight)Test SetPSNR ↑SSIM ↑LPIPS ↓
MVSplatRE10K14.790.4660.417
Aria27.860.8250.222
ℓ1 (0.1)RE10K13.740.4100.455
Aria25.130.7790.255
ℓ1 (0.25)RE10K12.990.3940.475
Aria24.970.7680.265
ℓ2 (0.1)RE10K12.860.5030.418
Aria25.780.8170.250
ℓ2 (0.05, after 20k)RE10K14.340.4900.425
Aria27.480.8480.219

A first look at Aria Digital Twin

ADT has synthetic and real renderings of the same environments. We overfit the model on one synthetic scene and test it on the matching real scene (Figure 6). Layout and geometry agree across the three images, but lighting, shading and texture differ. The model gets the placement of furniture and walls right. The prediction is slightly blurrier, less sharp and brighter than the real image. So the model generalizes somewhat from synthetic training alone, but loses fine detail and texture.

Real GTSynthetic GTPrediction
A real office room with a sofa and a side table, the matching synthetic rendering from a slightly different angle, and the model prediction, which is blurrier and brighter than the real image.
Figure 6. Aria Digital Twins comparison.
05

Conclusion

  • Domain gap. MVSplat trained on ASE scores clearly below the same model trained on RE10K, when tested on RE10K.
  • Features. Frozen DINOv2 features improve results on real data, and on synthetic data by a little.
  • Depth. VGGT depth is cleaner than MVSplat depth by most measures, yet using it in place of the cost volume, or supervising with ground-truth depth, did not improve reconstruction.

Limitations. The experiments use small training sets, from 56 to 400 scenes, and short schedules. The depth findings are on indoor scenes only.

Future work. The report suggests fine-tuning the depth model with a cross-view consistency loss, or letting the model adjust the depth it is given. Optimizing depth and appearance jointly still looks important for the best results.

06

Appendix

A. Hypersim

Hypersim is a large synthetic indoor dataset built from 3D scans of real environments, with ground truth for depth, normals and instances. It did not fit sparse-view reconstruction. Its images are scattered snapshots from different viewpoints rather than frames of a continuous trajectory, so neighboring views overlap very little. MVSplat then has trouble finding geometric correspondences and produces incomplete reconstructions with black patches, especially in low-texture areas. Sorting images by viewing direction to build pseudo-sequences helped a little (Figure 8) but not enough.

Twelve Hypersim images in three rows of four: a bathroom, a bedroom, and a bathroom with a sunken tub, each from clearly different viewpoints.
Figure 7. Example images from Hypersim. Images are sampled from different viewpoints without continuous trajectories, leading to limited multiview overlap and challenging 3D reconstruction.
Four Hypersim bathroom images sorted by viewing direction, showing a window and a sink from slightly different angles.
Figure 8. Hypersim images sorted based on viewing direction to improve overlap. While sorting helps slightly, there is still insufficient view overlap for reliable 3D reconstruction.

B. SceneNet

SceneNet is a 2017 synthetic dataset of randomly generated indoor scenes rendered from several viewpoints. The scenes are simple, with a few low-texture objects, plain lighting and materials, and little fine structure. Models trained on it generalize poorly to real images. It was still useful for our first experiments, where we could train models and reproduce results on RE10K. We then switched to more realistic synthetic data, ASE.

Twelve SceneNet images in three rows of four. Rooms contain a few randomly placed objects on plain floors.
Figure 9. Example images from SceneNet. Scenes are populated with randomly placed, low-texture objects, leading to simpler environments compared to real-world indoor scenes.
07

Cite

@misc{sadikhov2025crosssplat, title = {CrossSplat: Synthetic-to-Real 3D Reconstruction via Multi-View Splatting}, author = {Sadikhov, Emin and Schanus, Dominik and Ye, Zhenzhang}, year = {2025}, note = {Technical University of Munich, University of Edinburgh}, url = {https://github.com/sadikhovemin/CrossSplat} }