Mathematical Functions


Crab nebula
Ring nebula
Shaped turbulence

Turbulence functions (Ken Perlin noise functions, actually) have emerged as a great way to create realistic clouds. Essentially, the function assigns a random value to each point on a 3D grid. The grid is passed through a Gaussian blur to remove high frequency variations and soften the result. This creates a rectangular block of cloudiness. But you can do more.

These images are early experiments to model nebula. The first is vaguely like the Crab Nebula and the second is similar to several ring nebulas. In both cases, a turbulence functions perturb an underlying shape. In the first image, several highly-perturbed spheres are overlaid with different colors. In the second image, turbulence perturbs a torus. In both cases, a customized volume renderer was used that models the way emissive gasses glow (such as those in a nebula).

This work was funded by the American Museum of Natural History in New York City. Development was in C++.

Basic teapot
Edge glowing teapot
Turbulent teapot
Turbulent Teapot

Once you've got shaped turbulence, you can apply it to anything. The classic test shape in computer graphics is Jim Blinn's teapot. So, why not?

The first image is a volumetric rendering of the teapot. The second image renders it as if it were made of emissive gases, such as those in a nebula. On the perimeter of the teapot, our line of sight passes through the front, sides, and back of the teapot. The glowing gasses along that entire line contribute to what we see, brightening that area. This is exactly what we see in nebula. Finally, the last image throws in heavy turbulence to turn the entire teapot into churning steam.

This work was funded by the American Museum of Natural History in New York City. Development was in C++.

Swirled skull Volume transforms

Most volumetric rendering strives to create realistic views of the underlying data. But realism isn't strictly necessary. Image processing techniques applied to volume data can warp and twist the data too. This image applies a 3D "twirl" filter to warp a CT skull data set. The image was created to demonstrate functionality of my Ph.D. research.

This work was part of my Ph.D. and was not funded by anybody but me. Development was in C++.

Isolines Spherical sine waves

There isn't really any science here. It's just pretty. A sine wave is used to perturb the radius of a sphere depicted by longitude and latitude lines. Repeat for several spheres of different sizes using sine waves with different phases and you get a pretty shape. This particular shape was used as an interactive demonstration of line drawing in my course on VRML, the Virtual Reality Modeling Language.

This work was part of my courses on 3D graphics and wasn't funded by anybody. Development was in C and VRML.

Nadeau software consulting
Nadeau software consulting