The marching tetrahedra idea is showing promise for generating the example. Instead of interpolating between the two points of an edge, I simply take the midpoint which results in a blocky input:

Remaining to do list:
- Extend to 4D
- Fix orientations, some triangles have the wrong orientation.