The concept

Creating beautiful things - especially art - is something that I really enjoy doing with the little projects I like to work on. A little while ago, I got interested in vector-based art that you have probably seen on a number of different web-sties, advertisements, boxes, etc.  One of them by David Lanham, however, caught my eye:

Now this was simply a still painted image, but in looking at the image, I wondered why it could not have been animated.  There are some wonderful spline curves going throughout this thing and animating spline curves that form a polygon mesh shouldn't be hard at all.  The bigger question is how to get that wonderful whip-like motion of fire.  I first looked into the idea of using some kind of fluid-flow simulation, or perhaps that of some whip-like substances.  Perhaps even some kind of simulation of the way plants are moved about by currents underwater.  There are lots of possibilities for sure.

The other interesting part is the coloring.  The different faces seem to have different colors.  I thought about using animated textures or perhaps some kind of spraypaint/decals that move across the surface of the polygon mesh.  Again, this isn't all that difficult technically, but making it look appealing to the eye would be the interesting part.

The trickiest part by far will be the self-intersection/collision problems.  As you can see, the artist actually has little tubes and parts of the flame shooting out, merging through, and combing up again in different parts.  This would be a very difficult thing to handle in real-time and yet continue to make it look appealing.  For that part, I go to thinkin about some of the blob-like simulations I've run across on some the Assembly demos.  


David Lanham's fire

At any rate, this looks like a pretty darn fun project that I'd like to work on.  I have the OpenGL harness already written, and was writing some test camera controls so that I would be able to zoom around in it.  The next step will be to actually generate the meshes based on the spline curves.

Resources:

  • Javascript simulations of different kinds of splines [here]