# thimni
[](https://crates.io/crates/thimni)
[](https://docs.rs/thimni)
a library for SDF collision
the core (and most likely novel) algorithm provides efficient SDF collision, whose memory usage does not scale with complexity of SDFs, by exploiting isotropy of hyperspheres
## performance
benchmarked on i7-7700HQ
|[1000 random spheres colliding](benches/spheres.rs)| 5 milliseconds|
|[100 random menger sponges colliding](benches/sponges.rs)| 100 milliseconds|
## features
- can use any vector type implementing the [Vector trait](https://docs.rs/thimni/latest/thimni/vector/trait.Vector.html), with implementations for glam::Vec2 and glam::Vec3 provided
- SDFs treated as black boxes (i.e. anything that takes a position, returns a number, and can be bounded by an AABB, can implement [the SDF trait](https://docs.rs/thimni/latest/thimni/sdf/trait.SDF.html))
- arbitrarily combined SDFs
- binary collision between arbitrary SDFs of the same dimension
- monte carlo penertration depth approximation
- raycasting
## the core algorithm
[this devlog](https://0x177.codeberg.page/sdf_collision.html) contains details on how the core algorithm works
## DEMO
[this devlog](https://0x177.codeberg.page/coll_demo_pub.html) contains a link to a demo i made for this algorithm, consisting of a destructable fractal and a capsule representing the player.