Monthly Archives: June 2009

Worms in groworld

More work in progress on the groworld front:

I’ve added pickups your roots can absorb (or ‘nutrients’, currently tori for placeholder purposes) and little particle puffs which appear when you absorb them. I wanted to get more life into the soil, so I added some worms which excrete the nutrients. They are actually a special type of insect, there will be more arriving soon.

I’ve put the windows executables here which track the development in the foam git repo.

Hexagonal growth ornamentation

Based on a hexagonal game design for groworld by Tale of tales, I thought I’d make some ornamental roots on a hexagonal lattice:

You need a texture which contains all the combinations of attachments on 6 sides (= 64 tiles) I could probably have figured out how to do rotation in order to reduce this number a bit, but drawing is more fun than programming:

Yesterday’s pic is the template for drawing these roots. Then you process the texture a bit, and cut out the background with alpha:

And here it is in action with a bit of crossfading.

You click on the exposed tiles to grow into. In the future, nutrients and other goodies will be visible here, a bit like fog of war in RTS games. All the code is in the groworld git repo – including a window exe).

Eigendaves

In the computer vision business, you have to get quite used to seeing your face a lot, as it’s generally the easiest to find subject for your experiments :)

This is me in lots of different lighting environments:

The standard face modelling approach is principle component analysis which is used to understand the appearance of face images. If you consider images as points in a rather large space of possible images, PCA allows you to find a subspace of this which describes faces (or anything else). You train the algorithm on a number of example images, such as the ones above, and you end up with what are called eigenfaces, which describe a set of higher level parameters which vary over the images you have trained it on:

The eigenfaces (or eigendaves in this case) are arranged in order, with the most significant ones first. This isn’t a great training set, but the first one seems to describe the angle of the light from left to right, the second is the overall lightness while the third and fourth seem to be something to do with the rotation.