默认构建需 stable Rust 1.97.1 或更高版本;nightly_generic_alias 特性仅在 nightly 下可用;需自备 ply/gcloud/glb 点云文件,仓库不附带模型。
bevy_gaussian_splatting
mosureApache-2.0活跃维护为 Bevy 引擎提供高斯泼溅渲染管线插件,让 Rust 游戏和 3D 应用能直接加载并实时渲染 3D Gaussian Splatting 场景。
bevy gaussian splatting render pipeline plugin 🕊️🌌
cargo install bevy_gaussian_splatting
bevy_gaussian_splatting --input-cloud file://gaussian.plyREADME 未说明显存或 GPU 型号要求;提供 wasm 在线演示,说明可在浏览器 WebGL2/WebGPU 环境运行。
Bevy 引擎的高斯泼溅渲染管线插件,让 Rust 游戏直接加载并渲染 2D/3D/4D 高斯点云
为 Bevy 引擎提供高斯泼溅渲染管线插件,让 Rust 游戏和 3D 应用能直接加载并实时渲染 3D Gaussian Splatting 场景。
核心能力
- 以 Bevy 插件形式接入高斯点云渲染管线
- 支持 ply、gcloud、glTF KHR_gaussian_splatting 场景加载与保存
- 兼容 2dgs、3dgs、4dgs 及 SOG/SSOG 流式格式
- 支持 f16/f32 点云、深度着色与法线渲染
- 可编译到 wasm,支持 WebGL2 与 WebGPU
容易踩的坑
- v6.0.0最新正式版2025-10-06 · 2025-10-06 15:25 UTC
What's Changed
- feat: bindgroup rebind by @mosure in https://github.com/mosure/bevy_gaussian_splatting/pull/196
- fix: radix bindgroup cleanup and sh dir by @mosure in https://github.com/mosure/bevy_gaussian_splatting/pull/197
- feat: gaussian interpolation by @mosure in https://github.com/mosure/bevy_gaussian_splatting/pull/198
- chore: bevy 0.17 by @cs50victor in https://github.com/mosure/bevy_gaussian_splatting/pull/199
Full Changelog: https://github.com/mosure/bevy_gaussian_splatting/compare/v5.1.0...v6.0.0
- v5.1.02025-09-16 · 2025-09-16 00:32 UTC
查看更新说明
What's Changed
- refactor: pipeline automation by @mosure in https://github.com/mosure/bevy_gaussian_splatting/pull/136
- feat: optical flow rasterization mode by @mosure in https://github.com/mosure/bevy_gaussian_splatting/pull/177
- feat: gaussian scene asset loader by @mosure in https://github.com/mosure/bevy_gaussian_splatting/pull/179
- Minor: Simplified - Error generation. by @martinfrances107 in https://github.com/mosure/bevy_gaussian_splatting/pull/183
- Minor: workflows - Bump actions/checkout to version 4. by @martinfrances107 in https://github.com/mosure/bevy_gaussian_splatting/pull/184
- Minor: workflows - Bump todo-to-issue to version 5. by @martinfrances107 in https://github.com/mosure/bevy_gaussian_splatting/pull/185
- Minor: workflows - Bump actions/cache to version 4. by @martinfrances107 in https://github.com/mosure/bevy_gaussian_splatting/pull/186
- feat: bevy 0.16 by @mosure in https://github.com/mosure/bevy_gaussian_splatting/pull/187
- fix: optional motion vectors on cameras by @mosure in https://github.com/mosure/bevy_gaussian_splatting/pull/190
- Fix global transform by @MiniMinerX in https://github.com/mosure/bevy_gaussian_splatting/pull/191
- Radix fix by @teodosin in https://github.com/mosure/bevy_gaussian_splatting/pull/194
- fix: lint and d3d12 radix by @mosure in https://github.com/mosure/bevy_gaussian_splatting/pull/195
New Contributors
- @martinfrances107 made their first contribution in https://github.com/mosure/bevy_gaussian_splatting/pull/183
- @MiniMinerX made their first contribution in https://github.com/mosure/bevy_gaussian_splatting/pull/191
- @teodosin made their first contribution in https://github.com/mosure/bevy_gaussian_splatting/pull/194
Full Changelog: https://github.com/mosure/bevy_gaussian_splatting/compare/v3.0.0...v5.1.0
- v3.0.02024-12-18 · 2024-12-18 05:29 UTC
查看更新说明
What's Changed
- feat: bevy 0.15 by @mosure in https://github.com/mosure/bevy_gaussian_splatting/pull/130
Full Changelog: https://github.com/mosure/bevy_gaussian_splatting/compare/v2.7.0...v3.0.0
- v2.7.02024-10-20 · 2024-10-20 22:02 UTC
查看更新说明
What's Changed
- feat: support multiple gaussian cameras by @mosure in https://github.com/mosure/bevy_gaussian_splatting/pull/116
Full Changelog: https://github.com/mosure/bevy_gaussian_splatting/compare/v2.6.0...v2.7.0
- v2.6.02024-10-16 · 2024-10-16 01:43 UTC
查看更新说明
What's Changed
- feat: global opacity by @mosure in https://github.com/mosure/bevy_gaussian_splatting/pull/115
- feat: gaussian surfels by @mosure in https://github.com/mosure/bevy_gaussian_splatting/pull/114
Full Changelog: https://github.com/mosure/bevy_gaussian_splatting/compare/v2.4.0...v2.6.0
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
bevy_gaussian_splatting 🌌
bevy gaussian splatting render pipeline plugin. view the live demo gallery or open trellis.glb directly.

