Previous Topic (Technology) Up (Introduction and Setup) Next Topic (Requirements)

Short Krakatoa History

Proto-Krakatoa Point Renderer

Stay, 2004

In early 2004, the Research and Development team of Prime Focus VFX (then Frantic Films VFX) was tasked with developing a pipeline to render the Spore particle designs created by Richard "Doc" Baily for the motion picture "Stay" by Marc Forster. After experimenting with point rendering in a Renderman-compliant renderer (Entropy) which proved to be too slow for the particle amounts in question, the decision was made to develop a stand-alone additive point renderer. The resulting software was used to produce the glowing effects in the Brooklyn Bridge sequence at the end of the movie and implemented motion blur and depth of field effects which were not available in the original Spore renderer. The particle data was generated procedurally by a DLL compiled by Doc Baily for the occasion with no other particle source support.

Cursed, 2004

The same year, the same renderer was used to generate wispy smoke calculated using the FLOOD fluid simulator for Wes Craven's werewolf horror movie "Cursed". No shadow casting was required for matching the actual on-set smoke that had to be enhanced or replaced.

Stand-alone Volumetric Point Renderer

Superman Returns, 2005-2006

Doc Baily and Frantic Films were hired again to work together on the Kryptonite effects in Bryan Singer's "Superman Returns". A sequence including underwater crystal growth including clouds of silt was also awarded and the decision was made to rewrite the point renderer into a volumetric particle renderer with support for self-shadowing. The resulting stand-alone renderer could handle about 50 million particles on a 32 bit system. Wherever more then 50 million particles were needed, multiple layers were generated and composited together to produce up to 1 billion particles seen in a wave hitting Metropolis pier during the earth quake sequence. The renderer supported matte objects exported to a proprietary geometry format and PRT files used to capture the particle data from various sources (typically Particle Flow or the FLOOD fluid simulator). The scene description (camera, light sources, particle files to load and matte objects to use) were provided via an XML file. The stand-alone renderer was single-threaded throughout, but was considered fast enough for the task.

Krakatoa for 3ds Max

Krakatoa Is Born, 2006

Around the end the Superman Returns production it was decided that the stand-alone renderer should be turned into an integrated 3ds Max renderer and eventually released as a commercial product. The first iterations of the User Interface (initially based on the existing Amaretto UI scripts) supported both the integrated renderer and submission to the external renderer. The original idea was to create a "simple particle renderer", a target that was missed by a mile by the actual release that contained a huge number of advancements requested by Beta-testers.

Beta testing of the product started in late 2006 and the name "Krakatoa" was suggested by Mark Wiebe, then Director of RnD and senior developer of the volumetric renderer. The early Beta versions provided the ability to load a single particle sequence from disk via controls found in the Renderer GUI. Beta 0.9.6 introduced a dedicated PRT Loader object which made it possible to load arbitrary numbers of particle sequences and transform them into world space. Later builds added the ability to cull and deform PRT Loader particles.

Visitors of the first ever Frantic Films Software booth at Siggraph 2006 in Boston could have a first glimpse into the Beta software, including the now legendary "Mini turning to dust" demo shot. For development progress notes from Beta version 0.9.6 to the release version 1.0.0, see the Release Notes here.

Release of Version 1.0.0

Krakatoa v1.0.0 was released the week before Siggraph 2007 in San Diego and was updated to v1.0.1 immediately after Siggraph to fix some bugs discovered during the extensive demonstrations at the expo. The first version remained single-threaded. Regardless, it made a very good impression as a very fast particle renderer, especially on 64 bit OS using the brand new 3ds Max 9 64 bit build which proved to run twice as fast due to faster memory management.

First Major Update - Version 1.1.x

About 9 months after the public release of the first Krakatoa version, the first major update was ready to ship to customers in April 2008. The main highlights were customizable memory footprint based on the enabled render options (earlier versions used a hard-coded memory layout) and a new fully milti-threaded sorting algorithm plus two-threaded PRT Loading leading to better performance. Significant improvements were made in the usability area with enhanced UI presets and defaults controls etc. You can read the release notes of v1.1.0 here.

