...written in Rust using wgpu and egui.
This viewer app is built for 3D Gaussian Splatting. It supports the PLY file format from the 3D Gaussian Splatting for Real-Time Radiance Field Rendering research paper.
The app uses WebGPU to render the model, so it supports most of the GPU backends.
Note
To use the web version, you need a browser that supports WebGPU. Please refer to the WebGPU Implementation Status for more information.
You can run the app on the web by visiting lioqing.com/wgpu-3dgs-viewer-app/.
You may also run the app natively by building it from source.
Demo.mp4
Make sure you are using the latest version of stable rust by running rustup update
.
cargo run --release
On Linux you need to first run:
sudo apt-get install libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev libxkbcommon-dev libssl-dev
On Fedora Rawhide you need to run:
dnf install clang clang-devel clang-tools-extra libxkbcommon-devel pkg-config openssl-devel libxcb-devel gtk3-devel atk fontconfig-devel
We compile to WASM and use Trunk to build for web target.
- Install the required target with
rustup target add wasm32-unknown-unknown
. - Install Trunk with
cargo install --locked trunk
. - Run
trunk serve
to build and serve onhttp://127.0.0.1:8080
. Trunk will rebuild automatically if you edit the project. - Open
http://127.0.0.1:8080/index.html#dev
in a browser. See the warning below.
Note
assets/sw.js
script will try to cache our app, and loads the cached version when it cannot connect to server allowing your app to work offline (like PWA).
appending #dev
to index.html
will skip this caching, allowing us to load the latest builds during development.