thimni
a library for SDF collision
the core algorithm provides efficient SDF collision, whose memory usage does not scale with complexity of SDFs, by exploiting isotropy of hyperspheres
performance
benchmarked on Ryzen 7 2700
| benchmark | average speed |
|---|---|
| 1000 random spheres | 5.5 milliseconds |
| 100 random menger sponges in a sphere with radius 10 | 1.43 milliiseconds |
features
- can use any vector type implementing the Vector trait, 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)
- arbitrarily combined SDFs
- binary collision between arbitrary SDFs of the same dimension
- penetration depth approximation
- raycasting
the core algorithm
this devlog contains details on how the algorithm works
DEMO
this devlog contains a link to a demo i made for this algorithm, consisting of a destructable fractal and a capsule representing the player.