FL4NFeed-forward Latent Model for 4D Novel View Synthesis

Eunbeen Hong1, Hyeonseo Yu1, Honggyu An1, Jooho Son1, Hyunah Ko1, Soowon Son1, Chaehyun Kim1, Jahyeok Koo1, Jisoo Kim1, Junhwa Hur2โ€ , Seungryong Kim1โ€ 

1KAIST AI    2Google DeepMind

โ€  Corresponding authors.

Overview

The first feed-forward latent 4D NVS model.

4D novel view synthesis renders a dynamic scene from viewpoints and instants that were never observed. Feed-forward methods do it with explicit 3D Gaussians plus motion, and pay with ghosting, floaters and holes.

A frozen static latent backbone supplies the 3D prior; a lightweight dynamic encoder adds a temporal residual on top. Training needs only images and binary motion masks.

Abstract

4D Novel View Synthesis (NVS) from monocular videos aims to render dynamic scenes across viewpoints and timestamps, requiring jointly inferring 3D structure and temporal dynamics. Existing feed-forward methods rely on explicit 3D Gaussian representations, which are prone to temporal inconsistency and severe rendering artifacts. We present FL4N, the first feed-forward latent 4D NVS model. We bypass explicit 3D primitives by weaving a geometrically grounded scene prior into a unified latent representation across space and time. To overcome dynamic training data scarcity, we learn a temporal residual on top of a frozen, pretrained static latent backbone. A lightweight dynamic encoder learns to isolate true scene motion from camera parallax. Trained purely on image synthesis with binary mask guidance, FL4N achieves state-of-the-art rendering quality for 4D NVS in real time. Our proposed latent representation successfully learns a strong 4D prior, generalizes across novel views and timestamps, and cleanly decouples view and time in the latent space.

Method

A temporal residual on a frozen static prior.

The pretrained static encoder and renderer stay frozen. A trainable dynamic encoder beside them only has to explain what changes over time.

Overview. Context frames feed a frozen static encoder (static latent) and a lightweight dynamic encoder with learnable time tokens (residual latent). A time module adapts the residual to the target time, adds it to the static latent, and the frozen renderer decodes the target view. Click a stage to isolate it.
1

Dynamic encoder with static anchoring

Eight transformer layers see each context frame with a learnable time token and cross-attend into the frozen static features, so they can separate camera motion from object motion.

2

Target-time residual adaptation

The residual is computed once. For a target time, interpolated time tokens drive an AdaLN time module with a zero-initialised gate, so training starts from the static prior.

3

Frozen renderer, image-only training

Static plus residual latent is decoded by the untouched renderer. Losses: L2 and perceptual on the image, extra terms on moving regions, and a mask loss. No depth, flow or 3D motion labels.

Quantitative results

State of the art performance.

FL4N substantially outperforms all Gaussian-based methods on all benchmark datasets, even without test-time pose alignment (โ€ ), showing the model successfully learns 4D priors and decouples view and time in the latent space.

โ€  2,000-step test-time pose alignment with target frames. Pose: whether context camera poses are given.
MethodPoseNVIDIAN3DVKubric4DCamxTimeCharge
PSNR โ†‘SSIM โ†‘LPIPS โ†“PSNR โ†‘SSIM โ†‘LPIPS โ†“PSNR โ†‘SSIM โ†‘LPIPS โ†“PSNR โ†‘SSIM โ†‘LPIPS โ†“PSNR โ†‘SSIM โ†‘LPIPS โ†“
4DGTโœ“16.1270.38840.597217.8130.66090.513114.1480.50270.609617.1250.65570.489318.0170.77860.5653
MoVieSโœ“11.8180.25460.676020.1360.70450.460512.4110.35500.607017.0690.62230.448818.7090.74730.5298
NeoVerseโ€ โœ—15.0500.41350.462612.9530.48060.56978.9540.25730.672110.4320.31100.590515.2240.52110.5919
C4Gโ€ โœ—16.5720.41820.620318.4440.70500.524614.9310.56560.644220.5270.70560.436918.5350.77970.5279
FL4N (ours)โœ—17.9450.41130.522918.5810.68980.477620.9160.64330.376721.2680.72370.274320.9240.82170.4952
FL4N (ours)โœ“20.4350.48350.386722.8960.77160.356022.2090.67370.335025.7300.82700.168122.9590.83240.4616
MethodPoseNVIDIAN3DVKubric4DCamxTimeCharge
PSNR โ†‘SSIM โ†‘LPIPS โ†“PSNR โ†‘SSIM โ†‘LPIPS โ†“PSNR โ†‘SSIM โ†‘LPIPS โ†“PSNR โ†‘SSIM โ†‘LPIPS โ†“PSNR โ†‘SSIM โ†‘LPIPS โ†“
4DGTโœ“15.9370.38670.605216.0970.63800.548315.6800.54240.578617.0240.65730.493917.9390.77560.5617
MoVieSโœ“15.7850.46140.532819.7100.74000.441416.9880.63680.417417.3400.64700.422420.1130.77710.5084
NeoVerseโ€ โœ—14.4490.38190.489012.4470.47290.56818.8850.22560.679310.2760.30910.591115.2200.53800.5940
C4Gโ€ โœ—16.4030.40960.630417.0390.68290.537415.2700.55720.634820.1750.70090.445318.4100.76400.5324
FL4N (ours)โœ—21.5520.53480.373924.5500.81520.335323.5470.75350.255824.5460.80400.201624.2220.85000.4413
FL4N (ours)โœ“21.8380.55780.356225.1090.82840.323424.2720.78500.230427.6480.87320.132524.4210.84960.4382
MethodPoseDyCheckADTTUM
PSNR โ†‘SSIM โ†‘LPIPS โ†“PSNR โ†‘SSIM โ†‘LPIPS โ†“PSNR โ†‘SSIM โ†‘LPIPS โ†“
4DGTโœ“13.7430.40790.623316.7100.49990.565114.3800.44680.5612
MoVieSโœ“11.7550.34200.642815.4320.46980.582815.6830.50790.4426
NeoVerseโ€ โœ—16.7560.46630.456616.1790.43840.529616.1200.52660.3981
C4Gโ€ โœ—15.7550.47350.611118.9000.58130.583317.5080.55180.4951
FL4N (ours)โœ—19.0190.49770.428419.6930.59480.449017.8470.55860.3449
FL4N (ours)โœ“20.5270.54700.375724.1150.68750.308321.1620.69780.2601

Runtime per rendered view

224ร—224 on one RTX 5880 Ada. The residual is computed once per video; each new target time only runs the time module and renderer.

C4Gโ€ 
23.885 s ยท 0.04 FPS
NeoVerseโ€ 
14.127 s ยท 0.07 FPS
4DGT
0.040 s ยท 25.0 FPS
MoVieS
0.037 s ยท 27.0 FPS
C4G
0.036 s ยท 27.8 FPS
NeoVerse
0.027 s ยท 37.0 FPS
FL4N (ours)
0.025 s ยท 40.0 FPS
Analysis

What does the residual latent actually learn?

The static model knows where to render but not when: it collapses the video into one time-invariant prediction. The residual adds the time axis, only where motion happens.

Residual complements static rendering. The static latent alone suppresses moving content (left) or copies it from the nearest context frame (right). Adding the residual places the subject at the target time while keeping the background.
Residual latent encodes temporal dynamics. The static latent (PCA) shows camera-ray-like structure; the residual latent is quiet on static regions and changes over time around the moving object.
Citation

BibTeX

BibTeX: TBA