I really need to do a podcast to talk about all the things that have been happening in Darwin at Home development! I've been working steadily on it for quite a while, and although I haven't been blogging or podcasting enough, there have been some big advances.

The planet is generated on the basis of a seeded Mersenne Twister random number generator, so it can be re-generated anywhere and anytime. I have to be able to do that on both client and server.

One of the things I kind of added on a whim while playing with physics is the separation of two different kinds of surface on the sphere. Although not necessary, this is a really fascinating addition. The spherical universe is divided into triangles, exactly like a Buckminster Fuller geodesic dome, and each triangle knows whether it is land or water.

Land physics is different from water physics since its level of antigravity (whenever you're under the surface) is much higher. As a result, things really don't penetrate the surface much.

What you see above is a sneak preview, and you can see the red arrow sequence suspended above. This is the "goal" of the movement evolution, which will be what you adjust to tell your evolving body what movement skills to aquire.

Water physics, on the other hand, has a much lower subsurface antigravity value, so things kind of sink a bit, staying more or less afloat like a duck.

This first little binary discrepancy gives the spherical Darwin at Home universe a little bit of diversity and flavor, despite only getting a little bit more complex. It did require that I figure out how to determine quickly whether a joint is penetrating the surface of land or water. Effectively a lookup has to be done to find out where it's landing, and the result is cached so that the next lookup is cheaper. Quite a challenge, really, but fun to use some of that matrix math.