KRAKATOA™ is Thinkbox Software's production-proven Volumetric Particle Rendering, Manipulation and Management Toolkit.
Krakatoa is available in three distinct flavors:
- KRAKATOA MX for Autodesk 3ds Max.
- KRAKATOA MY available for Autodesk Maya on Microsoft Windows and Linux operating systems.
- KRAKATOA SR stand-alone renderer allowing Python or C++ API connection to any host application, available soon on Microsoft Windows and Linux operating systems.
KRAKATOA was specifically designed to process and render millions and even billions of particles and adapts its memory footprint to the requested rendering features. It provides a pipeline for acquiring, caching, transforming, modifying, shading and rendering vast quantities of particles at unprecedented speed to represent natural phenomena like dust, smoke, silt, ocean surface foam, plasma and even solid objects.
KRAKATOA offers both Particle and Voxel rendering modes using the same source data. It supports volumetric and additive particle shading, texturing, high-quality particle self-shadowing and shadow casting from and onto matte objects. Per-particle Scatter, Emission, Absorption and Density data channels, as well as various Light Scattering models allow deep levels of control over the final image. Motion Blur and Depth Of Field camera effects are naturally supported.
The unclamped High Dynamic Range output to OpenEXR files can also include various render passes for image post processing. KRAKATOA SR and KRAKATOA MY read DTEX maps for shadow casting and mattes, while KRAKATOA MXimplements OpenEXR-based Deep Opacity Maps for shadows integration with other renderers.
KRAKATOA integrates with the native particle systems of 3ds Max and Maya, and provides data exchange capabilities for sharing particles with other 3D and simulation applications.
KRAKATOA SR offers both an easy to use Python-based interface inspired by the Renderman specification, and a powerful C++ API which can be used to connect the renderer to 3D and 2D applications like SideEffects Houdini, The Foundry's Nuke, Maxon Cinema4D and so on. The KRAKATOA MY integration with Autodesk Maya also relies on this C++ API to ensure deep and seamless integration of the renderer into the host application.
Both KRAKATOA MX and KRAKATOA MY include the ability to generate millions of particles using a particle partitioning method which overcomes memory and system limitations of the host 3D application. It also implements a Particle Repopulation algorithm to turn low-resolution particle sequences into high-volume clouds with arbitrary particle counts.
KRAKATOA originally introduced the open, compact and flexible .PRT particle data format which is supported by many 3rd party aplications. In addition, it also supports NextLimit's RealFlow particle BIN file format and a versatile and easy to use ASCII Comma Separated Values .CSV format which could be used to interact with any application that can read and write text files.
KRAKATOA has been used to generate visual effects and elements for movies like "Superman Returns", "Journey 3D", "G.I.Joe", "Twilight:New Moon", "Avatar", "Harry Potter And The Deathly Hallows 2", "Transformers 3" and "The Avengers", as well as for numerous TV series, game trailers and commercials.
Krakatoa MX 2
KRAKATOA™ MX is Thinkbox Software's production-proven Volumetric Particle Rendering, Manipulation and Management Toolkit for Autodesk 3ds Max.
Krakatoa™ integrates well with Particle Flow, the flexible 3ds Max built-in Event-Driven Particle System, and provides data exchange capabilities for sharing particles with other 3D and simulation applications.
Waterfall particle set courtesy of Adam Guzowski/Evermotion
The rendering features include Particle and Voxel representation of the same data, support for shading and texturing using standard 3ds Max maps and materials; Particle Self-Shadowing and Shadow Casting from and onto matte objects; support for per-particle Scatter, Emission, Absorption and Density data, Various Light Scattering models incl. Isotropic, Phong Surface, Schlick and Henyey-Greenstein, Kajiya-Kay and Marschner; Environment Reflections; Motion Blur and Depth Of Field effects; Ambient Participating Medium Extinction and more.
The Particle Manipulation pipeline includes Particle Culling using arbitrary geometry and Particle Deformations using 3ds Max deformation modifiers and Space Warps like Bend, Twist, PathDeform and Free Form Deformation lattices; Particle Retiming using custom graphs, offset and limit range behaviors; Particle Data Channels access via a powerful node-based MagmaFlow editor; read and write access to particle data via MAXScript
The Particle Management features include the ability to generate millions of particles using a unique Particle Partitioning method which overcomes memory and system limitations of 3ds Max; Input and Output support for Thinkbox' open, compact and flexible .PRT particle data format, NextLimit's RealFlow particle BIN file format and a versatile and easy to use ASCII Comma Separated Values .CSV format which could be used to interact with any application that can read and write text files. Particle files can be saved from Krakatoa™ and also loaded into 3ds Max using Krakatoa™ PRT Loader objects or into Particle Flow using dedicated Krakatoa™ File Birth and Krakatoa™ File Position operators, thus allowing for a full data flow cycle where particles can be saved, reloaded and processed multiple times through different particle system setups. Particles can also be generated procedurally from geometry volumes, splines and hair strands, FumeFX simulations or using 3D fractal functions.
Krakatoa™ provides a highly sophisticated Presets and History System which does automatic book-keeping and thumbnail management of any rendering and saving operation performed in the Krakatoa™ GUI and allows any settings and render results to be browsed, compared and restored partially or completely to easily achieve the same look in later projects.
Krakatoa™ integrates well with Deadline, Thinkbox Software's Network Management Software and allows any number of CPUs to process particle files or render particles.
Krakatoa™ takes full advantage of 64 bit computing and has proven to run up to twice as fast on 64 bit builds of 3ds Max and Windows 64bit thanks to better memory management.
Krakatoa™ has been used to generate visual effects and elements for movies like "Avatar", "The Avengers", "G.I.Joe", "Harry Potter And The Deathly Hallows Part 2", "Journey 3D", "Thor", "Transformers 3", "Superman Returns" and more.
Major Features Overview
- Acquire data from 3ds Max particle systems like Particle Flow, Thinking Particles and the legacy particle objects.
- Convert FumeFX voxels to particles for direct rendering of fluid simulations.
- Use geometry vertices as particles.
- Load particle files in Krakatoa´s PRT format, CSV files or RealFlow BIN files.
- Render particles as points or as voxels.
- Render particles using volumetric or additive shading models, or a blend thereof. The volumetric model simulates light attenuation due to the density of particles that the light passes through.
- Select from a range of shading models including Isotropic, Phong Surface, Henyey-Greenstein and Schlick to determine the way light is scattered while passing through the volume.
- Control particle Color, Density, Emission and Absorption with 3ds Max Standard Material's Color, Opacity, Self-illumination and Filter channels, supply a custom color, override the particle color globally, or design your own shading data sources using the node-based MagmaFlow Editor.
- Use the 3ds Max´s built-in DOF or Motion Blur multi-pass effects for compatibility, or employ the native Krakatoa Motion Blurand Depth of Field effects which can be applied at the same time.
- Apply Ambient Participating Medium Extinction to particles to simulate light behavior in air or under water.
- Cache particles in RAM before or after the lighting phase to adjust lighting parameters or camera placement and re-render in a fraction of the time.
Saving and Partitioning
- Save any supported particle type to disk for direct access to every frame without preroll.
- Specify the exact channels layout to be saved, or create new channels to save custom data from 3rd party systems or channels created by Krakatoa Channel Modifiers.
- Use the Advanced Partitioning capabilities of Krakatoa to render more particles than 3ds Max could normally process by itself. When running Max in conjunction with Deadline®, distribute large particle simulation jobs over multiple machines, or even over multiple cores of the same machine.
- Recombine partitioned files and render them as a single particle cloud - ultimately, the only limitation on particle counts is your available RAM.
Interaction With Other Renderers
- Load specified scene geometry to act as matte objects to obscure particles from the camera and cast shadows onto particle systems.
- Use the Krakatoa Shadows Generator to generate Deep Opacity Map shadow maps in Krakatoa and to apply these shadows in other renderers like Default Scanline and V-Ray.
- Use the Krakatoa Shadows Explorer and Matte Objects Explorer utilities to mass-assign, manage and inspect the shadow and matte object settings of the scene.
- Use the PRT Loader object to preview input particle files in the 3ds Max viewport – and specify how they will load and render in Krakatoa™.
- Convert any more or less closed geometry surface to a particle cloud by filling its volume with particles using the PRT Volumeobject.
- Convert the voxels of a FumeFX simulation to a particle cloud using the PRT FumeFX object.
- Convert 3rd party particle sources exposing the Krakatoa particle data streams into Krakatoa-compliant particles using thePRT Source object.
- Apply 3ds Max object space and world space modifiers to PRT Objects just like with any other geometry object to bend, twist, path-deform, free-form-deform, displace etc. your particles.
- Use custom geometry as culling volumes to selectively delete particles while being loaded by the PRT Loader.
- Use the 3ds Max Vol.Select modifier to provide Selection or Soft Selection and pass it up the stack to affect deformation modifiers, to use as control channel in MagmaFlows or to delete particles selectively using the dedicated Krakatoa Delete modifier.
- Offset or tweak the timing of a PRT Loader using a custom curve to speed up, slow down, or create playback effects like reverse, repeat, ping-pong etc. while adjusting correctly position interpolation and velocity data.
Particle Data Editing
- Use the powerful node-based MagmaFlow editor to read, modify and write back particle channel data.
- Perform per-particle mathematical operations , transform particle data between coordinate systems, convert values between data formats and so on.
- Test particles against arbitrary geometry surfaces using raytracing or nearest point lookup operators to acquire information like position, normal, mapping, face index, barycentric coordinates and more.
- Construct custom shaders by using particle data like Position and Normal as well as scene objects like Light Sources and Camera position and orientation to calculate the color, emission, absorptions, density etc. as needed.
- Input Color, Mono and Normal Perturbation data from 3ds Max Texture Maps.
- Access arbitrary scene data using MAXScript and the Script Input node.
- Use the Global Channel Override option to apply MagmaFlows to all scene particles at render time.
- Debug the values at each step of the flow or generate graphical representation of the final output.
- Save groups of operators as compound operators (BlackOps), save flows to reuse and share or save Macros from the editor's Undo buffer to demostrate the dynamic building of the flow with custom timing and comments.
- Use the Particle Data Viewer utility to browse the content of PRT Loaders, PRT Volumes and PRT FumeFX objects.
- Use the PRT Scanner utility to collect and output information about the particle count in PRT Loaders or about missing frames in the file sequences.
- Use the Krakatoa Schematic Flow to analyze the state of the various components of the renderer and resolve problems like missing objects, modifiers etc.
- Use the Krakatoa Explorers utility to mass-modify relevant properties of particle source objects in the scene.
- Use the Krakatoa Log Window to gain insight into the various operations performed by the Krakatoa renderer and its components, browse performance statistics and get informed about error conditions.
- Develop your own scripted tools to read and write particle files in the Krakatoa PRT format.
- Access all relevant properties of the Krakatoa renderer and most of its tools via MAXScript.
- Learn from the Krakatoa User Interface and Utilities script source code provided in unprotected form.
- Tweak and extend the scripted components of Krakatoa to better fit your pipeline.
Particle Flow Interoperability
- Take advantage of the dedicated Krakatoa PRT Birth, Krakatoa PRT Update and Krakatoa ID Test operators to load particles from particle file sequence back into Particle Flow for reprocessing, or use the same approach as a form of customizable disk caching or as a particle deformation pipeline.
- Use the high-performance bonus operators Krakatoa Geometry Test, Krakatoa Geometry Lookup and Krakatoa Collisionto test particles against closed geometry volumes, acquire data from geometry surfaces or collide millions of particles with high-resolution meshes at unprecedented speeds.
Performace and Scalability
- Most Krakatoa operations scale in linear fashion, e.g. rendering twice as many particles takes twice as long.
- Krakatoa is largely multi-threaded and will take advantage of multi-core systems to accelerate operations like particle sorting, lighting and drawing.
- Material evaluation and particle culling as well as the processing of Krakatoa Channels Modifiers containing custom MagmaFlows are also fully multi-threaded.
- Krakatoa will not only take advantage of the larger memory address space of 64 bit systems, but performs up to twice as fast as in 32 bit due to the lower memory management overhead.
The image below illustrates the fact that you can traverse the graph in almost any direction, which creates some useful applications. Krakatoa videos on the web mostly show examples of its rendering capabilities – the atomic, silty look and its variations. But the particle data processing functionality gets used daily in productions, and helps open up a great number of new options and solve lots of data exchange situations.
Whether you want to combine a Naiad simulation with FumeFX to add some mist, bend a linear particle stream around a spline or add some leaves and debris over a water stream created with RealFlow and render with V-Ray, Krakatoa allows you to integrate these tools and do more with them – such as adding modifiers, retiming, skinwrapping, etc.
Krakatoa’s functionality includes a volumetric renderer that feeds on particles and renders them either as points or voxels. A great number of them, actually, so they can shape up solids, swirls, dust storms, ocean surface foam, energy fields and more.
Krakatoa provides a toolkit to deal with these particles, which includes the Magma System, a modifier that you can put on top of a particle loader that allows you to take some inputs – like any particle data (position, velocity, normal, etc), lookups to external particles, geometry and textures – and allows you to do some operations on them, and write the results into some data channel on the particle – like color, density, velocity, selection, etc. All this can be done using the MagmaFlow editor, a node-based visual programming environment.
Krakatoa MY 2
Krakatoa for Autodesk Maya (also known as Krakatoa MY or KMY for short) is a volumetric particle rendering plugin inplemented using the C++ Interface to Thinkbox Software'sKrakatoa renderer for Linux and Microsoft Windows operating systems.
Build 220.127.116.11419 was released on February 21st, 2013. Note that the release number matches the Krakatoa core renderer version shared with Krakatoa MX and Krakatoa SR. All Krakatoa implementations share the same rendering core and should produce identical, pixel-exact output given the same particle data and settings.
Krakatoa MY is fully integrated in the Maya User Interface and operates not unlike Krakatoa MX for Autodesk 3ds Max. It implements various dedicated scene objects like the PRT Loader for loading particles from external file sequences, and the PRT Volume for converting geometry volumes to point clouds.
Waterfall particle set courtesy of Adam Guzowski/Evermotion
Krakatoa MY requires its own separate workstation license when used interactively inside the Autodesk Maya User Interface. This includes rendering and running Maya Batch from inside of Maya.
When rendering on the network, all Krakatoa implementations use the same "krakatoa-render" license. This means you can network render with Krakatoa MX, Krakatoa MY or Krakatoa SR as needed without the need to purchase separate render licenses for each.
Note that Krakatoa MY running in network rendering mode will also check for the existence of a workstation license, but will not check it out. In other words, at least one Krakatoa MY workstation license must be purchased for network render licenses to operate correctly.
Key features of Krakatoa MY include
- Point or voxel representation of particle data, with various filter modes, motion blur and depth of field camera effects, and HDRI render passes output to OpenEXR files
- Simultaneous support of both additive and volumetric shading models, with per-particle control over color, emission, absorption, density and more
- Support for various light scattering algorithms, high-quality self-shadowing and occlusions from both geometry and DTEX maps
- Dedicated particle loader object supporting Krakatoa .PRT file sequences, RealFlow .BIN file sequences and .CSV file sequences, with the ability to offset, retime, combine and modify already cached particles
- Dedicated PRT Volume and PRT Fractal objects inside the Maya viewports provide procedural particle creation from polygon mesh volumes and mathematical algorithms
- Particle partitioning tools for caching multiple versions of the same simulation to combine into high-density particle clouds
- Particle repopulation for render-time conversion of low-count simulations into high-count particle clouds
Major Features Overview
The Krakatoa renderer is CPU-based, highly optimized and heavily multi-threaded. It does not require the presence of a GPU and can be used successfully on any hardware running Windows or Linux including laptops and render nodes without dedicated high-end graphics accelerators.
Krakatoa's memory footprint adapts dynamically to the requested features, with a minimum memory usage of 26 bytes per particle.
Krakatoa supports volumetric and additive particle shading and allows the mixing of the two modes. The volumetric shading includes per-particle control over Color, Density, Emission and Absorption. The Density controls for the lighting and shading calculations can be decoupled to provide higher control over the final results.
Krakatoa features both Particle (aka Point) rendering and Voxel rendering modes.
Self-shadowing and shadow casting from and onto matte (holdout) geometry objects are supported, including mesh and DTEX-based holdouts. The basic Maya light sources (Point, Spot, Directional) are supported.
Krakatoa features integrated Motion Blur and Depth Of Field camera effects.
Render-time particle multiplication allows the creation of more particles than the original source provided.
Krakatoa MY supports both native Maya Particles and nParticles; external particle sources loaded from disk via the PRT Loaderobject; procedurally generated particles from geometry volumes via the PRT Volume object; and fractal-based distributions via thePRT Fractal object.
Currently supported external particle file formats are Thinkbox' PRT file sequences, RealFlow BIN file sequences, and ASCII Comma-Separated Values CSV sequences.
Krakatoa MY includes a function for saving particle data to PRT files that can be used in custom scripts. It ships with a dedicatedPRT Saving/Partitioning scripted tool for generating multiple wedges of the same particle system to increase the final particle count or for sharing data with the other implementations of Krakatoa.
Krakatoa MY provides several dedicated scene objects:
The PRT Loader object can be used to load one or more external file sequences. It exposes controls to define which sequences will be used at render time and which will be shown in the viewports, as well as particle percentage and particle limit controls, various loading and display methods.
The PRT Loader allows for particle retiming using offset and animation curve controls. It can clamp the frame range using custom start and end frame and edge behaviors. The position interpolation can be performed either linearly using the current frame's velocity, or using cubic interpolation from the two nearest surrounding frames.
The PRT Volume object can be used to fill the volume of a polygon mesh with particles. This happens dynamically at render time and can also be previewed interactively in the viewports.
The PRT Volume provides the option to distribute particles within a range from the geometry surface.
Normal vectors are automatically generated for all particles from the nearest geometry surface.
The PRT Fractal object can be used to create procedural fractal particle distributions based on a random seed, iterations control and several animatable parameters.
Particle Channel Modifiers
Using Maya's Extra Attributes, Krakatoa exposes several "modifiers" to perform some basic channel operations on any valid particle source usable to the renderer.
These modifiers include the setting of a Float or Vector Channel to a new value, the Scaling of an existing Channel by a Scalar factor, the Copying of one Channel into another, the assigning of a Maya Material shade tree to a particle cloud, and the Repopulation of a particle system using Krakatoa's render-time particle multiplication algorithm.
The modifiers are added, reordered and removed using a dedicated Krakatoa Modifier Editor tool accessible from the Krakatoa shelf.
While these modifiers do not cover all aspects of what the more advanced Magma channel editing system found in Krakatoa MX can do, they will let the user perform many of the typical basic operations. A full-featured node-based channel editor is in the works and will be available in a point release in the future.
Specifications & Licensing
The render license for Krakatoa is so you can push your renders to the farm using Krakatoa, it's like a Mental Ray or Vray license on the farm. Krakatoa is a plugin that has it's own render engine that works with whatever else the customer is trying to use. Someone could use Krakatoa Render w/MR or VR. That said because Krakatoa renders so efficiently customers typically do not need every node to have a license. Our largest clients who have 1000s of DL nodes and also use Krakatoa only have about 40 Krakatoa-Render licenses. If you are looking at a render license I would suggest you test whatever volume you would like first for free to determine exactly how many you can use. Because Krakatoa can render so much data if you have a lot of nodes running it the farm bandwidth can quickly become saturated.
Krakatoa uses a floating license modal for all slaves. Since floating licenses are not machine specific, instances of the Slave render management software may run on workstations, the farm, or any computer on the local network. Each license allows one individual instance of Slave to render at a time. This allows rendering to be done on artist workstations while idle or on Amazon EC2 instances while those workstations are in use, assuming the license on the render software (3D Studio Max, Maya, Blender) allows this.
Krakatoa ships with Windows, Linux, and Mac OSX versions of the FLEXnet license manager. The license server applications are extremely lightweight, so you just need to choose a machine that is reliable and is rarely taken offline.
- Windows (only the 32 bit binaries are shipped, but these work fine on 32 and 64 bit)
- Windows 2000
- Windows XP
- Windows 7
- Windows 2000 Server
- Windows 2003 Server
- Windows 2008 Server
- Linux (32 and 64 bit)
- Red Hat
- Mac OSX (Intel and PPC)
- Snow Leopard
Krakatoa MY Licensing
By default, Krakatoa for Maya uses FlexNet to distribute floating "krakatoa-maya" and "krakatoa-render" licenses.
The license manager is compatible with the licensing management of Maya itself, but requires a separateThinkbox license file and the thinkbox daemon.
Please consult the Thinkbox Installation Guide for details.
License Types and Behavior
"krakatoa-maya" Workstation License
A "krakatoa-maya" workstation license allows the interactive use of Krakatoa inside of Maya, including the interactive rendering, PRT files saving, and Maya Batch background rendering within Maya.
No additional "krakatoa-render" license is needed in workstation mode.
This workstation license is Maya-specific and is not compatible with Krakatoa MX or Krakatoa SR licenses.
It is possible to request a "krakatoa-maya" license as node-locked, but this is not recommended. A node-locked license can only be used on a single machine and cannot be shared between workstations.
"krakatoa-render" Network Rendering License
A "krakatoa-render" network rendering license allows the rendering with Maya Batch outside of Maya, typically on network render nodes controlled by a network manager like Autodesk Backburner or Thinkbox Deadline.
The "krakatoa-render" license is universal and compatible with Krakatoa SR and with Krakatoa MX in network rendering mode.
In addition to acquiring a "krakatoa-render" floating license from the license manager, when running in network rendering mode,Krakatoa MY will also check whether a "krakatoa-maya" license line exists in the license file, but will NOT acquire one. In other words, a "krakatoa-maya" license must have been purchased for the "krakatoa-render" licenses to work with Maya network rendering, but it will not be checked out (used up). Thus, you can have one workstation and ten network licenses and the latter will function even if the one workstation license is currently in use. You cannot purchase ten network licenses without a workstation license and use Krakatoa MY.
License Acquisition And Release
A "krakatoa-maya" workstation license is acquired when the Krakatoa renderer is first used inside of Maya to render an image, or when the PRT Saver utility is used to save PRT files.
The license will be held for the complete Maya session and returned when the Maya application is closed.
Installing And Setting Up The License Manager
The licensing tools are currently NOT included in the Krakatoa MY installer. They can be downloaded from here. This download includes the thinkbox daemon.
For the license manager installation instructions on Microsoft Windows, please see here.
For the license manager installation instructions on Linux, please see here.
Upgrades / Support
RFX is available for all your support needs. Call us at 323-962-7400
Krakatoa is designed to work with:
- Autodesk 3DS Max
- Autodesk Maya