A Compact Explicit 4D Representation for Dynamic Scenes

1College of William & Mary2SparcAI Inc.
*Corresponding author†Project lead
Animated comparison on a MultiCamVideo clip: input view, MoVieS, 4DGT, C4G, Sparc4D and ground truth from a held-out camera
Sparc4D encodes a posed monocular clip into a compact explicit 4D state and renders it from held-out cameras. Each frame of the animation is one timestamp of a 32-frame MultiCamVideo clip.

Abstract

We present Sparc4D, a feed-forward autoencoder that encodes a monocular video with known cameras into a compact explicit 4D scene state. Static features are shared across the clip, while spatially anchored temporal slots compress the time-varying features. Fine-grid appearance codes and sparse source texture preserve spatial detail alongside this temporal bottleneck. Temporal slots use a median 5.0× fewer values than per-frame storage of time-varying features, with negligible change in novel-view quality. A sparse decoder reconstructs 2D Gaussian surfels that provide geometry for rendering and source-texture reprojection. The complete state includes learned features, sparse occupancy, one full source frame and dynamic-region pixels sampled every fourth frame. On random MultiCamVideo windows, it averages 0.67M 32-bit-equivalent values per 32-frame clip. At this size, it retains novel-view quality comparable to MoVieS and higher PSNR than MCV-fine-tuned C4G. Training on synthetic scenes also supports zero-shot reconstruction on DyCheck and Neu3D. After domain adaptation, the frozen encoder supports a ManiSkill3 StackCube policy with 81.3% success from 1,000 demonstrations.

Method

Sparc4D overview: shared sparse encoder, stored static and coarse codes, temporal slots per cell, cell-local readout, sparse decoder to 2D Gaussian surfels, joint rasterization, stored-texture reprojection
Overview. A shared sparse encoder processes static, coarse and per-frame dynamic observations from a posed monocular clip. Static and coarse codes are stored once. Independent attention modules compress the dynamic latent and appearance codes on the 323 and 1283 grids into two temporal slots per cell. At an observed time t, cell-local readouts recover the dynamic codes, and the appearance code is injected at 1283. The three layers merge at joint 2D Gaussian splatting (2DGS) rasterization. Stored texture holds the full first frame and dynamic pixels sampled every fourth frame; depth-consistent reprojection updates colour before background compositing.
1 · Encode

Estimated depth lifts each frame into sparse 3D observations. Static, coarse and dynamic layers are voxelized and passed through one shared sparse encoder.

2 · Store

Static and coarse codes are kept once per clip. At each occupied cell, attention pools the per-frame dynamic codes into two temporal slots. Sparse occupancy and source pixels complete the state.

3 · Decode

A query (cell, time) reads the slots back. The sparse decoder follows the stored occupancy and outputs 2D Gaussian surfels. Their rendered depth reprojects the stored texture into the target view.

0.67M
values per 32-frame clip
(MultiCamVideo average)
5.0×
fewer values for time-varying features
(median, slots vs per frame)
17.39 dB
novel-view PSNR, random windows
(MoVieS 17.26 dB at 719M)
81.3%
StackCube success
from 1,000 demonstrations

4D Reconstruction Comparisons

Every animation plays one 32-frame clip. The leftmost column is the input camera at time t. The other columns are rendered from a held-out camera at the same time, and the rightmost column is that camera's real frame. Hold Z and hover over an animation to magnify it.

Baselines use released weights: MoVieS, 4DGT, C4G.All renders are 256×256 and unretouched.
Clip starting at frame 0 · scene 428
MultiCamVideo scene 428 comparison
Clip starting at frame 0 · scene 1933
MultiCamVideo scene 1933 comparison
Random 32-frame window · scene 3140
MultiCamVideo scene 3140 comparison
Random 32-frame window · scene 1845
MultiCamVideo scene 1845 comparison

MultiCamVideo test clips. These are the paper's qualitative cases, chosen near the median per-clip PSNR difference between Sparc4D and MoVieS, so they are typical rather than best cases.

paper-windmill
DyCheck paper-windmill comparison
space-out
DyCheck space-out comparison

DyCheck iPhone sequences. Sparc4D is trained only on synthetic MultiCamVideo scenes; no method is fine-tuned on DyCheck. The input is the hand-held camera and the target is a fixed camera. Timestamps where the target camera has no frame are skipped. These cases were selected to show visible strengths.

coffee_martini
Neu3D coffee_martini comparison
cook_spinach
Neu3D cook_spinach comparison

Neu3D multi-view sequences, zero-shot. One camera is the input and another camera is the target. These cases were selected to show visible strengths.

Quantitative results

MultiCamVideo (random windows)Trained on MCV#FloatsPSNR↑SSIM↑LPIPS↓
MoVieS–719M17.260.5120.366
4DGT–26.9M14.350.4030.550
C4G–0.92M13.640.3690.596
C4G✓0.92M16.510.4660.584
Sparc4D✓0.67M17.390.5190.370
Zero-shotTraining dataDyCheckNeu3D (9 targets)
mPSNR↑mSSIM↑mLPIPS↓PSNR↑SSIM↑LPIPS↓
MoVieS8 public datasets13.950.3450.48815.610.4450.304
4DGT~300 h real video11.840.2770.59917.330.5300.281
C4GSpring, Kubric, RE10K13.520.3510.63411.780.2850.588
C4G (MCV fine-tuned)+ MultiCamVideo13.340.3400.74715.750.4430.579
Sparc4DMultiCamVideo (synthetic)13.820.3230.54316.570.4650.291

Best in bold, second best underlined. #Floats counts the per-clip state; shared network weights are excluded. Full protocols are in the paper.

Features for Robot Manipulation

StackCube rollout from three cameras: the robot grasps the red cube and places it on the green cube

After domain adaptation, we freeze the Sparc4D encoder and train a policy on its scene features in ManiSkill3 StackCube, where the robot grasps the red cube and stacks it on the green cube.

With 1,000 demonstrations the policy succeeds in 81.3% of episodes; with 3,000 demonstrations it reaches 84.0%.

A successful rollout of the 1,000-demonstration policy, shown from three cameras.

BibTeX

@article{yang2026sparc4d,
  title   = {Sparc4D: A Compact Explicit 4D Representation for Dynamic Scenes},
  author  = {Yang, Di and Li, Zhihao and Xiong, Yanhai and Wang, Yufei},
  journal = {arXiv preprint arXiv:2610.01229},
  year    = {2026}
}