Eye Candy
Issue: Volume: 28 Issue: 8 (August 2005)

Eye Candy

From Pee-wee Herman to Ed Wood, Tim Burton has had a career-long affection for blissfully unassimilated oddballs who cling to their own warped yet magical view of life. This affinity was rekindled this summer in Burton’s imagining of the chocolate wonderland created by Willy Wonka, the star of Roald Dahl’s beloved children’s fable Charlie and the Chocolate Factory. “I’m attracted to characters who do their own thing,” says Burton. And for the fictional Wonka, that “one thing” is treating the world to the most delightful confectionery creations ever conceived: marshmallows that taste of violets, rich caramels that change color every 10 seconds, chewing gum that never loses its taste, and lovely bluebirds’ eggs that, once in your mouth, gradually get smaller and smaller until there’s nothing left but a little sugary bird at the tip of your tongue.

Burton’s eye-popping film adaptation, Charlie and the Chocolate Factory, tells the story of poor yet kindhearted Charlie Bucket and his Grandpa Joe, who win one of five golden tickets to tour Willy Wonka’s candy factory. The other winners are four selfish brats whose misbehavior inside the factory leads to unsavory comeuppances, thanks to Willy’s wiles. The first is Augustus Gloop, a gluttonous kid who tries to drink from a chocolate river, only to fall in and be sucked up a pipe leading to the fudge room. Violet Beauregarde, a brazen, fast-talking girl who constantly chews gum, snatches an experimental piece of three-course-meal gum and transforms into a giant blueberry. Spoiled Veruca Salt, who bullies her father into giving her everything she wants, is tossed down a garbage chute by squirrels trained to dispose of the bad nuts. And finally, there is the television-obsessed Mike Teevee, who is miniaturized inside a television set designed to transmit candy, then sent to the taffy-pulling room to be stretched.


A much more literal adaptation of the Roald Dahl children’s classic, Tim Burton’s Charlie and the Chocolate Factory stands apart from the 1971 version by using state-of-the-art CGI.

As each child gets his or her just deserts, Wonka’s factory handymen, little fellows called oompa loompas, sing chants lamenting the misdeeds.

Unlike the 1971 version, which reveled in abstract, psychedelic imagery, Charlie and the Chocolate Factory is a literal adaptation of Dahl’s book, and is as wacky and hyperstylized as Burton’s usual surrealistic aesthetic. State-of-the-art CGI enabled the filmmakers to create the nut-sorting room for the first time, wherein 200 squirrels sift through walnuts and interact with the live actors. In addition, the filmmakers were able to shrink and multiply actor Deep Roy, who single-handedly portrays the scores of 30-inch-tall clone-like oompa loompas working the factory floor and rowing Wonka’s boat-a cross between a Chinese dragon boat and a Viking long ship carved from a hollow piece of candy-through the white tunnel.

Burton employed in-camera tricks, animatronics, and pros-thetic makeup while filming on 17 soundstages at London’s Pinewood Studios, where a crew constructed the candy land, though he entrusted most of the visual magic to a handful of digital effects houses. The Moving Picture Company (MPC) handled the bulk of the effects, including the dancing, singing, and acrobatic sequences of the oompa loompas, the fluid simulation for the roller-coaster-like white-tunnel ride down the chocolate river, Augustus’s spiraling descent into the river and his subsequent emergence through the glass pipe, and Violet’s transformation into a giant blueberry. Meanwhile, Framestore CFC tackled the squirrel sequence, and Digital Domain stretched Mike Teevee into a 7-foot-tall, 2-inch-thick piece of taffy and turned Violet into a superflexible contortionist after her blueberry body is freshly squeezed in the juicing room.


The Moving Picture Company handled the majority of the film’s digital effects, including the creation of this chocolate river that flows through the enticing candy land. The river’s surface was a flat NURBS patch.

Wonka’s factory is purely imaginary, and the entire environment reflects Burton’s affinity for bold, primary colors, folk art, and a Rankin-Bass (Rudolph the Red-Nosed Reindeer, Frosty the Snowman) simplicity in the angular designs. Burton worked closely with production designer Alex McDowell to create the look of the sets, characters, and sequences. “[Burton] made rough drawings that weren’t specific, but rather conceptive, to portray a mood,” says MPC’s visual effects supervisor Chas Jarrett. “Rather than coming in at the beginning with a strong agenda of his own, he collaborated with [McDowell] to create the unique design-like feel of the film, and was quite hands-off with the visual effects.”

