POV-Ray support

From time to time I still get a moment to work on Structure Synth, and I’ve just started working on some nice new features.

POV-Ray support is coming along quite nicely. Here is a preview:


POV-Ray rendered output.

Also, the user interface will be improved with tabs, full-screen and screendump support:


The new user-interface.

Light synths

By coincidence I came across Jeff Minter’s company Llamasoft and surprisingly discovered that it was still going strong.

Jeff Minter, probably most famous for his somewhat… surreal C64 games (“Attack of the Mutant Camels”, “Revenge of the Mutant Camels” and even “Metagalactic Llamas Battle at the Edge of Time”), apparently has been hacking away on light synthesizers for the past twenty years.

His light synthesizers are complex visualization modules either music-controlled or driven by human interaction. And his latest incarnation, Neon, is actually used in the Xbox 360’s dashboard.

Neon Light Synthesizer

The Neon Light Synthesizer in Action.

Who would have guessed that Llamasoft code would end up in the Xbox 360 firmware?

Structure Synth Flickr Group

I’ve started a new Flickr Group for Structure Synth creations. It is open to everyone, so feel free to post.

Of course the number of Structure Synth users is probably quite limited since no binaries have been released yet. I still plan to release the first windows executables in next month (Sep ’07).

As a side note, Flickr is extremely nice and well-organized, even better than Picassa Web Albums. Looks like Yahoo actually win this one over Google.

Experimental Games

Experimental Gameplay started out as a student project at Carnegie Mellon University in 2005.

Given three basic rules (“Each game must be made in less than seven days / by only one person / be based around a central theme (e.g. gravity or swarms)”) some very interesting projects were created. Since then the website has opened up, and everyone is allowed to post their experimental games.

The experiences gained from the project are summed up in: How to Prototype a Game in Under 7 Days (Gamasutra Feature).

The Crowd

The Crowd. Actually not a game, but beautiful none-the-less.

On a Rainy Day

On a Rainy Day. Surreal.

Tower of Goo

Tower of Goo. Great gameplay

Structure Synth Progress

This post describes the ongoing development of Structure Synth

A lot of progress in the past week. First of all Structure Synth is no longer hosted at Google Code Hosting, but instead at SourceForge.

A few of the new features:

Spherical structure

Spherical structure

New primitives: I’ve added box, line and dot as new drawing primitives. I’ve also added a new coloring model (based on the HSV color space). Notice the spherical structure above – it was kind of surprising (given the rules) that a spherical structure was produced.

Menger sponge

Menger sponge

Rule retirement: It is now possible to specify a maximum recursive depth for individual rules. Optionally, it is possible to specify an alternate rule to use as an substitution when the ‘maxdepth’ is reached. The is demonstrated for the Menger sponge above, where the recursion is terminated at the given level.



Ambiguous rules: This one is taken straight from Context Free: it is possible to specify multiple definitions of a rule, each with individual weights. When an ambiguous rule is executed, one of it definitions is chosen at random, taken the weights into account.

(Structuring) Structure Synthesis

Well, I started worked on a spare time project, called Structure Synth: a small application for generative structure synthesis (in 3D). The app itself will be built around an embedded editor with a OpenGL visualization window next to it. Here is a mock-up shot:

Structure Synth GUI

Structure Synth GUI

The structures are designed in a simple language, EisenScript (named after the Great Russian director, Sergei Eistenstein, of course). It will be similar, but not identical, to the Context Free Design Grammer that Context Free uses.

An EisenScript defines a Rule Set, where each rule is defined as a number of Actions.

An Action would typically be to perform a Transformation and either call another rule, or one of the built-in drawing primitives. As in Context Free rules can be defined recursively in terms of themselves.

Rules are allowed to be ambiguous: more than one definition for a rule can exist, and when ambiguous rules are encountered the Builder will choose one at random. Again, as in Context Free, it will also be possible to specify a weighting for each of the rule definitions.

Here is an example of how an EisenScript rule set might look:

EisenScript example

Structure Synth will be built in C++/Qt4.3/OpenGL and will be Open Source (GPL). It should be cross-platform (Windows, Linux, and Mac).

I’ve started a subversion repository here (Google Code Hosting), but will probably move to SourceForge.