Scrtch

Self-Supervised 4D Reconstruction from Raw Video Alone

*Part of this work was done during an internship at Xiaomi Inc. †Corresponding author.

Scr4tch learns latent 4D representations and explicit cameras, motion masks and deformable 4D Gaussians from raw monocular video, then reconstructs unseen videos in a single feed-forward pass.

Trained without

  • camera calibration
  • geometric annotations
  • pretrained geometric models

Abstract

Self-supervised learning has enabled powerful visual representations at scale, yet its potential for understanding the 3D structure and dynamics of the world directly from raw video remains largely unrealized. We present Scr4tch, a model that learns geometrically grounded 4D representations entirely from scratch using uncalibrated monocular videos. Without requiring camera calibration, geometric annotations, or pretrained geometric models, Scr4tch unlocks self-supervised learning for 4D understanding from large-scale Internet videos.

Our key idea is to learn 4D representations that encode cross-view relationships through latent reconstruction, while constraining how motion is modeled to separate camera motion from scene dynamics and suppress appearance shortcuts. Joint geometric optimization then grounds these representations in an explicit, deformable 4D scene. To train Scr4tch, we additionally collect 2,154 hours of challenging, casually captured videos from YouTube without offline geometric preprocessing. Experiments demonstrate accurate camera estimation, 4D reconstruction, and high-quality novel view synthesis on unseen videos, establishing a path toward scalable self-supervised learning of the dynamic world.

Self-supervised motion masks

Scr4tch predicts a soft motion mask for every frame, learned without any mask, flow or motion labels.

Casually captured video

Park path with people walking, four framesPredicted motion masks for the park frames
Night street with a cyclist, four framesPredicted motion masks for the night street frames
Rainy street with pedestrians holding umbrellas, four framesPredicted motion masks for the rainy street frames
Shopping street at night with passing cars and a motorbike, four framesPredicted motion masks for the night traffic frames
Wide road on a sunny day with cars driving past, four framesPredicted motion masks for the passing cars frames
Cyclist in a yellow raincoat riding toward the camera on a wet street at night, four framesPredicted motion masks for the cyclist in the rain frames
Park road at dusk with a small, distant cyclist, four framesPredicted motion masks for the distant cyclist frames
Cars driving on a wet road on a rainy day, four framesPredicted motion masks for the wet road frames
Hiker on a mountain trail, two framesPredicted motion masks for the hiking frames
Woman walking on a city square, two framesPredicted motion masks for the city square frames
Pedestrians on a sidewalk, two framesPredicted motion masks for the sidewalk frames
Hand reaching for a cabinet in a kitchen, two framesPredicted motion masks for the kitchen frames
Aerial view of a village with a car driving through, two framesPredicted motion masks for the aerial frames
Man walking across a plaza in front of an office building, two framesPredicted motion masks for the plaza frames

Raw masks from the mask head, on videos where people and objects move independently of the camera. They are somewhat noisy, but follow walking people, cyclists, cars and hands, while static structure stays unmasked as the camera moves.

What the learned features encode

We freeze each backbone, remove its output heads and train the same light probe on top: two convolutional residual blocks on linearly projected features. DINOv2 processes each frame on its own and serves as a general-purpose reference.

Depth probing. Multi-view on BlendedMVS (3 frames), single-view on NYUv2.
MethodMulti-viewSingle-view
ARE ↓δ<1.25 ↑ARE ↓δ<1.25 ↑
DINOv20.0970.9060.0930.913
RayZer0.1430.8120.2280.586
XFactor0.1220.8610.1960.652
RayDer0.1230.8410.1690.737
SelfSplat0.0860.9290.0770.931
NAS3R0.1030.8960.1810.693
E-RayZer0.0590.9570.1760.705
Scr4tch0.0560.9660.1170.860
Motion segmentation probing on FBMS-59, trained on 353 sparsely labeled frames.
MethodIoU ↑Precision ↑Recall ↑
DINOv20.6650.8140.784
CroCo v20.6490.7890.785
VideoMAE0.6120.7670.752
V-JEPA 20.5620.7470.694
Scr4tch0.7660.8950.842
InputGround truthScr4tchDINOv2CroCo v2VideoMAEV-JEPA 2 Motion segmentation probing on five FBMS-59 videos, a horse, a rabbit, a cat, a dog and a tractor, for all methods

Scr4tch gives the cleanest masks and even catches small, distant moving objects. The video models fall below per-frame DINOv2: generic spatiotemporal features do not readily separate object motion from camera motion.

Camera estimation

Scr4tch decodes an explicit camera, with intrinsics and extrinsics, for every input frame.

Wild-SLAM Mocap

Relative translation accuracy within 5° (RTA@5) over all adjacent frame pairs on Wild-SLAM Mocap, a dynamic benchmark. Without camera labels or pretrained networks, Scr4tch is ahead of every self-supervised method. Supervised methods are shown for reference, and Scr4tch also surpasses the supervised MonST3R.

RTA@5 on Wild-SLAM Mocap (higher is better)

Scr4tch+ test-time training (TTT)

Supervised

NeoVerse0.705
MonST3R0.357

Self-supervised

Scr4tch0.5280.654 with test-time training
E-RayZer0.319
PF3plat0.284
SelfSplat0.153
NAS3R0.131
EgoMono4D0.035

SelfSplat and PF3plat take ground-truth intrinsics as input; PF3plat and EgoMono4D build on pretrained networks. The full table, including the static DL3DV benchmark, is below.

Estimated camera trajectories of Scr4tch, MonST3R, NeoVerse and E-RayZer against ground truth in black Nine input frames: a person pushes a cart that moves along with the camera

A cart moves along with the camera and stays nearly fixed in the image. The Scr4tch trajectory aligns best with the ground truth (black), recovering the true camera motion despite the moving content.

Full camera estimation table
MethodResolutionAREf ↓RRA@5 ↑RRA@15 ↑RRA@30 ↑RTA@5 ↑RTA@15 ↑RTA@30 ↑
Supervised
MonST3R288 × 5120.0620.9170.9841.0000.3570.7450.869
NeoVerse336 × 5600.0200.9871.0001.0000.7050.9360.987
Self-supervised
SelfSplat256 × 448N/A0.9570.9971.0000.1530.5390.753
PF3plat256 × 256N/A0.9460.9731.0000.2840.8900.949
NAS3R256 × 2560.1060.8580.9790.9970.1310.5150.745
E-RayZer256 × 2560.1210.9571.0001.0000.3190.6840.839
EgoMono4D288 × 3840.0520.9620.9971.0000.0350.2470.587
Scr4tch256 × 2560.0401.0001.0001.0000.5280.9300.992

Bold marks the best result among self-supervised methods. RRA and RTA count adjacent frame pairs whose relative rotation error or translation-direction error falls below the threshold, without Sim(3) alignment.

Crowded casual video

When moving people fill most of the frame, little static background is left to pin down the camera. Each clip plays frame by frame while the cameras of Scr4tch and a baseline are laid against the reference trajectory. Drag the 3D view to rotate it.

Clip
Compare with
Input frame
Input frame 1 of 9
  • Scr4tch
  • MonST3R
  • Reference
Drag to rotate

Clips from the raw training videos, which carry no camera labels; four of the ten hard clips we examined. They have no ground-truth cameras; each method is aligned to the dashed reference with one global Sim(3). MonST3R and NeoVerse are supervised; E-RayZer is a self-supervised 3D method.

Under unseen appearance

Real frame of a person in a lab
Real frame
Two estimated camera frustums, blue and orange
Estimated relative camera
Stylized grayscale frame of the same scene
Stylized frame

The stylized frame lies far outside the training distribution, and the person moves between the two views. Scr4tch still recovers the relative camera in agreement with the ground truth, which suggests it relies on scene structure rather than appearance statistics.

Disentangling camera and scene motion

A raw video never says which image changes come from the camera, which from moving objects, and which from occlusion. If the model may describe motion with as many tokens as it likes, those tokens can carry the target image itself. Reconstruction then succeeds without the camera, and camera estimates collapse.

Static structure offers a way out. Once the static scene is known, roughly ten pinhole-camera parameters explain how every static pixel changes in a new view. So Scr4tch always keeps its camera tokens and compresses its motion tokens with nested dropout: cameras explain the static scene, and motion tokens keep only what cameras cannot.

Where prior work stops

Line of workWhat it still relies on, or leaves out
Supervised feed-forward models
DUSt3R, MASt3R, VGGT, MonST3R
Trained on 3D-annotated data or with geometric supervision.
Pose-free models built on pretrained parts
Splatt3R, PF3plat, NoPo4D, EgoMono4D
Depend on pretrained geometry, depth, matching or flow networks.
Self-supervised reconstruction
RayZer, E-RayZer, NAS3R
Learn without labels, but primarily target static scenes.
Self-supervised on dynamic video
RayDer, WildRayZer
Absorb or remove moving content to render a static scene; WildRayZer also uses frozen DINOv3 features.
Scr4tchRaw monocular RGB video only. Reconstructs moving content as explicit 4D geometry with cameras, motion masks and deformable Gaussians.

