/specs-physics

nphysics integration for the Specs entity component system

Primary LanguageRustMIT LicenseMIT

specs-physics

Build Status Crates.io MIT/Apache Docs.rs

specs-physics aims to be an easily usable and extendable nphysics physics engine integration for applications and games that utilise the Specs ECS.

The dream is to simply create Entitys with a set of configurable Components and have most of your physics covered, be it collision/proximity detection, velocity and acceleration or gravity.

Examples

Full examples can be found under src/examples. If anything is missing or unclear, feel free to open an issue or give me a poke!

Contributing

I'd appreciate any kind of contribution to this project, be it feature requests, bugs/issues, pull requests, documentation, tests or examples!

Please just try to format any code changes according to the rustfmt.toml rules. They're not exactly set in stone and I'm open for suggestions, but let's try to keep things tidy!

Current Roadmap

Full TODO sheet can be found in [this nphysics issue][todo]

  • RigidBody Components
  • Collider Components
  • Proximity and Contact EventChannels
  • External force property
  • log based logging
  • Handling Body Activation & Sleeping
  • Multibody-based Component Joints
  • Force generator inversion of control
  • Time scale and simulation pausing

Investigating:

  • Proximity & Curve-based external force utility
  • Constraint-based Joints
  • Kinematics

License

Distributed under the MIT License. See LICENSE for more information.

Acknowledgments

This project is heavily inspired by nphysics-ecs-dumb; they did most of the heavy lifting, I'm just building up on what they have started!

Special thanks to: