FL4NFeed-forward Latent Model for 4D Novel View Synthesis1KAIST AI 2Google DeepMind
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.
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.
The pretrained static encoder and renderer stay frozen. A trainable dynamic encoder beside them only has to explain what changes over time.
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.
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.
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.
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.
| Method | Pose | NVIDIA | N3DV | Kubric4D | CamxTime | Charge | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PSNR โ | SSIM โ | LPIPS โ | PSNR โ | SSIM โ | LPIPS โ | PSNR โ | SSIM โ | LPIPS โ | PSNR โ | SSIM โ | LPIPS โ | PSNR โ | SSIM โ | LPIPS โ | ||
| 4DGT | โ | 16.127 | 0.3884 | 0.5972 | 17.813 | 0.6609 | 0.5131 | 14.148 | 0.5027 | 0.6096 | 17.125 | 0.6557 | 0.4893 | 18.017 | 0.7786 | 0.5653 |
| MoVieS | โ | 11.818 | 0.2546 | 0.6760 | 20.136 | 0.7045 | 0.4605 | 12.411 | 0.3550 | 0.6070 | 17.069 | 0.6223 | 0.4488 | 18.709 | 0.7473 | 0.5298 |
| NeoVerseโ | โ | 15.050 | 0.4135 | 0.4626 | 12.953 | 0.4806 | 0.5697 | 8.954 | 0.2573 | 0.6721 | 10.432 | 0.3110 | 0.5905 | 15.224 | 0.5211 | 0.5919 |
| C4Gโ | โ | 16.572 | 0.4182 | 0.6203 | 18.444 | 0.7050 | 0.5246 | 14.931 | 0.5656 | 0.6442 | 20.527 | 0.7056 | 0.4369 | 18.535 | 0.7797 | 0.5279 |
| FL4N (ours) | โ | 17.945 | 0.4113 | 0.5229 | 18.581 | 0.6898 | 0.4776 | 20.916 | 0.6433 | 0.3767 | 21.268 | 0.7237 | 0.2743 | 20.924 | 0.8217 | 0.4952 |
| FL4N (ours) | โ | 20.435 | 0.4835 | 0.3867 | 22.896 | 0.7716 | 0.3560 | 22.209 | 0.6737 | 0.3350 | 25.730 | 0.8270 | 0.1681 | 22.959 | 0.8324 | 0.4616 |
| Method | Pose | NVIDIA | N3DV | Kubric4D | CamxTime | Charge | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PSNR โ | SSIM โ | LPIPS โ | PSNR โ | SSIM โ | LPIPS โ | PSNR โ | SSIM โ | LPIPS โ | PSNR โ | SSIM โ | LPIPS โ | PSNR โ | SSIM โ | LPIPS โ | ||
| 4DGT | โ | 15.937 | 0.3867 | 0.6052 | 16.097 | 0.6380 | 0.5483 | 15.680 | 0.5424 | 0.5786 | 17.024 | 0.6573 | 0.4939 | 17.939 | 0.7756 | 0.5617 |
| MoVieS | โ | 15.785 | 0.4614 | 0.5328 | 19.710 | 0.7400 | 0.4414 | 16.988 | 0.6368 | 0.4174 | 17.340 | 0.6470 | 0.4224 | 20.113 | 0.7771 | 0.5084 |
| NeoVerseโ | โ | 14.449 | 0.3819 | 0.4890 | 12.447 | 0.4729 | 0.5681 | 8.885 | 0.2256 | 0.6793 | 10.276 | 0.3091 | 0.5911 | 15.220 | 0.5380 | 0.5940 |
| C4Gโ | โ | 16.403 | 0.4096 | 0.6304 | 17.039 | 0.6829 | 0.5374 | 15.270 | 0.5572 | 0.6348 | 20.175 | 0.7009 | 0.4453 | 18.410 | 0.7640 | 0.5324 |
| FL4N (ours) | โ | 21.552 | 0.5348 | 0.3739 | 24.550 | 0.8152 | 0.3353 | 23.547 | 0.7535 | 0.2558 | 24.546 | 0.8040 | 0.2016 | 24.222 | 0.8500 | 0.4413 |
| FL4N (ours) | โ | 21.838 | 0.5578 | 0.3562 | 25.109 | 0.8284 | 0.3234 | 24.272 | 0.7850 | 0.2304 | 27.648 | 0.8732 | 0.1325 | 24.421 | 0.8496 | 0.4382 |
| Method | Pose | DyCheck | ADT | TUM | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| PSNR โ | SSIM โ | LPIPS โ | PSNR โ | SSIM โ | LPIPS โ | PSNR โ | SSIM โ | LPIPS โ | ||
| 4DGT | โ | 13.743 | 0.4079 | 0.6233 | 16.710 | 0.4999 | 0.5651 | 14.380 | 0.4468 | 0.5612 |
| MoVieS | โ | 11.755 | 0.3420 | 0.6428 | 15.432 | 0.4698 | 0.5828 | 15.683 | 0.5079 | 0.4426 |
| NeoVerseโ | โ | 16.756 | 0.4663 | 0.4566 | 16.179 | 0.4384 | 0.5296 | 16.120 | 0.5266 | 0.3981 |
| C4Gโ | โ | 15.755 | 0.4735 | 0.6111 | 18.900 | 0.5813 | 0.5833 | 17.508 | 0.5518 | 0.4951 |
| FL4N (ours) | โ | 19.019 | 0.4977 | 0.4284 | 19.693 | 0.5948 | 0.4490 | 17.847 | 0.5586 | 0.3449 |
| FL4N (ours) | โ | 20.527 | 0.5470 | 0.3757 | 24.115 | 0.6875 | 0.3083 | 21.162 | 0.6978 | 0.2601 |
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.
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.
BibTeX: TBA