Origins of Krakatoa

Back to Blog Listing

Origins of Krakatoa

How I wrote the first version of Krakatoa at Frantic Films to render Doc Bailey's SPORE images for Stay, and how the renderer later reached Avatar, Harry Potter, and Exocortex Fury.

Ben HoustonDecember 6, 20245 min read

I joined Frantic Films in 2002 and ended up starting several VFX tools there. Most people know me for developing Deadline, the network render manager that evolved from a distributed fluid simulation scheduler. Krakatoa, the point renderer, started from a different production problem.

Avatar Hologram Tree

Rendering SPORE for Stay#

Krakatoa started with a rendering problem we faced while working on the 2005 film "Stay." We did the post-production work in early 2004.

We needed to render luminescent graphics designed by Doc Bailey, a Hollywood original known for his proprietary "SPORE" images based at least partially on chaos/Lorenz attractors.

Doc Bailey's SPORE

Doc's existing renderer couldn't scale to our needs. It could produce 1K images, but we needed much higher resolution with perfect anti-aliasing, matte object cutouts and the ability to fly through the renders using cutting planes. We also needed animation, which meant producing many high-resolution, alias-free images on a production schedule.

Before building our own solution, we tried existing renderers. Mark Wiebe built a prototype with Exluna's Entropy renderer, using instancing to handle the point clouds. It could not render enough points for the shots. Some SPORE images grew to billions of points, and the established renderers we tested were built for surfaces, not point clouds at that scale.

Doc gave us his core proprietary algorithm as a Windows DLL that output points from his input parameters. I then wrote a custom renderer. My first approach reused an OpenGL / C# renderer I had laying around, modified to render the points coming from Doc's DLL. It worked and took only a few days to get going. This first version of Krakatoa supported matte objects, volume clipping, some lens effects and depth of field support from Mark Wiebe. Mark also helped write the particle loaders and savers for PRT files, and gave useful feedback during development.

Krakatoa Emails

The renderer I started on March 18, 2004 let Frantic Films complete the Stay post-production work by June 2004. The results, released in 2005, looked like this:

Stay 7

Wispy Smoke for Wes Craven's "Cursed"#

The second film to use Krakatoa was Wes Craven's "Cursed" (2005). This time, we needed to render wispy smoke effects. We used our fluid simulator, Flood, to advect dense smoke particles through the fluid space, then rendered those particles with Krakatoa. That forced us to add motion blur, since the fluid simulation now gave us particle velocities. Christopher Batty took the simulation lead. We wrote the work up in a short paper at SIGGRAPH 2005.

Wispy Smoke

"Superman" Krypton Explosion#

One of the last Krakatoa projects I worked on, though I did not see it to the end, was Superman Returns (2006). The work again used Doc Bailey's SPORE imagery, or at least drew inspiration from it. We rendered the internals of the Kryptonite crystals, and I worked on scalability using a hierarchical tree structure and ray casting. I understand the team also used Krakatoa for the explosion of the sun that destroyed the planet Krypton.

Krypton Sun Explosion

After I Left#

In early 2005, I left Frantic Films. Mark Wiebe took over Krakatoa development, ported it from C# to C++, and integrated it with 3ds Max and later Maya with help from Bobo Petrov. Frantic released it as a public product in 2007/2008. Studios used it on many dozens of high-profile films, including "Harry Potter and the Deathly Hallows Part 2" and "Avatar".

On "Avatar", Anselm von Seherr-Thoß used Krakatoa to create the 3D holographic tree display in the command center, the image featured at the beginning of this blog post.

Harry Potter

Exocortex Fury#

After leaving Frantic Films, I founded Exocortex, my own VFX software company. Along with Jack Caron and Richard Monette, I developed Exocortex Fury, a spiritual successor to the original GPU-based concept of Krakatoa. Fury focused on GPU particle rendering and supported:

  • Real-time rendering of millions of particles.
  • Depth of field and motion blur, by deforming ellipses.
  • Self-shadowing.
  • Stereoscopic rendering.
  • Integration with both Softimage and Maya.

Softimage Integration

Softimage-based studios adopted Exocortex Fury, and we made some progress in Maya shops as well. One of our strongest champions was Andrew Moorer, who was at Method Studios at the time.

Some of the projects that used Fury were:

  • ABC's "Once Upon a Time"
  • Verizon commercials
  • Abraham Lincoln: Vampire Hunter
  • The 3D conversion of Jurassic Park (reviewed by Steven Spielberg himself)
  • The Avengers (the stereoscopic smoke from the Helicarrier effects)
  • 300: Rise of an Empire

Verizon Commercial

We ended Exocortex Fury in 2013 as Exocortex shifted away from VFX tools toward the Clara.io online 3D editor.

Krakatoa started as a production fix for "Stay" and grew into a renderer that studios used on blockbuster films. AWS later open-sourced it.

Where the magic happened

This post was discussed here on Linkedin and here on Reddit.