Two point releases were published in June and September 2008 (before and after Siggraph 2008 in Los Angeles) which added support for 3ds Max 2009 and its enhanced Virtual Frame Buffer and for Deadline 3.0 partitioning. These versions of Krakatoa were used (and partially influenced) by the work on the particle-heavy "Journey To The Center Of The Earth 3D" and "Dragonball:Evolution" movies.

Another recompile released as v1.1.3 but without any new features except for the added support for 3ds Max 2010 was published in July 2009, shortly before the introduction of the next major version...

Second Major Update - Version 1.5.x

In the second half of 2008 and the first half of 2009, the Krakatoa development team worked on the next major update which was planned as v1.2.0, but was renamed to 1.5.0 in the last moment due to the impressive amount of new features included in it. In fact, it was even discussed to be marketed as 2.0.0, but the promotion material for Siggraph 2009 in New Orleans was already prepared and it was too late.

This new version added a Voxel rendering mode and provided significant speedup to particle loaded by multi-threading the shading and culling of particles. The new Magma compiler for creating and modifying of particle channels' data meant a huge leap in flexibility. A Krakatoa SkinWrap World Space Modifier inspired by the work on "Dragonball:Evolution" made it possible to skin particles using arbitrary animated geometry. New Phase Functions (Shading Modes) were added to the existing Isotropic and Phong shading options, and the ability to specify and calculate Emission and Absorption per particle was also included, along with support for Environment Reflection Maps. The Matte Objects calculations, previously one of the slowest aspects of Krakatoa, were sped up by orders of magnitude thanks to a new geometry rasterizer. This version of Krakatoa also added a procedural PRT Volume source to fill geometry volumes with particles, as well as support for FumeFX simulations required for the production of the "G.I.Joe" missile chase sequence. You can see the detailed Release Notes here, or read the more verbose description of the v1.5.0 features here.

A point release v1.5.1 was published in September 2009 and provided bug fixes and several improvements to the PRT Volume object, the MagmaFlow Editor and the ability to select and delete particles using modifiers.

Early beta versions of 1.5.0 were used in the production of both "G.I.Joe" and "Avatar".

Third Major Update - Version 1.6.0

After the release of v1.5.1, plans shifted into the development of a refactored v2.0.0, but production requirements caused a change of plans and a v1.5.2 was created to satisfy these needs. As usual, after several Beta versions it became clear that the number 1.5.2 would not reflect the amount of changes made to the update, so it was promoted to v1.6.0. It was released on August 31st, 2010.

Among its highlights were the completely reworked shadow casting system using a new Krakatoa Shadow Generator producing Deep Attenuation Maps with colored shadows support and no artifacts at the edges of matte geometry, as well as support for Krakatoa Render Elements to output renderer, shader and user channels as image files.

A significant speedup was achieved in the loading of procedural particle systems with unknown final count (e.g. PRT Volume objects), and the saving of particles was improved to better support multi-threaded operations. The drawing of particles in the Lighting and Final Pass and the Matte ZDepth map generation were fully multi-threaded to take advantage of multi-core workstations, and the evaluation of Matte Objects Geometry was decoupled from the particle Motion Blur passes to further accelerate the rendering. In result, v1.6.0 would perform several times faster than 1.5.x on the same 8-core hardware.

A new PRT FumeFX object was introduced to facilitate the direct manipulation of FumeFX simulations as particle clouds including deformations, channel modifiers and transformations without intermediate saving of PRT files to disk. This also included support for the new FumeFX 2.0 version, multiple particles per voxel, direct support for the Fire channel data and more. Additionally, a simple object for loading, transforming, deforming and modifying particles from 3rd party sources was provided to developers along with a public interface to expose external particle data to Krakatoa.

The MagmaFlow Editor was extended with new nodes including kd-tree-accelerated Surface Operators and Quaternion Operators. The node creation workflow was further streamlined via new two-stroke shortcuts which give access to almost all node types via the keyboard.

A new MAXScript Interface was added to allow reading access to the render state of PRT Loaders, PRT Volume and PRT FumeFX objects. This new Interface was employed in the creation of the Particle Data Viewer dialog which provides insight into the internal data channels of particle objects. The Interface could be used together with the existing PRT output interface to load, modify and resave particles using custom scripts.

The Renderer's User Interface was refactored to contain only controls relevant to the rendering and saving process with all additional tools and utilities available separately. All important tools were exposed via a Krakatoa menu item in the 3ds Max menu bar.