It covers how to implement 2d / 3d Marching Cubes and Dual Contouring.
There's also additional code to nicely render the results, but that is not polished for re-use.
Simply import one of
Each function takes an evaluation function,
f, that determines whether a point is inside or outside
by returning a positive or negative number. The Dual Contouring functions take an additional argument,
f_normal, that returns the gradient as a
V3 object. You can optionally pass the range of values
to evaluate f over. The cell size is always 1.
The 2d meshing functions return a unordered list of
common.Edge objects, the 3d ones return a