I made a bit of progress on the new meshing system for #TangerineCSG this weekend.

Yesterday I worked out how to enumerate all of the cells, faces, and vertices for a rhombic dodecahedron lattice with only integer math!! Today I rewrote the C++ prototype to make use of that.

This screenshot is not representative of the final result (I'm still missing some parts that will greatly improve the quality and accuracy of the final mesh), but I dig the accidental particle system vibe going on here.

side thought: "rhombic dodecahedron lattice" is way too much of a mouth full. maybe I should just call them "rhoxels" instead (cuz they rhoxel ur soxels)

I wonder if my "generating repeating rhombic dodecahedra with entirely integer coordinates" work from this weekend is worth it's own blog post? Would anyone be interested in that?

I was planning on writing up something about the new meshing system after I had a chance to experiment with a few more improvements, but I think this technique is pretty interesting on it's own.

@aeva I'm curious about the details of how you've done it.

@misterdave I will probably write something up this weekend, but if you're interested in reading source code in the mean time, this is where my naive implementation is right now https://github.com/Aeva/tangerine/blob/072566c10ff59d42a7eeb42008880127f47cbb97/tangerine/sodapop.cpp#L1325

(the bulk of the integer lattice stuff is implemented in the two structures above that line)

tangerine/tangerine/sodapop.cpp at 072566c10ff59d42a7eeb42008880127f47cbb97 · Aeva/tangerine

🍊. Contribute to Aeva/tangerine development by creating an account on GitHub.

GitHub
@misterdave right now the memory usage explodes violently for moderately large models though, because I'm doing something silly. I haven't had time to fix that yet though.