Faceident: Autocapturing multiple images

It feels like the recent work on the faceident competency for Lirec has spawned far too many avenues of research, and not much actual improvement. I thought I’d spend some time consolidating the new features and running them through test videos. Firstly I got rid of the adaptive blending, it’s too fragile and causes the program to get stuck on the wrong face too easily. I kept the multiple image idea, and added automatic storage of new images during training as I mentioned a few days ago.

With lots more images to match against saved from this video, the results from the lighting test video are improved, even though the images it’s matching against were captured in different lighting conditions:

All these images are also ready to be plugged into a more advanced method for classification, which might be the next thing to look at.

Treetris revisited

I’ve used the first groworld game seedling as a test for using fluxus as game distribution mechanism. You shouldn’t need to install anything for these games to work:

Treetris game for linux
Treetris game for windows

Hopefully a mac version will follow along soon. Let me know if you try these, it’s not a particularly great game, the idea is to just check it works properly at this point.

Windows fluxus & politics

A release of fluxus for windows: fluxus-0.16-win32-i386-v2.zip

Which should run after unzipping – no need to install anything else. Most of the functionality is there, but you need to use alt-number keys for switching workspaces, and there is no load dialogue yet, or audio/osc/midi or fluxa.

A windows version of fluxus has quite a lot of uses, the present one being a game distribution method for the groworld project. The other, which is also very important to me, is making fluxus easier to use in a workshop context. I’ve had a lot of problems getting fluxus into places run by local government (e.g. libraries) who are managed by IT companies scared witless by bootable linux CD’s (let alone actually installing a new operating system!). For me, reaching people in such situations is more important than forcing the free software party line on the OS.

The purist in me would like to stick to Linux, obviously – but this seems to be a route towards Linux in similar cases (such as Pd). In this sense, I can’t really see any political difference between Windows and OSX, so I might as well work towards full cross platform support.

More face identification work

Recent additions to the faceident project, both are attempts at dealing with lighting changes – which is the main area that needs addressing, as lighting changes are far more significant algorithmically than identifying features, and so cause lots of problems.

Firstly, I’ve added support for multiple images per identity/user – so we can at least record images of people in different lighting conditions to match against:

Secondly (with the same test video) I’ve tried adding some sort of adaptive blending, where the last found face image is averaged with the current image, this helps lock onto a face more robustly:

The next thing to look at is automatically adding to the store of images, in order to create a good representative set under all the conditions the system has seen. This is basically a crude way of creating a model of the users face – the more advanced way to do this is to build up a statistical model, the really clever way to do it would be to use all the faces found in order to find differentiating features between them.

A busy May

I’ve been a bit slack on the blogging front lately, but my excuse is that I’ve been doing a lot!

Firstly slub had a gig at the Slade Technology Faire where we were joined by Jamie Forth on supercollider percussion duties.

Then I went to Futuresonic09 to present groworld as part of their Environment 2.0 theme. They also had a exhibition in Manchester’s Cube gallery, where I took some pictures.

My favourite thing at futuresonic was Rob Bailey’s paper insects – there were 5000 of them swarming in the gallery, and every visitor was given one in their welcome pack as a free artwork. Following on from the environment theme, each one was cut out of last year’s futuresonic paper brochures.

Today is the TakeAway Festival at the DANA centre in South Kensington – and slub is performing to end the live events tonight. The gallery installations, which include Pitch control by Marcus Lyall and Evan Raskob continue for another week.

Fluxus monster

A friend of mine has kindly started contributing some models to liven up the collection you get with fluxus, and also so I can test things like model/skeleton rig and animation import from various 3D packages. This is a character (who I think originated in Spore somehow, with some cleaning up) with a base colour and normal map rendered by fluxus with a glsl bumpy blinn shader. I think he’s a pigdonkeyduck:

Fluxus invades windows

I’ve spent a bit of time over the last two days porting fluxus to windows – here’s some proof (I promise I didn’t cheat 🙂

There is still much to do – it’s not running the audio, osc or midi extensions, and there are some crashes with error reporting to fix, but the examples seem to work fine, and most of the unit tests pass.

The process has been made quite smooth by the fact that there is now a full free software gnu build system, thanks to MinGW which is a great gcc compiler suite (which builds native win32 binaries) and gnuwin32 which is porting lots of libraries.


Another groworld design meeting at foam this week, and we’ve decided to go back to our roots, or rather play the game mainly underground. This means we can employ tunnelling game mechanics to hunt out nutrients and other buried properties. The multiplayer aspect comes in as intertwining or connecting with other player’s roots, and swapping properties in the form of pest control, the ability to flower and other, stranger aesthetic abilities.

Due to Tale of Tale’s abilities with Blender, we are going to try using that for game prototyping in the next few weeks, which should be interesting to compare the difference with fluxus, and get some more experience with it.

In the meantime I’ve been working on a combination of circle packing and spring dynamics to figure out how to wrap roots around rocks: