bevy_carnage
Runtime gore for Bevy characters, deterministic to the bit. Add a plugin, dress a loaded character with one component, and send a GoreHit per injury: a wound peels through skin, fat and muscle to bone, bleeds along the pose of an animated body, pools on the floor and dries, and a body that takes enough comes apart into watertight-capped chunks. A violence setting the player controls is honoured, and every canvas is owned by the CPU, so a whole fight can be hashed and replayed.
Add it
cargo add bevy_carnage
The README has an 18-line quick start that is compiled on every cargo test; the full quick start covers the flesh material, skinned characters, cost, the violence tiers and baking a fracture by hand. Putting it on a real glTF character has a checklist.
What it gives you
- The preset:
GorePlugin,GoreandGoreSceneto dress surfaces,GoreHitfor impacts, blows, burns and slashes, andGorePolicyfor the player’s violence setting. - The fracture: bake once with
FractureSubject, then query a hierarchy and a bond graph per blow, with two meshes per fragment and convex colliders (the API). - Seven kernels as modules:
bloodstain,wetmap,viscera,cross_section,flaymap,lacerationandfracture_modes(the family). - A recorded gallery of every demo.
Use it in the Cauldron
The Cauldron takes this crate behind its bevy_carnage feature for destructible props (issue #108). destructible_set marks a piece destructible and fractures it once with the crate’s own fracture_mesh over its mesh and a box proxy of its bounds, caching the chunks in the project (destructible/<piece>.bake.ron, keyed by the mesh’s bytes and the cut settings, so it never bakes twice). destructible_hit previews a hit on the cached chunks and reports which break loose and whether each is a closed solid, by the crate’s own audit. The violence dials are the crate’s own GorePolicy, saved as family/bevy_carnage.ron through family_set; the editor itself ships no gore.
Links
- Repository · docs.rs · crates.io · CHANGELOG