[package] name = "avian3d" version = "0.1.2" edition = "2021" license = "MIT OR Apache-2.0" authors = ["Joona Aalto "] description = "An ECS-driven physics engine for the Bevy game engine" documentation = "https://docs.rs/avian3d" repository = "https://github.com/Jondolf/avian" readme = "README.md" keywords = ["gamedev", "physics", "simulation", "bevy"] categories = ["game-development", "science", "simulation"] [features] default = [ "3d", "f32", "parry-f32", "collider-from-mesh", "bevy_scene", "debug-plugin", "parallel", ] 3d = [] f32 = [] f64 = [] debug-plugin = ["bevy/bevy_gizmos", "bevy/bevy_render"] simd = ["parry3d?/simd-stable", "parry3d-f64?/simd-stable"] parallel = ["parry3d?/parallel", "parry3d-f64?/parallel"] enhanced-determinism = [ "dep:libm", "parry3d?/enhanced-determinism", "parry3d-f64?/enhanced-determinism", "bevy_math/libm", ] default-collider = ["dep:nalgebra"] # We unfortunately can't reuse the f32 and f64 features for this, # because Parry uses separate crates for f32 and f64. parry-f32 = ["f32", "dep:parry3d", "default-collider"] parry-f64 = ["f64", "dep:parry3d-f64", "default-collider"] collider-from-mesh = ["bevy/bevy_render", "3d"] bevy_scene = ["bevy/bevy_scene"] serialize = [ "dep:serde", "bevy/serialize", "parry3d?/serde-serialize", "parry3d-f64?/serde-serialize", ] [lib] name = "avian3d" path = "src/lib.rs" required-features = ["3d"] bench = false [dependencies] avian_derive = { path = "../avian_derive", version = "0.1" } bevy = { version = "0.14", default-features = false } bevy_math = { version = "0.14" } libm = { version = "0.2", optional = true } parry3d = { version = "0.15", optional = true } parry3d-f64 = { version = "0.15", optional = true } nalgebra = { version = "0.32.6", features = [ "convert-glam027", ], optional = true } serde = { version = "1", features = ["derive"], optional = true } derive_more = "0.99" indexmap = "2.0.0" fxhash = "0.2.1" itertools = "0.13" bitflags = "2.5.0" [dev-dependencies] bevy = { version = "0.14", default-features = false, features = ["bevy_gltf"] } examples_common_3d = { path = "../examples_common_3d" } benches_common_3d = { path = "../benches_common_3d" } bevy_math = { version = "0.14", features = ["approx"] } approx = "0.5" criterion = { version = "0.5", features = ["html_reports"] } insta = "1.0" [[example]] name = "dynamic_character_3d" required-features = ["3d", "default-collider", "bevy_scene"] [[example]] name = "kinematic_character_3d" required-features = ["3d", "default-collider", "bevy_scene"] [[example]] name = "cast_ray_predicate" required-features = ["3d", "default-collider"] [[example]] name = "chain_3d" required-features = ["3d", "default-collider"] [[example]] name = "cubes" required-features = ["3d", "default-collider"] [[example]] name = "custom_broad_phase" required-features = ["3d", "default-collider"] [[example]] name = "custom_constraint" required-features = ["3d", "default-collider"] [[example]] name = "distance_joint_3d" required-features = ["3d", "default-collider", "debug-plugin"] [[example]] name = "fixed_joint_3d" required-features = ["3d", "default-collider"] [[example]] name = "prismatic_joint_3d" required-features = ["3d", "default-collider"] [[example]] name = "revolute_joint_3d" required-features = ["3d", "default-collider"] [[example]] name = "trimesh_shapes_3d" required-features = ["3d", "default-collider", "bevy_scene"] [[example]] name = "collider_constructors" required-features = ["3d", "default-collider", "bevy_scene"] [[bench]] name = "cubes" required-features = ["3d", "default-collider"] harness = false