The *first* fractal animation done with Spa. All the operators are tile based. It was fun to get working, but the next obvious step will be to get the SIMD engine working. This is for two reasons:

  1. SIMD scales better with complexity
  2. Need the ability to do different things like flow control, if/else statements, and ‘other’. What I learned from using VOPs in Houdini, is that control structures don’t translate well into connected graphs. Or maybe it does, but even with VOPs, you still need a working shading language to have the scene graph translated into. For doing complex things like orbit traps, and other arbitrary escape time functions, the shading language is the way to go.

The idea for the first example came to me after I realized that the mandel/julia split of the escape time iteration is really just a 2D slice of a 4D equation. By arbitrarily rotating a 2D slice through 4D space of the mandel plane, or the julia plane, you could get a continuous rotation between a mandelbrot set, and a julia set. The results are a lot less spectacular than the explanation, but it did lead me to some interesting research into arbitrary 4D rotations, the SO(4) group. This link shows the formulation for arbitrary rotations in R4, very similar to quaternion rotations in R3.I just set a few keyframes and got the resulting animation. Like I said the idea was much greater than the final result.

This example was more fun. I keyed a camera zoom to start, but then got a chance to test the per-pixel expressions, some periodic coordinate warping, and some noise.

The coloring algorithms are very simple, but this was more of an exercise in getting some basic animation and expression features working. It was a huge personal success, and it lead me directly into implementing the SIMD virtual machine.