install
cargo install bevy_gaussian_splatting
bevy_gaussian_splatting --input-cloud [file://gaussian.ply | https://mitchell.mosure.me/go_trimmed.ply]
bevy_gaussian_splatting --input-scene [file://scene.glb | https://mitchell.mosure.me/trellis.glb]
note: the
nightly_generic_aliasfeature enables nightly-only bound checking on generic type aliases. it is optional; the default build compiles on stable rust 1.97.1 or later
contributors who want the generic alias checks can run them with nightly: cargo +nightly test --features nightly_generic_alias
viewer hotkeys
esc: close viewerp: save screenshot toscreenshots/g: export the loaded gaussian scene toexports/gaussian_scene_<frame>.glb(cloud transforms + active camera)i: invert the selection (selected gaussians are hidden, all others are shown, and the previously hidden gaussians become the selection)o: save the selected gaussians tolive_output.gcloudin the working directorya/d: pan left / rightq/e: pan down / upw/s: dolly toward / away from the focus- arrow keys: orbit (left/right = yaw, up/down = pitch)
- hold
shiftfor finer keyboard steps,ctrlfor coarser steps (applies only while a movement key is held)
capabilities
- ply to gcloud converter
- gcloud and ply asset loaders
- bevy gaussian cloud render pipeline
- gaussian cloud particle effects
- wasm support /w live demo
- depth colorization
- normal rendering
- f16 and f32 gcloud
- wgl2 and webgpu
- multi-format scenes
- 2dgs
- 3dgs
- 4dgs
- glTF
KHR_gaussian_splattingscene load/save - SOG (Spatially Organized Gaussians) loading
- SSOG (Streamed SOG) loading
- 4dgs motion blur
- deformable radial kernel
- implicit mlp node (isotropic rotation, color)
- temporal gaussian hierarchy
- gcloud, spherical harmonic coefficients Huffman encoding
- spz format io
- spherical harmonic coefficients clustering
- 4D gaussian cloud wavelet compression
- accelerated spatial queries
- temporal depth sorting
- skeletons
- volume masks
- level of detail
- lighting and shadows
- bevy_openxr support
- bevy 3D camera to gaussian cloud pipeline
usage
use bevy::prelude::*;
use bevy_gaussian_splatting::{
CloudSettings,
GaussianSplattingPlugin,
PlanarGaussian3dHandle,
};
fn main() {
App::new()
.add_plugins(DefaultPlugins)
.add_plugins(GaussianSplattingPlugin)
.add_systems(Startup, setup_gaussian_cloud)
.run();
}
fn setup_gaussian_cloud(
mut commands: Commands,
asset_server: Res<AssetServer>,
) {
// CloudSettings and Visibility are automatically added
commands.spawn((
PlanarGaussian3dHandle(asset_server.load("scenes/icecream.gcloud")),
CloudSettings::default(),
));
commands.spawn(Camera3d::default());
}
tools
- ply to gcloud converter
- gaussian cloud training pipeline
- aabb vs. obb gaussian comparison via
cargo run --bin compare_aabb_obb
creating gaussian clouds
the following tools are compatible with bevy_gaussian_splatting:
-
2d gaussian clouds:
-
3d gaussian clouds:
-
4d gaussian clouds:
compatible bevy versions
bevy_gaussian_splatting | bevy |
|---|---|
9.0 | 0.20 |
8.0 | 0.19 |
7.0 | 0.18 |
6.0 | 0.17 |
5.0 | 0.16 |
3.0 | 0.15 |
2.3 | 0.14 |
2.1 | 0.13 |
0.4 - 2.0 | 0.12 |
0.1 - 0.3 | 0.11 |
license
licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
contribution
unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.