Dynamic scene reconstruction converts videos into compact, renderable 4D models. The dominant approach, Native 4D Gaussian Splatting is fast and effective but often suffers from Gaussian overgrowth, high VRAM use, large checkpoints, slow rendering, and fragile pruning or densification choices. OMNI-4DGS studies these quality-efficiency tradeoffs by jointly evaluating representation, rendering, and training decisions. We ablate covariance type, RGB versus 4DSH, rendering strategy, pruning schedules, ESS, dropout, and motion regularization across quality and efficiency metrics. Our best tested quality-compact preset improves visual quality while keeping model size compact, reaching 34.42 PSNR/29k Gaussians on bouncingballs and 31.89 PSNR/81k on trex, improving the quality-compactness tradeoff for practical 4DGS deployment.
Fixed: No USplat/Prune/ESS/Dropout, Sort, 10k.
| Sort | Sort-Free | |
|---|---|---|
| Ellipsoid |
|
|
| Spherical |
|
|
Fixed: No USplat/Prune/ESS/Dropout, Sort, 20k.
| SH(3) | RGB | |
|---|---|---|
| Ellipsoid |
|
|
| Spherical |
|
|
5 x Moving Cameras |
5 x Still Cameras |
We presented OMNI-4DGS, a unified framework for fast, compact dynamic reconstruction built on Native 4D Gaussian Splatting, combining architectural choices from recent work into a single ablation study. Efficient 4DGS requires increasing expressiveness per Gaussian while controlling primitive growth: anisotropic covariance and SH(3) improve reconstruction quality; interleaved pruning and densification reduce Gaussian count, serialized model size, and VRAM, and a final one-shot prune further improves FPS at deployment. Dropout and the adapted sort-free renderer were not consistently beneficial across scenes. The aniso · SH(3) · sort · ESS · interleaved prune · dropout configuration achieved the best tested quality-compactness tradeoff on both trex and bouncingballs.
| Path | Purpose |
|---|---|
train.py |
Train or resume a 4D Gaussian checkpoint. |
render.py |
Render videos or image frames from a checkpoint. |
interactive_viewer.py |
Open a real-time CUDA viewer for a checkpoint. |
batch_train.py |
Generate, run, and evaluate ablation sweeps. |
compress.py |
Simple checkpoint compression and round-trip validation. |
compression_postprocess.py |
Universal post-training compression, pruning, evaluation, and diagnostics. |
mobile_export.py |
Export a Mobile-GS/NVQ compressed payload. |
mobile_benchmark.py |
Benchmark a Mobile-GS payload for size, FPS, and optional quality. |
html_export.py |
Build a local HTML overview of rendered ablation outputs. |
ablation_script.sh |
Batch-render ablation checkpoints into consistently named videos. |
scripts/ |
Dataset conversion, FPS profiling, rerun helpers, and utility scripts. |
configs/dnerf/ |
Standard D-NeRF scene configs. |
configs/dnerf_ablation/ |
Clean baseline configs intended for ablation sweeps. |
Information on how to run each script is in the Guide File.
For experiments intended for comparison:
- Start with configs in
configs/dnerf_ablation/. - Use explicit
--matrix-presetand--axeschoices. - Set
--seedor--seed-offset. - Keep
--test_iterationsand--save_iterationsconsistent across rows. - Record the exact command and generated configs.
- Prefer
chkpnt_best.pthfor final render/benchmark comparisons. - Use the same render mode, resolution, split, and temporal-mask settings when comparing FPS or visual quality.
| Feature | 4DGS-1K / 1000FPS | Instant4D | MobileGS | DropoutGS | USplat4D | Code reference |
|---|---|---|---|---|---|---|
| Gaussians 4D |
✓ | ✓ | ✓ | ✓ | ✓ | Current-only mode. GaussianModel.__init__, training guard, render guard |
| Gaussians 3D |
Not supported as a train/render mode. --gaussian_dim choices=[4], GaussianModel guard |
|||||
| Gaussians Quaternion |
✓ | ✓ | ✓ | ✓ | Existing / reused. get_rotation, build_rotation_4d |
|
| Gaussians Rotation Matrix |
Derived only, not optimized as parameters. build_rotation, build_rotation_4d |
|||||
| Gaussians Isotropic |
✓ | Existing / adapted. DEFAULT_ISOTROPY, GaussianModel isotropic flag, get_scaling, _apply_isotropic_parameterization, Instant4D override |
||||
| Gaussians Anisotropic |
✓ | ✓ | ✓ | ✓ | Existing / default. DEFAULT_ISOTROPY, get_scaling, build_scaling_rotation, build_scaling_rotation_4d |
|
| Gaussians RGB |
✓ | Existing / preset-driven. RGB preset, RGB2SH, create_from_pcd, Instant4D override |
||||
| Gaussians SH(1) |
✓ | Existing / MobileGS-style. SH1 preset, _first_order_features, MobileGS preset, capture_mobile_payload |
||||
| Gaussians SH(3) |
✓ | ✓ | ✓ | Existing / native 4DGS appearance. sh_degree = 3, SH3 preset, get_max_sh_channels, eval_shfs_4d |
||
| Init Random |
✓ | ✓ | ✓ | ✓ | ✓ | Existing. readNerfSyntheticInfo, create_from_pcd |
| Init MegaSAM |
Not found in repo. | |||||
| Compress MLP / Distillation |
✓ | Implemented for MobileGS sort-free runs. MobileOpacityPhiNN, _load_mobilegs_teacher, distillation setup, distillation loss, MobileGS preset |
||||
| Compress K-means / NVQ |
✓ | Implemented. _run_kmeans, nvq_encode_tensor, mobile_export.py |
||||
| Compress Spatial GPCC |
✓ | Implemented. voxelize, compress_gpcc, capture_mobile_payload |
||||
| Train Uncertainty |
✓ | Re-implemented for USplat4D. compute_uncertainty_single_frame, compute_uncertainty_all_frames, rebuild_usplat_state |
||||
| Train Batch in Time |
✓ | Existing / global training support. DataLoader batch_size, batch loop |
||||
| Train Voxelization |
✓ | ✓ | Implemented in MobileGS compression and USplat graphing. voxelize, build_graph voxel candidates |
|||
| Prune Contribution |
✓ | ✓ | Implemented. render gaussian_scores, compute_spatio_temporal_variation_score, generic_contribution_scores, prune_generic_contribution |
|||
| Prune Gradient Loss |
✓ | ✓ | ✓ | ✓ | ✓ | Existing base density-control path. add_densification_stats, densify_and_prune, training densification call |
| Prune Spatio-Temporal |
✓ | Re-implemented. compute_spatio_temporal_variation_score, prune_with_spatio_temporal_score, scheduled ST pruning |
||||
| Prune Opacity |
✓ | ✓ | ✓ | ✓ | Existing for sorted rendering; disabled for sort-free MobileGS. thresh_opa_prune, densify_and_prune, sort-free opacity-prune guard |
|
| Prune One-shot |
✓ | Implemented as pruning option. final_prune_from_iter, densify_then_prune_once registry, final ST prune |
||||
| Prune Scheduled |
✓ | Implemented as pruning option / paper preset. interleaved_prune_densify registry, scheduled pruning loop |
||||
| Prune Densify |
✓ | ✓ | ✓ | ✓ | ✓ | Existing base Gaussian densification. densify_and_split, densify_and_clone, training densification call |
| Prune Edge-guided Split |
✓ | Re-implemented DropoutGS ESS-style split. build_ess_registry, compute_edge_guided_split_mask, split_points_by_mask, ESS schedule |
||||
| Prune Dropout |
✓ | Re-implemented DropoutGS RDR. random_dropout_prob, lambda_rdr, build_dropout_registry, render dropout mask, RDR loss |
||||
| Render Visibility Mask |
✓ | ✓ | Re-implemented 4DGS-1K-style export/inference mask. build_temporal_visibility_filter, attach_temporal_visibility_filter, _select_temporal_active_mask, mobile_export |
|||
| Render Sort-based |
✓ | ✓ | ✓ | ✓ | Existing sorted alpha blending. sorted render path, duplicateWithKeys, SortPairs |
|
| Render Sort-free |
✓ | Heavily modified MobileGS-style OIT path. sort_free_render, MobileGS opacity/phi render, duplicateWithTileKeys, OIT kernels |
-
4DGS Native / 4D Gaussian Splatting: base 4DGS training/rendering pipeline and dynamic-scene representation.
- 3D Gaussian Splatting: original 3DGS utilities and base Gaussian-splatting components.
- diff-gaussian-rasterization: CUDA Gaussian rasterizer.
- simple-knn: KNN CUDA extension used by Gaussian-splatting code.
- Stratified-Transformer / pointops2: point cloud CUDA utility ops.
-
Mobile-GS: mobile-oriented Gaussian compression / pruning / rendering optimizations.
- mpeg-pcc-tmc13: MPEG GPCC point-cloud compression backend.
-
DropoutGS: dropout-based Gaussian pruning/compression ideas.
-
Instant4D: lightweight 4DGS pruning / isotropic Gaussian / fast dynamic-scene optimization ideas.
-
4DGS-1K / 1000FPS 4DGS: 1000+ FPS 4DGS project reference and performance-oriented design ideas.
-
USplat4D: unified/static-dynamic 4D Gaussian splatting reference implementation.
-
stb: vendored image-writing utility, e.g.
stb_image_write.h.










