From my Notebook

Still It Burns (3D Animation of a Planet)

A short animation project. Here’s the result:


I’ve been working on the concept for a while! Here are older versions:

My first try — kind of cartoony, but beautiful flame clouds (I lost the file to this one, bummer! Still trying to remember how I made it):

Another one, more spaceshippy, but not enough flame action:

And closer to the final here, but poor camera focal length (35mm vs. 105mm) left the planet looking like an egg:


I’m a big fan of procedural textures. These are graphical textures that are generated by mathematics, rather than painted or created from photos in a tool like Photoshop.

In the creative process, procedural textures can work like a Rorschach test — that is, you can play around with different parameters until you find a look that resembles something else. Then you refine and review until you’re satisfied.

What does the movie “TRON” have to do with all this?

The flame cloud shape is created by what is called “improved Perlin noise,” a mathematical function named after Ken Perlin, who worked on films like the original TRON.

Said Ken:

Working on TRON was a blast, but on some level I was frustrated by the fact that everything looked machine-like. In fact, that became the “look” associated with MAGI in the wake of TRON. So I got to work trying to help us break out of the “machine-look ghetto.”

Mr. Perlin then went on to create a mathematical function that gave a more “natural” look and would eventually be used in many Hollywood blockbusters.

Above: My selection of “Improved Perlin Noise” for this texture, showing additional options for controlling the look.

Unlike textures created in Photoshop, procedural textures like Perlin noise are based on mathematical equations that can be endlessly varied. This is a huge advantage in animation, because you can just say “animate that” and a new variation will be automatically created for each frame. That’s much, much better than painting each frame by hand.

So that’s how I animated the flame clouds: I told cloud texture to move automatically on its Y axis each frame (Z axis in other software), meaning that each new frame shows us another “slice” of an imaginary 3D block of flaming clouds. Whoa!!.

Here’s a look at the texture itself:

There’s a checkered background, which indicates transparency — the dark, no-flames parts of the planet you see in the animation are not part of the flame structure. I did this because it gave me extra control over how the non-flame parts of the planet looked.

You can also see that I gave the mathematical function a color gradient from yellow to orange to a purplish color, and then to complete transparency. This, combined with the cloud shapes, is what adds the realism to the pattern.

Thank you, Mister Perlin!

In my own work, I use Perlin noise all the time. Here are a few examples:

The smoke in this animation:

The clouds in this animation:

The undulating colors of the ground, in this animation:

And the undulating surface of the object in this animation:

As you can see, mathematics really does become exciting at some point. :-) Seriously though, I hate to think of how tedious life would be if we had to create all those textures by hand in Photoshop.