Upon entering the chocolate room, the children discover a 90-foot waterfall flowing into a chocolate river, which is spanned by numerous bridges and surrounded by embankments and gentle rolling hills topped with grass of luminescent green. Then, the oompa loompas make a grand entrance, clambering up over the terrain and breaking into the “Chocolate Room” song. Prior to filming, this and almost every other sequence was meticulously choreographed in previsualizations created in Alias’s Maya by Nic Hatch at Proof UK.

The oompas also perform little chants throughout the film to remonstrate each child for his or her misbehavior, which results in bizarre transfiguration and subsequent expulsion from the premises. To capture facial performances for the scores of oompa loompas during these musical sequences, MPC used scanning technology from Eyetronics to record Deep Roy’s face as he lip-synced to composer Danny Elfman’s songs. The system projects a fine, detailed grid onto the actor’s face using fiber-optic lighting, then records changes in the pattern using an HD camera, producing 24 scans, or meshes, per second.


MPC employed scanning technology from Eyetronics to shrink and multiply actor Deep Roy, who plays all the oompa loompa characters in the movie. From the scans, the artists created the dozens of little oompas who row Willy Wonka’s dragon/Viking boat.

Using Maya’s polygonal tools, and the Eyetronics scans as references, the MPC team surfaced only one model for all the oompa loompas, which it then subdivided and rendered in Pixar Animation Studios’ RenderMan.

After Eyetronics completed the facial capture, it delivered a Maya scene file to MPC that contained its own model of Deep Roy, now bearing a blend shape representing the entire performance for a particular shot. MPC then applied these performances to the digital oompas, and synced them to the song using a playback system connected to the HD camera. While most of the oompa loompas’ facial animation was motion captured, MPC did create a standard facial rig to add variation and individuality to their emotional expressions.

For the oompa loompas’ wide entrance and a similarly composed shot of their exit, MPC used Alice, its proprietary crowd-simulation software (see “Creature Feature,” October 2004, pg. 34). Developed originally for the battle scenes in Troy, Alice applied various Pose Deformers, or types of movements, to the oompa skeletons, and blended them on the fly. These Pose Deformers included traversing up and down hills, scampering across bridges, running in or forming a line, and so forth. For the rest of the oompa shots, MPC motion-captured their movements using Vicon mocap equipment, which was quicker and more effective than using Alice.

Artists then stitched the newly deforming facial mesh to the body, which was rigged in Maya and outfitted with MPC’s proprietary Arbitrary (Arb) Deformers. Unlike typical tools, which limit the deformation to that produced by simple shapes such as spheres, the Arb Deformer is a Maya plug-in that operates similar to Maya’s Sculpt Deformer but allows animators to model any arbitrary piece of geometry for use as the deformer tool. “By using more complex deformers, we could create more complex and intricate bulges on their bodies,” says Jarrett.

Unable to resist a drink from the chocolate river, the gluttonous Augustus Gloop falls into the river and is drawn under by a whirlpool, only to emerge seconds later through a glass pipe. Everything in the shot is digital: the child, the pipe, and the chocolate fluid. Artists painted Augustus’s texture maps brown, and then hand-animated his flailing and thrashing arms. Next, the fluid-sim team used displacement maps to simulate chocolate trickling down his arms, and employed Next Limit’s RealFlow to animate the splashing chocolate.

Also, technical directors at MPC wrote a tool called a meniscus deformer, which created a “lip” between the fluid and the skin. This lip updated frame by frame so the flowing edge of the chocolate crawls realistically across the character’s skin.


Using lattices in Maya, the artists compressed the digital body of character Augustus Gloop as he is sucked up a glass tube after falling into the chocolate river.

Finally, to squeeze Augustus through the pipe, the group employed lattices in Maya to compress the digital body slightly as it presses against the glass.

For Violet’s transformation into a giant blueberry, MPC used a combination of 3D and 2D greenscreen effects. When her face first begins to turn blue in close-up shots, artists created the effect in 2D using Shake to track the veins and apply color to her face. The next cut is to a full-body shot, which is completely CG, save for her face; her face was shot against a greenscreen, colored blue, and then projected onto the CG head as a texture map. To ease the character through the various stages of expansion, the artists created three models, then, using the Arb Deformers, rigged each model with unique blend shapes to handle different bulging deformations.

As Violet is rolled out of the inventing room to be squeezed in the juicing room, one of the most challenging sequences of the film unfolds, as scores of oompa loompas perform acrobatic jumps off the catwalks and onto her giant blueberry ball of a body. Bouncing and back-flipping off her body, six oompas land in a pyramid formation. To realize this high-flying sequence on the big screen, MPC positioned several Vicon motion-capture cameras on tall scaffolding, and mocapped acrobats performing on trampolines. The group recorded the motions using Vicon’s MX 40 camera, which boasts a four-million-pixel resolution. After cleaning up the various motion-captured clips in Alias Motion Tools (formerly Kaydara Filmbox), the team mapped them to the oompas’ skeletons, and blended them using Alice.

