NextFest Grass Wall


client: Saturn
agency: Goodby Silverstein and Partners
launched: 2006
project type: installation

The Barbarian Group was asked to help Goodby, Silverstein & Partners with a multimedia installation for Wired Magazine’s NextFest. The purpose of the installation was to promote the new Saturn hybrid cars. Goodby teamed up with Obscura Digital to create the installation space. Obscura is no stranger to convention installations and their expertise was invaluable throughout the entire process.
Our part in this involved creating an interactive projection wall shown seamlessly by four DLP projectors on a 45’x12’ rear projection screen. The concept was simple enough: 45 feet of grass swaying in a virtual breeze. Visitors to the installation can make the grass sway just by walking in front of it. Additionally, visitors can input text from either of the two kiosks positioned in front of the screen. This text appears in the projection attached to its own grass blade and sways along with the rest of the scene.

Start with a single blade of grass

Every blade of grass in this project is a simple system of variable decay. Basically, we define a blade’s total number of segments and its max width and max height. Each successive segment is a fraction of the max width and max height. So as you progress from the bottom segment to the top segment, the width approaches zero and the height approaches half the max height. This creates the triangular shape for the blade.
The bending of the blades follows a similar variable decay framework. If the bottom-most segment (seg0) is told to bend .1 radians, the remaining segments also bend .1 radians. To keep the blades from forming perfect circular arcs, we apply only a fraction of the initial rotation to each successive segment. So, seg1 would bend .08, seg2 would bend .064, seg3 would bend .0512, and so on. This way, by the time you get to the final segment, the amount of bend is minimal.

Creating a breeze with perlin noise

To simulate a virtual breeze, we turned to perlin noise. Perlin noise is a random number generator with a brain. Used correctly, you can get a smoothly changing set of numbers free of any large spikes or sudden changes. Processing has a built-in perlin noise number generator and we use this to generate numbers used to bend the grass in believable ways. Simply supply the x position of each blade of grass, add a simple counter, and you get back a smoothly changing number set used to create the look of wind.

The setup

A Processing application picks up camera input and analyzes it for dark spots. The application then compares this information with information from the frame before to check for movement. The virtual grass bends based on the amount of movement. The render is then sent to the video processor (at 40 to 45 fps) where it is split into four images that are sent to the DLP projectors. The projectors beam their overlapping images onto the rear projection screen where visitors stand and create silhouettes for the camera to pick up.