Without compression, the camera stops steering the render

Without nested dropout
With nested dropout

Latent renderings without motion tokens, along cameras interpolated between the context views t1 and t9. Trained without nested dropout, the renderings ignore the camera and only blend the two contexts. With it, scene content moves with the viewpoint. Removing nested dropout drops camera translation accuracy (RTA@5) from 0.592 to 0.011.

Compression needs augmentation, and the reverse

To test for appearance leakage, we bootstrap from stylized frames and render from clean context views. If the output picks up the stylized colors, the motion tokens are carrying target appearance.

Augmentation in training
Motion tokens kept
Stylized target used for bootstrapping: the skateboarder wears a purple shirt and tan trousers
Stylized target, used for bootstrapping
Ground-truth target: the skateboarder wears a white shirt and black trousers
Ground-truth target
Scr4tch reconstruction
Scr4tch augmentation on, 1 token
RayDer reconstruction, blurry with stylized colors
RayDer, for reference

Camera and time, controlled separately

Every frame here is rendered from one 4D scene that Scr4tch predicted. Columns change only the camera, rows change only the time. Drag across the grid, use the sliders, or sweep one axis while the other stays fixed.

Scr4tch
RayDer
Camera Time

NVIDIA Dynamic. Each column uses the decoded camera of one input view, each row the time token of one input view. In Scr4tch the camera alone changes the viewpoint and the time token alone changes the scene. RayDer, also trained self-supervised on dynamic video, absorbs viewpoint changes into its dynamic state, so moving down a column shifts the view as well.

Method

One shared transformer encodes image patches together with per-view camera and time tokens and 64 global motion tokens. Training runs in two stages, and neither uses camera annotations, geometric pseudo-labels or pretrained geometric models.

Camera tokens C1C2C3C4 One per view. Swapped between two disjoint image splits, so no region is rendered with a camera that has seen its appearance.
Time tokens T1T2T3T4 One per view, limited to a single input-dependent degree of freedom. Tells the renderer which moment to retrieve.
Motion tokens M1M2M3M4…M64 Shared across views. Nested dropout keeps only the first ℓ, sampled from 0 to 64, so essential dynamics move to the leading tokens.
  1. Stage 1 Latent reconstruction pretraining

    • A bootstrap pass reads strongly augmented frames (grayscale with random channel weights, color jitter, blur) and infers camera, time and motion tokens.
    • The same transformer renders target views from clean context views, with target pixels set to zero.
    • Cross-split camera exchange, nested dropout and augmentation together block the shortcuts that would let tokens carry target appearance.
  2. Stage 2 Explicit reconstruction alignment

    • Camera tokens are decoded into intrinsics and extrinsics and mapped back to tokens, so latent rendering becomes controllable by explicit cameras.
    • A mask head predicts soft motion masks that blend a static pass (cameras only) with a dynamic pass (plus motion and time). An asymmetric cost favors static explanations.
    • A context-only pass predicts pixel-aligned Gaussians; a light head deforms them toward each target time with 7-DoF residuals gated by the mask.
    • Camera gradient routing, photometric reprojection, rendered-depth distillation and single- and multi-view depth consistency ground the scene in geometry.
Full pipeline figure
Pipeline diagram: augmented frames are split, a bootstrap pass predicts motion masks and camera, time and motion tokens, and three rendering passes produce static latent, dynamic latent and deformable Gaussian renderings

Each of the N strongly augmented frames is spatially partitioned into disjoint splits A and B. A bootstrap pass predicts per-view motion masks and camera and time tokens, plus global motion tokens. Camera tokens inferred from complementary splits are exchanged and nested dropout is applied to the motion tokens. Three subsequent passes render target images from static latent features, dynamic latent features and a deformable Gaussian scene. Image-space losses on these predictions provide self-supervision.

Design details

Camera gradient routing
Estimated and ground-truth camera trajectories with and without camera gradient routing

The static rendering uses undeformed Gaussians, which would otherwise be forced to fit moving objects and bend the cameras. With equal probability, it is supervised over the full image with detached cameras, or only over static regions with camera gradients on. On this sequence a cart moves with the camera; without routing it distorts the estimated trajectory (green), with routing the cameras align with the ground truth (black).

Context-only Gaussian pass
Input, one image ×3E-RayZerWithout context-only passWith context-only pass Depth from a single image repeated three times: E-RayZer, Scr4tch without and with the context-only pass

Base Gaussians are predicted from clean context views only. If target views were present, jointly estimated camera conditioning could reveal that the viewpoint does not change, and reconstruction would succeed without meaningful depth.

