Jos Stam is standing on a pearl-white beach under a cloudless sky. He is visiting his parents, who are vacationing in Faro, a medieval town on Portugal's Algarve coast. Stam, a 41-year-old computer scientist specializing in 3-D graphics, doesn't look at the world the way the rest of us do. Reality is a binary riddle to be cracked, a series of fleeting images best appreciated after they've been rendered into 1s and 0s. Even here, watching the waves hit a beach in Portugal, his thoughts drift, as they always do, toward numbers. He begins scribbling in a small black notebook filled with mathematical interpretations of everything he sees.
Stam is a Nordic Goliath, a neck-craning 6'8", with blond hair, pale green eyes, a deeply cleft chin, and hands the size of bear paws. He wrote the software behind many of the visual effects in modern Hollywood films — he is one of the few programmers to have won an Oscar — yet he's all too aware that no software can re-create the aquatic spectacle before him. Computers can simulate simple fluid motion, but on their own they still can't reproduce the complexity of a breaking wave
Sure, Titanic and The Perfect Storm had digitally created oceans. But those effects depended on the tedious melding of multiple rudimentary computer simulations. Ten years later, no software can produce believable effects that don't also require untold hours of manual tweaking — and any time additional components are layered in by hand, the finished effect is less realistic. Stam calls the creation of a believable crashing wave, in all its multidimensional complexity, "the holy grail of computer animation." And he may be closer than anyone to finding it.
When I first meet Stam to discuss his work, at a tapas bar near his office in downtown Toronto, I admit right off that I'm a bit confused. "Aren't graphics programs already doing physics-based animation?" Answer: sort of. He glances around the room. He points out flickering candles, a sloshing glass of wine, and the billowy pleats and folds on the blouse of our waitress, who has just delivered a plate of lobster confit. All are formidable "problems," he explains, using the innocuous term that graphics coders reserve for the most daunting challenges. Stam himself has already devised an algorithm that crafts digital smoke with startling realism (it was used in The Lord of the Rings and War of the Worlds). But to create a digital wave or flickering flame that can realistically interact with other objects and forces (including rocky shorelines or light breezes) would require a CG-effects system that truly behaves in accordance with all the laws of physics. Such systems are still in their infancy — they're used to animate the simpler cartoon physics of videogames and certain discrete elements of movies — but it's not clear if any processor or software program will ever be powerful enough to mimic reality at the click of a mouse.
Stam is wearing designer blue jeans, purple lace-up combat boots, and a black T-shirt beneath a retro corduroy sport jacket. (When did coders stop being geeks?) He's so tall, he looks like he's about to fall out of his chair. He clutches the table and leans toward me. "Watching those waves really made me appreciate how hard it is to animate something that complex," he says of the beach in Portugal. "I'm fascinated by the mix of water, sand, and froth. But how would you model that? Is there an equation that accounts for all of it?"
Current animation software can't handle a lot of elements interacting within a single shot. A ship ablaze on a stormy sea, lashed by gale-force wind and rain, would be impossible to animate completely with existing software. The animations for the waves, ship, flames, wind, and rain have to be solved individually, then painstakingly blended and layered element by element into each frame of film. This can take a team of animators at a visual effects house many months and cost hundreds of thousands, if not millions, of dollars. Stam has a better idea: Teach visual effects software all the fundamental laws of physics and let it do the grunt work for you. Think of it as a unified field theory for animation — the animator can simply plug in the variables:
Wind speed: 25 knots
Wave height: 7 feet
Ship's mass: 46,000 tons
Ocean depth: 7,000 feet
Additional details might include air and water temperature, time of day (for lighting effects), wind direction, source of ignition... you get the idea. With the parameters set, hit Enter and voilá — the software would crunch the numbers and spit out the finished scene. At least, that's the theory. In practice, while algorithms for individual components (fire, water) already exist, integrating them all together has proven to be hideously complicated
This feature is from wired