Sunday, March 27, 2016
Tessellating an Icosahedron for Dorkbot
So I'm speaking at Dorkbot on Wednesday about my Ommatid project. Since the code is still a work in progress, I've had a busy weekend learning about sphere rotations, which can get gnarly.
One of the things I wanted to talk about was a next-generation Ommatid with higher resolution. The Ommatid geometry is based on a tessellated icosahedron; it's a 4X tessellation meaning each triangular side of the icosahedron has been subdivided into 4 smaller equilateral triangles. This gives an 80-sided polyhedron, but you can take it even further by subdividing sides into 9, 16, or more subtriangles. I wanted to see what this looks like so I simulated a 16X tessellation with 16 x 20 = 320 sides, with the wave equation running on it as below.
The code is a little bit of a dog's breakfast at the moment and needs considerable refactoring, but you can find it at: https://github.com/headrotor/ommadev/tree/master/proc_sim. It's written in Python but in the Processing framework. If you really need code, here's a much better blog post by Andreas Kahler.
16X tessellated icosahedral sphere