Yesterday I had a long struggle with the code, because it became obvious that building with tetrahedrons alone didn't produce the kind of nice diversity in feasible body structures that I had hoped for. The combination of tetrahedrons and octahedrons is much better because things tend to curl up less as they grow. I even set it up so that the seed structure is no longer two face-connected tetras, but instead two octas, because starting with octas was always good when building with the buildevo version.

The reason it was such a battle was related to the idea of growth mutations being symmetrical, which is a really nice feature when you want the bodies to walk. Now that the growth happens on the basis of faces (where in buildevo you have to select a triangle). In order to build symmetrically you always have to be able to find the joint opposite the one you're talking about. That means every time you add a new octahedron to replace a face, the three new joints you add have to be "polarized" correctly (I'm doing this by giving them identities that begin with + and -). Very difficult to get it right, so I was up until 1:00 a.m. last night debugging.

Also, as I mentioned earlier, working with faces has the added advantage that it becomes easy to make the rendering use them to give the body a "skin". Right now the skin is only bluish-white triangles, but I hope to get into texture mapping them eventually.

I'm still trying to work out what the global look and feel of the program is going to be. In the previous screenshots you saw the initial fly-in, followed by the four-screen view. I still love that fly-in metaphor so that'll stay, but today I thought it might be fun to play with some other layouts. Here's a screenshot of the skinned bodies in a 16-screen layout:

The performance of so many screens at once is reasonable, but I'm not sure if it is smart to stick with that many. Somehow, as well, I kind of need to re-introduce something resembling the population list in the buildevo version. Sixteen might just do it, but it's better to have a slightly bigger population, like the buildevo default of 30. I just don't know yet how to present all that in this new interface.