Cargo Features

[dependencies]
bevy_gaussian_splatting = { version = "4.6.0", default-features = false, features = ["debug_gpu", "io_bincode2", "io_flexbuffers", "io_ply", "material_noise", "morph_particles", "noise", "sh0", "sh2", "sh3", "sh4", "precompute_covariance_3d", "packed", "buffer_storage", "buffer_texture", "query_raycast", "query_select", "query_sparse", "sort_bitonic", "sort_radix", "sort_rayon", "sort_std", "tooling", "debug_tooling", "perftest", "headless", "viewer", "web", "file_asset", "web_asset", "testing", "webgl2", "webgpu", "bevy_transform_gizmo"] }

TODO: add a feature flag for each gaussian format
TODO: resolve one-hot feature flags through runtime configuration

default = buffer_storage, file_asset, io_flexbuffers, io_ply, planar, query_select, sh3, sort_bitonic, sort_radix, sort_rayon, sort_std, tooling, viewer, web_asset

These default features are set whenever bevy_gaussian_splatting is added without default-features = false somewhere in the dependency tree.

debug_gpu

Required by the test_radix binary

io_bincode2 = bincode2, flate2

Affects gcloud::bincode2

io_flexbuffers default headless? web? = flexbuffers

Affects gcloud::flexbuffers

io_ply default headless? web? = ply-rs

Affects io::ply

Required by the ply_to_gcloud binary

material_noise = noise

Enables noise

Affects material::noise

morph_particles

Affects morph::particle

noise material_noise?

Affects bevy_gaussian_splatting::noise

sh0 web?

Affects spherical_harmonics::SH_DEGREE

sh1 sh2

Affects spherical_harmonics::SH_DEGREE

sh3 default

Affects spherical_harmonics::SH_DEGREE

sh4

Affects spherical_harmonics::SH_DEGREE

precompute_covariance_3d
packed

Affects packed::get_bind_group

planar buffer_storage default headless? web?
buffer_texture

Affects sort::SortedEntries.texture, sort::GpuSortedEntry.texture

query_raycast

Affects query::raycast

query_select default query_sparse?

Affects query::select

query_sparse = kd-tree, query_select

Affects query::sparse

sort_bitonic default

Affects sort::bitonic

sort_radix default

Affects sort::radix

Required by the test_radix binary

sort_rayon default headless? = rayon

Affects interface::CommonCloud.position_par_iter, iter::PositionParIter, sort::rayon

sort_std default headless? web?

Affects sort::std_sort

tooling default debug_tooling? = byte-unit

Required by the ply_to_gcloud binary

debug_tooling = tooling

Required by compare_aabb_obb and surfel_plane binaries

perftest
headless = buffer_storage, io_flexbuffers, io_ply, planar, sort_rayon, sort_std

Enables png of bevy

bevy:

PNG image format support

viewer default web? = bevy-inspector-egui, bevy_panorbit_camera

Enables bevy_gizmos, bevy_ui, multi_threaded and png of bevy

Required by the binary

web = buffer_storage, io_flexbuffers, io_ply, planar, sh0, sort_std, viewer, web_asset, webgpu
file_asset default = bevy_file_asset
web_asset default web? = base64, bevy_web_asset
testing

Required by test_gaussian and test_radix binaries

webgl2

note: webgl2/buffer_texture are deprecated

Enables webgl2 of bevy

webgpu web?

Enables webgpu of bevy

bevy:

Enable support for WebGPU in Wasm. When enabled, this feature will override the webgl2 feature and you won't be able to run Wasm builds with WebGL2, only with WebGPU.

Features from optional dependencies

In crates that don't use the dep: syntax, optional dependencies automatically become Cargo features. These features may have been created by mistake, and this functionality may be removed in the future.

base64 web_asset
bevy-inspector-egui viewer

Enables bevy-inspector-egui ^0.28

bevy_panorbit_camera viewer

Enables bevy_panorbit_camera ^0.21

bevy_transform_gizmo implicit feature

Enables bevy_transform_gizmo

bevy_transform_gizmo:

A 3D transform gizmo for Bevy

bevy_file_asset file_asset
bevy_web_asset web_asset
bincode2 io_bincode2?
byte-unit tooling
flate2 io_bincode2?
flexbuffers io_flexbuffers

Enables flexbuffers ^24.12.23

kd-tree query_sparse?
ply-rs io_ply
rayon sort_rayon