“When you see them jumping down, that’s one clip, but when you see them hit and bounce on the ball, that’s another clip, and the back-flip is yet another,” says Jarrett.

Further along the tour of the factory, Wonka introduces the impudent Veruca Salt and the other remaining children to his nut sorting room, where trained squirrels shell walnuts for use in Wonka’s chocolate bars. Before shelling a nut, each squirrel shakes the object and listens to determine if it’s bad. If so, the squirrel throws the nut over its shoulder and into the central garbage chute; if not, the squirrel carefully shells the nut and places the flesh onto a moving conveyor belt.

Deciding she wants a squirrel for a pet, Veruca demands Wonka give her one. When Wonka refuses, she climbs through the railings and attempts to pick up the cutest squirrel. This causes all the squirrels to jump off their stools and knock her to the floor. Once she is pinned down, the lead squirrel jumps on her chest, taps her on the head, and determines she’s a bad nut. The squirrels then carry her on their backs and dump her down the garbage chute, before returning to work as if nothing ever happened.

Burton delegated this complex effects sequence to Framestore CFC, which created the CG squirrels that engage in frenzied, close interaction with the live-action performance of Veruca. This necessitated the creation of “hero” squirrels, which could appear in close-ups at the full height of an IMAX screen for the film’s IMAX release, as well as a sprawling ensemble of squirrels scurrying about the nut room. With as many as 100 squirrels to animate per shot, the sequence entailed both a creative and logistical challenge for the animators, who had to intercut the digital versions with live-action squirrels.


The movie includes, for the first time, the previously unfilmable nut room sequence, in which “trained” squirrels, created in Maya, weed out the bad nuts. Framestore used its fcFur tools to create the pelts.

Working in Maya, Matt Hughes modeled the CG squirrels as polygonal meshes, which were subdivided at render time in RenderMan. To create their fur, Framestore implemented a proprietary set of tools called fcFur, which offers 70 basic controls for length, width, hair profile, orientation, curvature, scraggliness, clumping, and density. In addition to the basic clumping, it also offers dynamically calculated clumping, which creates the banding often seen around the joints of furry creatures. Created in Side Effects Software’s Houdini, this clumping system uses predefined splines placed on a static squirrel and per-frame calculation of skin stretch to control how the clump bands will open and close during extreme animation. In all, the artists developed seven different types of fur, so that the belly, back, tail, and other areas of the animal sported different kinds of hair.

With up to five million hairs per squirrel in shots composing close to 100 squirrels, optimizing ren-dering was a primary focus in the development of fcFur. To that end, the team programmed the tool to regulate the fur’s thickness and level of detail with the squirrel’s proximity to the camera, and to convert each squirrel into voxels before generating the hair in the RenderMan DSOs (dynamically shared objects). As a result, the crew could avoid generating hair that would not be visible to camera.


For the nut sorting scene, artists were challenged with animating up to 100 furred squirrels for each shot. To optimize the process, polygonal meshes, created in Maya, were subdivided at render time within RenderMan.

While the squirrels alternately assume four-legged and bipedal postures during the frenetic scene, the animators used only one rig developed in Maya. “This was no small feat, as squirrels seem to have no notion of gravity or natural orientation. They are just as happy standing on four legs, two hands, upside down, or on their backs,” says CG supervisor Ben Morris. So the challenge for animator Craig Bardsley was to make the squirrel look realistic doing something that a squirrel wouldn’t be expected to do, which required a delicate balance between stretching the anatomy far enough to tell the story and maintaining enough “squirrel” mannerisms to ensure a seamless cut to the real squirrels.

As they make their exit from Wonka’s factory, each child’s transfiguration is paid off in an amusing sight gag. To create these effects, CG supervisor Serge Sretschinsky and his team at Digital Domain remodeled the Eyetronics’ scans provided by MPC, generating high-resolution polygonal models that were hand animated in Maya and rendered as subdivision surfaces in RenderMan. For all the effects, Burton’s main directive was to make the children do something impossible for a human to do, albeit without losing a sense of believability or the identity of the child.

For instance, Violet Beauregarde, after being freshly squeezed in the juicing room, has been left with a rubbery, elastic body that she can contort wildly to impress her mother. The artists sculpted Violet’s loose-fitting clothing in Maya’s Artisan and used Syflex’s cloth tool to handle the complex stretching of the tracksuit. While Violet’s head, hands, and sneakers were modeled with polygons in Maya, the girl’s body was composed solely of Maya collision objects-a series of spheres placed inside the body and bound to the skeleton’s joints-which drove the Syflex cloth simulation. After reviewing some video and motion-captured data of a contortionist, the artists hand-animated her body in Maya and then composited the actress’s greenscreen-filmed head into the shot.

Next, after the miniaturized Mike Teevee is stretched out in the taffy puller, he walks toward the camera and then turns sideways, revealing that he is not only 7 feet tall but almost completely flat. In Maya, the artists used lattices to sculpt blend shapes that compressed Mike’s fully CG body and stretched him. In addition, to accentuate the reveal of Mike’s flattened body, the team also modeled a few blend shapes to make his body wider than the exceedingly thin version that is seen from the side. “This helped us ramp into his thin shape more effectively as he turns in front of the camera,” says Sretschinsky.


Eyetronics extended its facial scanning system so it could retarget the scans of actor Deep Roy onto a polygonal mesh created by MPC according to its preferred topology for facial animation, enabling Roy to be duplicated for various scenes.

Whereas Mike’s spiky hair was composed of polygonal geometry, the artists instead used Maya’s Dynamic Curves for Violet’s short, straight hair. Although Maya converts the Dynamic Curves to Paint Effects strokes prior to rendering, Digital Domain chose to convert the Paint Effects strokes to RIB files, so they could render in RenderMan.

Throughout the course of production, Tim Burton was adamant about following Roald Dahl’s book religiously. As with Tolkien’s The Lord of the Rings, filmgoers around the world will be able to experience the true wonder of the author’s imagination for the first time, thanks to state-of-the-art CGI. And while they will never taste Wonka’s unrivalled confections, they’ll be savoring the sweet eye candy of MPC, Framestore CFC, and Digital Domain for years to come.


Martin McEachern, a contributing editor for Computer Graphics World, can be reached at martin@globility.com.

The greatest challenge in matching the digital oompa loompas with their live-action counterparts was posed by their tight-fitting, one-piece suits: Any traction or force exerted on the fabric would cause the effects to ripple throughout the entire costume.

“If you moved his arm, his ankle would move,” says MPC’s visual effects supervisor Chas Jarrett. “In contrast, if you’re simulating normal clothing, such as lanky shirts or jeans, the effect of an arm movement won’t extend throughout the entire piece of clothing. It was difficult for our sim team to get that cloth to behave the way the real cloth behaved.”

To replicate the complicated systemic wrinkling effects of the real fabric, the MPC group used Syflex’s cloth solver for Alias’s Maya, which enabled the filmmakers to achieve seamless intercutting between the live-action and the CG oompa loompas.

Because of the highly reflective, lustrous sheen of the oompas’ plastic-like red suits and the completely digital chocolate river, capturing realistic reflection maps was crucial to the successful melding of the live action with the CGI. To that end, MPC used a Canon 1 DS camera fitted with a Sigma 8mm, 180-degree fish-eye lens to capture a 360-degree view of the set, from which the group created HDRI maps. - MM

To handle the challenges of fluid simulation, which ranged from cascading chocolate over the waterfall, the ebbing and flowing of the river, the wake of Wonka’s boat, and the splashing and thrashing of Augustus as he’s sucked under by a whirlpool, MPC developed a sophisticated yet elegant 3D displacement shader within Pixar Animation Studios’ RenderMan.

The river surface, itself, was a flat NURBS patch. Onto this, the artists mapped the displacement shader to simulate the basic flow of the river and the waterfall. This shader, which blends procedural noises and other elements, allowed the artists to control the choppiness, height, direction, speed, and amount of waves. “We could specify where the waves would and would not be, whether they flowed fast or smooth at the edges, or quicker in the middle,” explains MPC’s visual effects supervisor Chas Jarrett. “We could also divert the flow around pillars, or get the river to flow around things, by simply warping the UVs on the NURBS patch. In some ways it was quite simple, but it took a long time to make it look realistic.”

MPC also wrote a tool set called Puddle, which worked in conjunction with the displacement shader to produce more complex fluid effects and to blend them together. For example, one of Puddle’s tools uses particles to create displacements on a surface, so that if a particle is dropped onto the river surface, ripples emanate from the point of impact. In fact, MPC created the wake of the boat using this technique, whereby artists would emit a bunch of particles off the boat and, while never rendered, they’d have a displacement effect on the surface around them, forging the wake of the boat. Designed to function seamlessly with the displacement shader, Puddle’s effects could also be rendered easily through RenderMan. - MM