The Rusterizer

The Rusterizer is an art-directable and semi-procedural tool for generating rust surfaces, created for my masters thesis (click to download pdf). The tool was inspired by surfacing challenges encountered on the Clemson Digital Production Arts short titled “QA-ARM-A.” The short depicts a quality assurance robot who is having a bad day at work. The Rusterizer was used to create a sequel to this short titled “Life After QA-ARM-A,” in which the same robot is laid off from his factory and dumped in an alley to rust.

An artist can use the Rusterizer to quickly change the location and size of rust spots, or to animate their growth. The tool uses a GUI in Maya to allow the artist to input a “Rust Distribution Map” designating areas on a character where they would like rust to start growing. An optional “Rust Probability Map” can also be used to designate how likely rust is to grow at a particular point on the surface.

Tools Used: Maya, RenderMan, RenderMan Shading Language, Nuke, Mari, Python, Qt Designer


Rust Distribution Map:


Rust Probability Map:


A button in the GUI initiates a cellular automata simulation which is used to calculate the rust growth pattern. The result of the simulation is used by the procedural “Rusterizer Shader” in Maya to control the amount of rust. The growth can be animated using an “age” slider in the shader. Several color and noise presets are available for the rust pattern, although the attributes can also be adjusted manually. The procedural patterns can be exported using the Map Export mode of the shader. 

Rusterizer GUI:

Rusterizer Shader Attribute Editor:


Rust Color Presets with References:

Preset A:


Preset B:


Preset C:


Preset D: