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
| benchmark | average speed |
|---|---|
| 1000 random spheres colliding | 5 milliseconds |
| 100 random menger sponges colliding | 100 milliseconds |
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
- monte carlo penertration depth approximation
- raycasting
the core algorithm
this devlog contains details on how the core 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.