What Is Stoke MX 2?
The Stoke MX 2 package includes:
- An easy to use Particle Simulator for 3ds Max designed to simplify and accelerate the creation of high volume particle clouds driven by Velocity Fields (originally available as Stoke MX 1.0). Supported Velocity Field sources include FumeFX simulations and Stoke Velocity Fields, other particle animations fromParticle Flow, Thinking Particles or external particle file sequences in PRT or RealFlow BIN formats, 3ds Max Force SpaceWarps etc.
- A set for poweful Field Manipulation tools enabling the creation and simulation of new Fields including Velocity Fields, the loading and saving of Field data using industry standard formats, the editing of existing fields and the integration of Field data with 3ds Max sub-systems like Particle Flow, MassFX, mCloth, Hair&Fur, Materials, most renderers, and more.
- The complete Genome toolset including added support for Stoke Field-related query operations, as well as new Loop nodes for iterative operations over vertices and faces.
Where Does It Fit In The Thinkbox Product Family?
- Stoke MX is based on Krakatoa, Magma and Ember core technologies.
- The Stoke Particle Simulator is a valid Krakatoa MX rendering particle source.
- The Stoke Particle Simulator supports all Krakatoa MX PRT objects as "Distribution Sources" to seed dynamic particles based on other particles.
- The Stoke Particle Simulator accepts Krakatoa Magma and Krakatoa Delete modifiers for channel post-processing and particle culling.
- The Stoke Particle Simulator produces PRT file sequences that can be loaded with Krakatoa PRT Loaders.
- The Stoke Particle Simulator particles can be meshed directly using the FROST particle mesher (v1.3.5 or higher).
- All Stoke Fields can be sampled to particles and rendered in Krakatoa or meshed in FROST.
Where Does It Fit Inside 3ds Max?
- The Stoke Particle Simulator is a much faster alternative to FumeFX particle advection using Particle Flow and FumeFX Follow.
- The Stoke Particle Simulator can use all native and 3rd party 3ds Max particles to advect new particles and produce higher-resolution simulations.
- Stoke Fields can be used to control Particle Flow simulations via a dedicated Stoke Field Follow operator and can even trigger events using Selection Fields.
- Stoke Fields can be converted to Forces and affect any 3ds Max sub-systems supporting Force SpaceWarps including native and 3rd party particle systems, MassFX, mCloth, Hair&Fur etc.
- Stoke Fields can be converted to 3D procedural texture maps to integrate with all 3ds Max renderers that support the native 3ds Max materials (excluding mental ray and iRay which use their own independent shaders)
- Stoke Fields can be rendered directly in all 3ds Max renderers that support the 3ds Max Atmospheric effects sub-system using a dedicated Stoke Atmospheric Effect. These renderers include Default Scanline and V-Ray. (mental ray and iRay are not supported due to their incompatible shading system)
What Is New In Stoke MX 2.0 Compared To Stoke MX 1.0?
What Versions Of 3ds Max Does It Support?
- Stoke MX 2 supports only 3ds Max 2013, 3ds Max 2014, 3ds Max 2015 and 3ds Max 2016 64 bit. Earlier versions cannot be supported due to a limitation imposed by the OpenVDB libraries which use a version of the Intel TBB.DLL that is incompatible with the old library version used by 3ds Max 2012.
- Stoke MX 1 supports both 32 bit and 64 bit versions of 3ds Max 2010, 3ds Max 2011, 3ds Max 2012, 3ds Max 2013, plus 3ds Max 2014 which is 64 bit only. The updated Stoke 2 licenses support running Stoke 1. If you are running 3ds Max 2012 or earlier, you cannot update your Stoke 1 and/or Genome installations to Stoke 2. We apologize for the inconvenience!
A Stoke Field Example
Screenshot courtesy of Torbjorn Olsson.
A Stoke Particle Simulator Example
Video courtesy of Torbjorn Olsson
Stoke Particle Simulator Benefits
Simplicity vs Flexibility
- The Stoke Particle Simulator was specifically designed to be as streamlined and simple to use as possible while not sacrificing any of the flexibility typical of Thinkbox solutions like Krakatoa or Frost.
- The Stoke Particle Simulator provides a highly streamlined User Interface and can be operated with just a few clicks. It is extremely easy to learn and use.
- At the same time Stoke MX was designed to interoperate with the majority of the Thinkbox products including Krakatoa and Frost, and in version 2 includes the complete Genome and Ember toolsets fully integrated in one package, including their powerful Magma-based toosets.
- Stoke MX' power can be expanded by using it together with the other products, but they are not required for the solving of most typical particle reflowing cases.
- Stoke MX was specifically designed to accelerate the generation of high-count particle clouds driven by fluid simulation data, in particular FumeFX data.
- Stoke MX is multi-threaded and uses some other acceleration approaches to simplify the iterative design process.
- Stoke MX implements an asynchronous PRT caching mechanism which can offset the particle saving time and improve interactivity to a very high extent.
- Stoke MX is even faster when sampling data from the emitter - in fact, sampling additional channels adds no measurable overhead. In such cases, Stoke MX is nearly 3 times faster than alternative solutions in simulation performance alone.
- Stoke MX can accelerate particle creation indirectly by helping increase the count of existing low-count simulations. The velocities of the original simulation can be used to drive Stoke particles to produce similar motion. In these cases, Stoke MX can be up to 7 times faster than simulating the actual high-count cloud with the original system (measured on an 8 core machine)
- When simulating AND saving particles to PRTs, Stoke MX can be an order of magnitude faster than alternative solutions thanks to its asynchronous disk caching system. For example, emitting one million particles over 100 frames in Particle Flow and saving to disk using Krakatoa partitioning takes 160 seconds, while Stoke MX with 2GB memory cache finishes the simulation and is ready to play back interactively in only 7.5 seconds, or over 21 times faster! The actual saving to disk is performed by background threads and does not prevent the user from continuing work on the scene.
- Like most other Thinkbox Software products, Stoke MX uses a hybrid C++/MAXScript architecture.
- All particle creation and simulation operations are implemented in C++ using high-performance libraries.
- These operations are exposed to MAXScript using MAXScript Interfaces.
- The Stoke MX User Interfaces and the actual simulation processes are implemented in MAXScript and can be modified, expanded, studied and used as a starting point to develop custom simulation tools.
Stoke MX 2.0 Major Features
- Stoke MX can create particles from one or more geometry objects by seeding random points on their surfaces.
- This is similar to using a PFlow Position Object operator, but is faster and has some additional useful options:
- Any geometry channels typically available to a Genome modifier are also provided as optional channels for the new particles and can be acquired without any overhead.
- The birth from geometry surface can be set to emit from the whole object, from selected faces or by respecting the Vertex Soft Selection, thus producing gradual variation in the density.
- Stoke MX can also emit particles from mesh Vertices or Edges, optionally respecting the Vertex Soft-Selection.
- Stoke MX can emit directly from mesh Volumes. This is similar to the PFlow Position Object in Volume mode, but many times faster and based on the same approach as the Krakatoa PRT Volume object.
- Stoke MX can create new particles from existing particles in Krakatoa PRT objects including PRT Loaders, PRT Volumes, PRT Surfaces, PRT Makers, PRT Hairs and so on.
- The existing particle cloud is used as an array of "seeds" which are selected randomly to spawn new particles if the birth rate is lower than the total count of seed particles.
- If the birth rate is higher, multiple particles will be created from each seed, but will be jittered in time and space to produce slightly randomized samples that advect differently.
- Optionally, each Emission object that provides seeding particles can be set to emit exactly one new particle per seed particle via an Auto-Rate mode. This can be used to exactly replicate a PRT object while turning it into a dynamic, simulated cloud. For example, an otherwise static PRT Volume or PRT Maker can be turned into an animated cloud by affecting it with velocity fields from Force Space Warps or FumeFX simulations.
- When emitting from a PRT Loader with valid ID and Age channels in Auto-Rate mode, Stoke MX can emit particles only from newborn seed particles, thus replicating the particle distribution of the source system over time and producing exactly the same particle count over time.
- Stoke MX also supports direct emission from 3ds Max Particle Systems including Particle Flow and Thinking Particles without intermediate saving.
- Using the existing family of PRT objects shipping with Krakatoa, Stoke MX can indirectly emit from Mesh Volumes, Mesh Surfaces, Splines, Max Hair, HairFarm and Ornatrix hair splines, PRT Maker fractals and procedural particle desitributions, FumeFX Fire and Smoke and even 3rd party external sources thanks to the PRT Source object.
- Particles saved to PRT, BIN or CSV file format and loaded by a PRT Loader can also be used as Stoke seeds.
- The Birth settings allow the creation of particles within a specified time interval.
- Any number of Distribution Source objects can be specified .
- The Birth Rate can be specified per Distribution Source as absolute values per Frame, as total Rate for the whole simulation using the per-object values to define the distribution ratios, the Total Rate can be split equally between the active sources, or it can be used as absolute value for every object.
- Both the global Rate and the per-object Rates can be keyframed to change over time.
- Stoke MX supports 3ds Max Force SpaceWarps as Velocity Fields - other than 3ds Max particle systems, the values of the Space Warp are taken as absolute velocity value and not as a force to accelerate the particle. This means that no additioanl Drag Force is necessary to prevent the particle from getting too fast over time. The result is good looking motion, every time.
- Stoke MX supports FumeFX simulation objects as Velocity Fields directly. Simply pick a FumeFX simulation grid and your particles will follow it.
- Stoke MX supports Thinkbox' upcoming Ember simulation objects as Velocity Fields sources. Ember is the ultimate Field Manipulation Toolkit for 3ds Max and can be used to create Velocity data for Stoke from all kinds of sources including texture maps, moving particles, geometry objects, FumeFX simulations and any combination thereof.
- Stoke MX supports particles as Velocity Fields. All 3ds Max particle systems including Particle Flow, Thinking Particles, legacy particles and all Krakatoa PRT Objects capable of providing a Velocity channel are supported.
- Stoke MX supports the mixing of multiple Velocity Fields. This can also be achieved through Ember for added flexibility.
- The Velocity Field influence can be scaled by a user-defined factor which can be animated over time individually for each source.
Particle Life and Death
- The Particle Age and LifeSpan will be set at birth for all particles.
- The Particles with Age exceeding the LifeSpan value can be optionally deleted during the simulation.
- If the "dead" particles are not removed during the simulation, Krakatoa Magma and Delete modifiers can be used to perform the deleting "in post". This also allows the changing of the LifeSpan procedurally after the fact by either extending it for all particles, or scaling it proportionally.
- The Age and LifeSpan channels can be saved to PRT and are expressed in floating point time in seconds.
- An optional NormalizedAge channel (Age divided by LifeSpan) is also available in Stoke MX 2 to reduce disk space usage while providing similar controls.
- Other particle channels like Color, Density, Emission and so on can be easily modified using the Age and LifeSpan via a Krakatoa Magma modifier.
- When a particle is born in Stoke MX, it will inherit the channels of the "seed" particle.
- Stoke MX provides a list of all channels found in the sources with checkboxes to define which channels to save to PRT files and which to ignore.
- Thanks to this, it is possible to turn a static particle system (for example a PRT Volume, PRT Surfrace, PRT Maker etc.) into a dynamic Stoke MX particle system by emitting one particle for every seed particle.
- This also means that Magma modifiers that operate on the seed particles can be applied to the animated Stoke MX particles and will find the same channels and generally continue working as expected.
- If the Position of the seed particles was saved in a mapping coordinates channel, this channel will be inherited by the Stoke particles at birth but will not change during the animation, thus allowsing for "sticky" textures that follow the dynamically simulated Stoke particles.
- In Stoke MX 2, previously hard-coded channels like Velocity, ID, Age and LifeSpan can now be omitted when saving, and the bit depth of each float or vector channel can be set explicitly to save disk space. Most channels now default to 16 bit instead of 32 bit.
- Stoke MX supports a fast memory cache coupled with a write-through asynchronois disk cache which uses regular PRT files and can become the final output if desired (Beta 3 and higher).
- Memory Caching allows the storage of an animated sequence in RAM and enables very fast viewport playback and direct rendering in Krakatoa.
- Disk Caching creates a PRT sequence which can be loaded dynamically by the memory cache within specified memory limits, or via a regular Krakatoa PRT Loader for editing, playback and rendering.
- The Stoke MX object accepts Krakatoa Magma and Delete modifiers and can be modified directly based on the particle channels.
- The Playback can be tweaked using the same Playback Graph feature as the one found in the Krakatoa PRT Loader.
- Cubic sub-frame interpolation is supported for smooth retiming even with extremely sparse settings.
- Memory Caching can be set to store every Nth frame to save memory. Even storing every 10th frame allows for very plausible playback when Interpolation is on.
- Playing back past the last cached frame will interpolate the positions further based on the last known positions and velocities.
- The Memory Cache playback can display particles as Large Dots or Lines using Velocity or any other available Vector channel. Vectors can be displayed as raw data or as normalized vectors, with optional Scaling factor.
- The particle Color can be set using the Color, Velocity, or any other Vector channel. Advanced control is available via the Krakatoa Magma modifier.
- A history-independent field object.
- Uses Magma node-based logic to create fields from mathematical functions, texture maps, sampled particle data, sampled field data from other sources, sampled geometry data, mesh LevelSet data and more.
- A history-dependent field simulator object.
- Uses initial and per-step Magma node-based logic to create a Velocity field, as well as arbitrary Vector and Scalar Fields.
- Advects all Vector and Scalar Fields by the Velocity field.
- Caches data asynchronously using OpenVDB file sequences.
- Loads external field data from FumeFX .FXD, OpenVDB .VDB, or Field3D .F3D files.
- Can be used as a source of field data by any other Field-driven component of Stoke, including Stoke Field Magma, Stoke Field Simulator, Stoke Field Texmap texture, Stoke Field Follow Particle Flow operator, Stoke Field Force SpaceWarp etc.
- Converts field data to a point cloud usable by Krakatoa MX and FROST.
- Uses a Scalar Field (typically Density) to determine where to seed a point sample.
- The points inherits any available Vector and Scalar fields like Velocity, Color etc.
- Converts a selected Vectror Field to a Force Field.
- Can be used anywhere in 3ds Max where a Force SpaceWarp is accepted, including all particle systems, Hair&Fur, MassFX, mCloth etc.
- Transfers Vector and Scalar fields into the Particle Flow particle simulator of 3ds Max.
- Can fully replace a channel, or blend the incoming data with existing data.
- Can control the logical flow of Particle Flow by setting the Selection channel to send particles to other events.
- Converts a selected Vector or Scalar field to an RGB procedural 3D texture map.
- When the source Field is a Scalar, a grayscale value will be created.
- Can be used to pipe File data into the 3ds Max material system, or any other 3ds Max objects accepting texture maps as input (e.g. Displacement and Vol.Select modifiers, V-Ray Atmosphere Gizmo etc.)
- Converts a Mesh object to a Field on the 3ds Max Modifier Stack.
- Can create a LevelSet or a Density field, with an optional Closest Point field.
- Can be rendered directly as a Density source using the Stoke Atmospheric effect, or used as a source in the Stoke Field Magma and Simulator objects.
- Adjusts the viewport display of any underlying fields.
- Allows Field Resampling, samples Reduction, Scalar Data Field Clamping etc.
- In 3ds Max 2015 and higher, adds control over the display point size in the viewports.
- Removes the Divergence from a Velocity field coming up the stack.
- Renders a Density field provided by any valid Stoke Field source in any renderer that supports 3ds Max Atmospheric effects (incl. Default Scanline, finalRender, V-Ray).
- Supports Color, Emission and Absorption fields for control over the shading of the atmospheric effect.
- Integrates with scene geometry and lights, can cast and receive atmpsheric shadows, interacts with raytraced reflections and refractions.
- Provides a spreadsheet view of all available Fields in a Stoke Field source object.
- Allows the sampling of field data at specified points in 3D space.
- Any object position, or mesh or spline vertices can be used as sampling points.
- Results can be displayed in a spreadsheet and/or to the viewports.
- Exports Stoke Field data from any supported source to FumeFX .FXD, Field3D .F3D, or OpenVDB .VDB files.