dmech
January 11, 2025 ยท View on GitHub
dmech
dmech is discontinued. If you need a mature physics engine to use with D, we recommend Newton Dynamics and corresponding BindBC binding.
dmech stands for "D mechanics": it is a real-time 3D physics engine written in D language, capable of simulating rigid body dynamics. It is more suitable for computer games than scientific simulations: the goal is to convince a player, rather than giving accurate results. dmech is GC-free and fully platform-independent, it can be used with any API or graphics engine.
Screenshots
Features
- Impulse-based rigid body dynamics with iterative SI solver
- High-performance collision detection (MPR algorithm)
- Basic geometry shapes (sphere, box, cylinder, cone, ellipsoid)
- Support for any convex shape defined by support mapping
- Multiple geometries per body
- Arbitrary static trimeshes (collision detection is optimized via BVH)
- Body constraints: distance, angular, slider, ball-socket, prismatic, hinge
- Persistent contact cache
- Ray cast support
- Ownership-based memory management
- Partial C API
Dependencies
dmech heavily relies on dlib - a collection of utility libraries for D, including linear math and computational geometry functionality.
Documentation
See tutorials.
Usage examples
You can find some simple examples in demos directory.
License
Copyright (c) 2013-2025 Timur Gafarov. Distributed under the Boost Software License, Version 1.0. (See accompanying file COPYING or at http://www.boost.org/LICENSE_1_0.txt)