bevy / burn feed-forward gaussian splatting. view the wasm example
- multi-view images -> 3d gaussians (YoNoSplat path)
- multi-model API/CLI/wasm/bevy selection surface (YoNoSplat + ZipSplat)
- CLI export to GLB (
KHR_gaussian_splatting) - bevy UI (native + wasm)
- model auto-bootstrap + cache (parts-first burnpack)
- native Burn/Rust ZipSplat forward path (DA3/DINO backbone + ZipSplat fusion/head)
- official ZipSplat checkpoint auto-cache/import to native burnpack
- ZipSplat upstream-output numerical parity fixture/test path
- bevy_synth integration
- bevy_zeroverse fine-tuning/training
# cli
cargo install burn_reconstruction
# bevy app
cargo install bevy_reconstructionburn_reconstruction \
--images view0.png view1.png view2.png \
--output /tmp/scene.glbburn_reconstruction \
--model zipsplat \
--weights-format bpk \
--quality compact \
--zipsplat-r 4 \
--images view0.png view1.png view2.png \
--output /tmp/scene_zipsplat.glbZipSplat runs through the native Burn/Rust pipeline. When --zipsplat-weights is omitted on
native targets, the CLI downloads the official ZipSplat checkpoint to
~/.burn_reconstruction/models/zipsplat, imports it to zipsplat.bpk, converts the requested
precision (zipsplat_f16.bpk by default), and reuses that cache on later runs. To import manually:
cargo run -p burn_reconstruction --bin import -- \
--model zipsplat \
--zipsplat-weights ~/.burn_reconstruction/models/zipsplat/zipsplat-da3g-252p.tar \
--zipsplat-output ~/.burn_reconstruction/models/zipsplat/zipsplat \
--precision both \
--parts trueUseful native ZipSplat flags:
--weights-format bpk|safetensorsselects the native checkpoint format.--zipsplat-weights <path>selects an explicit converted ZipSplat checkpoint instead of auto-cache.--zipsplat-r <N>controls the retained-token reduction factor; higher values emit fewer Gaussians.
ZipSplat numerical parity uses the official upstream PyTorch implementation only as offline reference-export tooling:
git clone --depth 1 https://github.com/cvg/ZipSplat /tmp/ZipSplat
python3 -m venv .venv-zipsplat-ref
.venv-zipsplat-ref/bin/python -m pip install torch safetensors einops numpy pillow
.venv-zipsplat-ref/bin/python tool/export_zipsplat_reference.py
cargo test -p burn_reconstruction --features correctness --test parity -- --nocapture zipsplatThe runtime ZipSplat path remains native Burn/Rust and does not call Python.
bevy_reconstruction -- \
--image assets/images/re10k/0.png \
--image assets/images/re10k/1.png \
--image assets/images/re10k/2.pngnote, input images are optional for bevy_reconstruction ZipSplat browser/wasm inference requires hosted
zipsplat_f16.bpk.parts.jsonand matching parts.
licensed under either of:
- Apache License, Version 2.0
- MIT license
at your option.
note: model weights have their own license