Rendered-depth distillation
Inputs, raw depths without distillation showing a patch-grid pattern, and raw depths with distillation following scene content

Top to bottom: inputs, raw depths without distillation, raw depths with it. Depths predicted by the Gaussian head get only indirect gradients through splatting and keep a patch-grid pattern. Distilling the rendered depths back into them transfers detail, down to poles and traffic signs.

Single- and multi-view depth consistency
Ground truthRendered imageRendered depth Novel view of a moving person without and with depth consistency

Top row without, bottom row with the consistency loss. A wrong depth with compensating motion can still reconstruct the inputs, but fails from a new viewpoint. Single-view depth cannot tell whether an object moves, so it supervises moving regions, while multi-view rendered depth supervises static ones.

Novel view synthesis

Static scenes

Compare depth with
Baseline rendered depth Scr4tch rendered depth Scr4tch E-RayZer
Context view 1Context view 2
Context views (input)
Target view
Target view (held out)
Scr4tch rendering of the target view
Scr4tch
Baseline rendering of the target view
E-RayZer

Static scene from DL3DV, rendered from a view between two context views. Drag the divider: Scr4tch depths follow scene structure, while the other methods produce depths distorted by texture.

Static scenes, DL3DV. Target images are excluded from the input.
MethodPSNR ↑SSIM ↑LPIPS ↓
MVSplat (ground-truth cameras)20.150.6420.215
NoPoSplat20.870.6690.197
SPFSplat20.580.6540.213
SelfSplat16.200.4060.496
NAS3R18.230.5150.294
E-RayZer18.770.5460.318
Scr4tch, Gaussian rendering21.320.6660.201
Scr4tch, latent rendering21.700.6740.177

Dynamic scenes

Ground truthScr4tchC4GMoVieSNeoVerse
Dynamic novel view synthesis at two times: ground truth, Scr4tch, C4G, MoVieS and NeoVerse t1t10

NVIDIA Dynamic: each of the 12 input images comes from a different camera at a different time. Rendering other cameras at each input time, Scr4tch shows the correct scene state, with or without the umbrella, despite training on at most 9 frames and without the external geometric and motion supervision used by the baselines.

Dynamic scenes, NVIDIA Dynamic. Target images are excluded from the input.
MethodPSNR ↑SSIM ↑LPIPS ↓
NeoVerse15.420.3160.369
C4G16.830.2950.545
MoVieS (ground-truth cameras)17.710.3690.354
Scr4tch, Gaussian rendering17.800.3450.394

Casual YouTube

2,154 hours of casually captured monocular footage, collected for this work and used as raw video: no calibration, no annotations, no geometric preprocessing.

Footage
2,154 hours
Activities
Walking, cycling, first-person driving
Conditions
Sun, rain, snow and night, often with crowds and low light
Preprocessing
None
Neon-lit city street at night in the rain Pedestrian with an umbrella crossing a snowy street Dark residential road filmed from a car at night

Training mix (sampling probability per source, RGB frames only)

Casual YouTube50%
SpatialVID-HQ30%
RealEstate10K10%
DL3DV-10K10%

We release the URLs of all 1,684 videos, one per line. The videos themselves are not redistributed.

Casual YouTube URL list (.txt)

Ablations

Ablations. Camera estimation on Wild-SLAM Mocap, dynamic NVS on NVIDIA Dynamic. Components are added cumulatively.
SettingAREf ↓RRA@5 ↑RTA@5 ↑PSNR ↑
Latent + explicit rendering0.0710.8200.47817.48
+ photometric reprojection0.0600.8340.51217.51
+ single- and multi-view depth consistency0.0560.9030.51317.85
+ camera gradient routing (full model)0.0450.9060.59217.87
Removing one part of the full model
without Casual YouTube0.0980.8630.49317.77
without nested dropout0.6530.1740.01116.67
  • Without nested dropout the camera pathway collapses: RTA@5 falls to 0.011, while PSNR stays moderate because large background regions are still reconstructed.
  • Camera gradient routing brings the largest gain in translation accuracy; depth consistency brings the largest rendering gain.
  • Unprocessed Casual YouTube footage clearly improves camera estimation.

Citation

@article{wang2026scr4tch,
  title   = {Scr4tch: Self-Supervised 4D Reconstruction from Raw Video Alone},
  author  = {Wang, Ruoyu and Hu, Jiagao and Huang, Guichen and Wang, Chenyu
             and Wang, Fei and Zhou, Daiguo and Hou, Junhui},
  journal = {arXiv preprint arXiv:XXXX.XXXXX},
  year    = {2026}
}