22 releases (breaking)

0.20.1 Apr 4, 2019
0.19.0 Jan 12, 2019
0.18.0 May 13, 2018
0.15.0 Mar 13, 2018
0.0.5 Mar 5, 2015

#466 in Algorithms

Download history 754/week @ 2023-12-17 319/week @ 2023-12-24 22/week @ 2023-12-31 58/week @ 2024-01-07 40/week @ 2024-01-14 38/week @ 2024-01-21 34/week @ 2024-01-28 29/week @ 2024-02-04 57/week @ 2024-02-11 80/week @ 2024-02-18 199/week @ 2024-02-25 151/week @ 2024-03-03 114/week @ 2024-03-10 99/week @ 2024-03-17 104/week @ 2024-03-24 313/week @ 2024-03-31

662 downloads per month
Used in 11 crates (10 directly)




Build Status Documentation Version License Downloads Join the chat

This library is an extension of cgmath that provides collision detection primitives, bounding volumes and collision detection algorithms.

The library provides:

  • a generic ray: Ray
  • a plane type: Plane
  • a view frustum: Frustum
  • axis-aligned bounding boxes: Aabb2, Aabb3
  • oriented bounding boxes: Obb2, Obb3
  • additional bounding volumes: Sphere, Cylinder
  • collision primitives: Sphere, Circle, Rectangle, Cuboid, Particle, Convex Polygon, Convex Polyhedra
  • a dynamic bounding volume tree (DBVT)
  • broad phase collision detection: Brute Force, Sweep and Prune
  • discrete narrow phase collision detection: GJK (including EPA for manifold computation)
  • continuous narrow phase collision detection: GJK
  • convex shape distance computation: GJK

Not all of the functionality has been implemented yet, and the existing code is not fully covered by the testsuite. If you encounter any mistakes or omissions please let us know by posting an issue, or even better: send us a pull request with a fix.


Licensed under either of

at your option.


Use CONTRIBUTING.md for futher information.

Pull requests are most welcome, especially in the realm of performance enhancements and fixing any mistakes. Unit tests and benchmarks are also required, so help on that front would be most appreciated.

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.


~30K SLoC