
Instead of relying on explicit definitions (e.g. of collision geometry), the framework makes extensive use of implicit surface descriptions. This data tells much more about an object in space and allows for a substantial set of features including very efficient collision detection and response, normal and volume retrieval, level sets (for boundary particles, lego brick generation or filling objects), as well as filtering and meshing of volumes, for instance. While typical organic models can be well represented by a uniformly divided signed distance field, this structure’s memory footprint can become impractical in situations where preservation of small details on very large objects is necessary. In this case an adaptive signed distance field as introduced by S. Frisken et al. (Adaptively Sampled Distance Fields: A General Representation of Shape for Computer Graphics) can provide the required resolution at lower memory costs.

Instead of uniformly dividing the space, it is recursively subdividing the volume in an octree fashion with varying depth, basically stopping if the distance of the cell’s center to the geometry’s surface can be adequately interpolated from the sampled distances at the corners of the cell. If the error threshold is not met, the cell will again be subdivided into 8 cubes until the error is below the user defined threshold or a maximum depth has been reached.
In “Simple and Efficient Traversal Methods for Quadtrees and Octrees” Ronald Perry describes for the 2D case how to locate the cell for a particle using its x and y location codes.
Here is my extension for the 3D case:
