To-do items, wanted features, bugs: - Examples of branching. This will probably need recursion via functions (or an explicit stack some other way). - I need to figure out winding order. It is consistent through seemingly everything, except for reflection and close_boundary_simple. (When there are two parallel boundaries joined with something like join_boundary_simple, traversing these boundaries in their actual order to generate triangles - like in close_boundary_simple - will produce opposite winding order on each. Imagine a transparent clock: seen from the front, it moves clockwise, but seen from the back, it moves counter-clockwise.) - Make it easier to build up meshes a bit at a time? - Factor out recursive/iterative stuff to be a bit more concise - Embed this in Blender? - File that bug that I've seen in trimesh/three.js (see trimesh_fail.ipynb) - Parametrize gen_twisted_boundary over boundaries and do my nested spiral - Why do I get the weird zig-zag pattern on the triangles, despite larger numbers of them? Is it something in how I twist the frames? - How can I compute the *torsion* on a quad? I think it comes down to this: torsion applied across the quad I'm triangulating leading to neither diagonal being a particularly good choice. Subdividing the boundary seems to help, but other triangulation methods (e.g. turning a quad to 4 triangles by adding the centroid) could be good too. - Facets/edges are just oriented the wrong way... - I need an actual example of branching/forking. If I simply split a boundary into sub-boundaries per the rules I already have in my notes, then this still lets me split any way I want to without having to worry about joining N boundaries instead of 2, doesn't it? Other notes: - Picking at random the diagonal on the quad to triangulate with does seem to turn 'error' just to noise, and in its own way this is preferable. # Abstractions - Encode the notions of "generator which transforms an existing list of boundaries", "generator which transforms another generator" - This has a lot of functions parametrized over a lot of functions. Need to work with this somehow. (e.g. should it subdivide this boundary? should it merge opening/closing boundaries?) - Work directly with lists of boundaries. The only thing I ever do with them is apply transforms to all of them, or join adjacent ones with corresponding elements.