emFluid

(version
Last edited on May 26th, 2017)

Introduction

Introduction

This plugin for Softimage|XSI's ICE is a highly versatile tool for manipulating 3D grids.
It contains, amongst many things, a fluid solver for creating fire and smoke effects.

On the emFluid5 web page you can:

  • download the demo version of this plugin.
  • download demo and tutorial scenes.
  • purchase the full version of this plugin.

Note: If you feel that something is not well explained (or not explained at all) then please write me a short e-mail. I will then update the documentation and/or make a demo scene as quickly as possible.

Tip: Check out the following sites for more information, videos and discussions:
si-community.com - the unofficial Softimage community
softimage.tv - the Softimage user based video library

Installation

Please read the following before installing the plugin:

  • Make sure you have the most recent emTools installed!

  • If you have a version 5.x or higher of this plugin already installed (or perhaps a beta version) then you must uninstall it first.
    To do that go into Softimage|XSI's "Plugin Manager", right-click on the plugin and choose "Uninstall Addon".

Installing the addon:

  1. Open the "Plugin Manager". It is located under "File -> Plugin Manager":

  2. As mentioned above: please remove / uninstall any previous version of this plugin. This is really important, because if Softimage finds the same plugin twice then one (maybe even both) might not work.

  3. To install the plugin into the user directory simply right-click onto the folder "User Root" and choose "Install .xsiaddon...":

  4. A browser dialogue will be displayed: go to where you copied the .xsiaddon file, select it and click on "OK". The addon is then automatically installed.

  5. Close Softimage. The plugin is now fully installed and ready to be used. For more information concerning addons and how to install / uninstall them please check the chapter "Working with Addons" in the Softimage documentation.

Demo Version Restrictions

If you are using the full version of this plug-in then you can skip this chapter. If not, please read the following list of restrictions of the demo version:

  • The parameter "Simulation Start Frame" has no effect: the fluid buffer simulation always begins at frame 3.

  • After 200 frames the fluid buffers are cleared and not simulated any more, so you must start playback again from the first frame.

  • The render resolution of the emFluid5 ICE Volume Renderer is limited to 800x450.

Quick Setups

There are two ways to quickly get started with emFluid5:

  1. Start with one of the demo scenes. All demo scenes have setups that can be used as a basis for some own and more elaborate setups.

  2. Use one of the presets (i.e. "explode me") compounds.
    These presets are designed as starting points for many different setups.

The Compounds

The Compounds

All the emFluid5 compounds can be accessed in the ICE Tree viewer.

They are located in "Task -> Mootzoid - emFluid5".

 

Tip(1): all compounds contain the word "f5" in their names, so simply enter "f5" in the search field to see all emFluid5 compounds.

 

Tip(2): nearly all compounds come in two "flavors": a simple one and a more elaborate one. If at some point you feel that you need more control and/or more parameters then just enter any emFluid5 compound. There you will, in most cases, find an additional compound with all available parameters.

Core

The core compounds are the basic building blocks of any emFluid setup.
Every setup must contain one core and at least one FBox and one Grid.

 

Core

Core

This is the heart of emFluid5. It takes the instructions delivered from all the other nodes connected to it and implements them.

  • The Input Port(s) and Parameter(s):

    • Enable
      Enables/disables the core.
    • Verbose
      Outputs information into the history, such as memory usage and calculation times.

    • Simulation

      • Start Frame
        Marks the beginning of the simulation.
        This should have a value greater than the scene's start frame.
      • Evaluation
        The evaluation mode of the FBoxes' and grids' operator stacks.
      • Multiprocessing
        Several modes allow advanced users the option to determine how multiple processors are allocated:
        • Off
          No multiprocessing.
        • Per FBox
          The array of FBoxes is processed in singlethreaded mode (= one after another), however the grids are multithreaded.
          This is the default mode.
        • Per FBox Array
          The FBoxes are processed simultaneously, however the grids of each FBox are processed in singlethreaded mode.
      • Allow Abortion through L+R Ctrl Keys
        When this option is enabled then the user can abort the simulation by pressing the left and right control keys simultaneously.
        Note: one must keep the keys pressed until the simulation stops.
    • Memory Limit

      • Mode
        User may choose to receive a warning or disable the simulation when a threshold memory limit is passed.
        The default behavior consists of logging a warning when the memory usage exceeds the memory limit, but without aborting the simulation.
      • Megabytes
        The memory limit, in megabytes.
    • Debug

      • Show Memory Usage in Viewport
        Display the core's current memory usage in the viewport. This can be very useful to determine when a simulation exceeds machine resources.
      • Detect and report NaNs and INFs
        Detects and reports NaNs (= corrupt floating point numbers) and INFs (positive or negative infinite values).
        Certain setups can result in overflows or illegal calculations (e.g. a division by zero). Enabling this feature can help find the cause.
      • On Op Error
        User may choose how errors are logged and how the core shall behave
    • FBoxes

      • FBox 0
        Plug one or more FBox compounds in here.
    • Grids

      • Grid 0
        Plug one or more Grid compounds in here.
    • Post Grid Processing

  • The Output Port(s):

    • Execute
      Plug this into an execute port.

 

FBox

FBox

An FBox (or "fluid box") represents an area of space which is divided up into voxels. It effectively is the region which is simulated. The size of an FBox and the size of the cells of grids using that FBox require computer memory to be set aside - the larger the FBox, or the smaller and therefore more numerous the cells contained in it, the more computer memory may potentially be required.
To reduce the requirements on memory and processing time a number of optimizations are implemented, however users should be mindful of the size and resolution of the FBoxes used and whenever possible keep them at a minimum. Two corner objects (usually nulls) are used to define the corners of the box in global space.
Multiple FBoxes are allowed, and each FBox can control the voxelization of multiple grids.
Each FBox has one or more grids associated with it. To use an analogy from compositing one could think of the FBox as the "project" and the grids as the "layers". The FBox/project defines the global settings and the grids/layers define the content.

  • The Input Port(s) and Parameter(s):

    • Active
      Enables/disables the FBox, its grids and its operator stack.
      A disabled FBox does not use any memory.

    • Main

      • Box-Type
        Choosing a manual box type sets aside the complete area of the FBox for simulation from the start. If the box type is set to automatic with the box as a limit the system will dynamically adjust the area actually used in simulation but never exceed the area defined by the FBox. When set to fully automatic the system will allocate as large an area required without limits.
        • Manual
          The size of the FBox is defined by the parameters corner 1/2.
        • Automatic (Box as Limit)
          The size of the FBox is calculated automatically based on the contents of the grids, but it will never exceed the boundaries of the manual FBox.
        • Automatic (no Limit)
          The size of the FBox is calculated automatically based on the contents of the grids. Note: using this mode can result in very large FBoxes!
          The "no shrink" modes make the dynamically adjusted area never get smaller.
      • Cell Size
        Determines how finely an FBox is divided into voxels. A smaller cell size means a FBox has more resolution and detail, but a larger number of voxels and therefore a greater demand on processing time and memory usage. One of the great strengths of emFluid5 is that otherwise identical simulations with different grid sizes behave similarly. Furthermore, this cell size can be adjusted in realtime and even keyframed.
        It should be noted that values below the recommended range of 0.25 may result in protracted calculation times or exceeded memory use, and in general settings on values outside these ranges may not be reflected as accurately when the fluid resolution is changed.
      • Tempo
        Another very unusual and powerful feature, the tempo parameter allows the user to adjust the internal "timing" of the simulation dynamically. Low values represent slower motions, while higher values increase the "speed" of motion in the simulation. This can be used for dynamic retiming of live simulations, for example an explosion simulation might require very fast motion initially which is then slowed down over time. It can even be set to zero to halt the simulation.
      • Substeps
        This parameter represents the accuracy of simulation. Higher substeps require more processing time but divide the simulation into finer calculations.
        The amount of substeps is an animatable value. This can be extremely useful in certain cases, for example when dealing with explosions: one could set the substeps equal 10 for the beginning of the simulation and then, after say 30 or 40 frames, set it back to 1. That way the first second (which is generally the crucial part of an explosion) gets simulated with a higher accuracy.
        Note: these substeps are independent of the point cloud's subframe sampling. This means that if for example you set the substeps equal 5 and the point cloud's subframe sampling equal 5 that would result in a total of 25 simulation steps per second of simulation and possibly in unnecessary long simulation times.
      • Show FBox and Grid Corners
        Display the FBox and the internal grid corners in the viewport.
      • Corner 1/2
        The two corners that define the FBox.
    • Growth

      • Amount
        Automatic adjustment of fluid box sizes must take into account which cells in its grids contain values and scale accordingly. These parameters modify the rate at which a FBox may adjust it's size, the scale criteria used, and whether FBoxes adjust their size to fit all velocity fields, which tend to extend much further than other grids.
      • Consider Velocity
        If enabled then the velocity contained in velocity grids is analyzed and the growth is corrected accordingly.
        This is especially useful when using extreme velocity values.
    • Resume Simulation
      While emFluid contains many options for caching files which can be controlled by the user there is also an internal caching setup that can be used to resume simulations: instead of needing to re-simulate the entire simulation from the beginning one can resume the simulation from the last simulated frame.

      • Write
        If enabled then the core caches the internal grids to disk in order to be able to resume the simulation from that point.
      • Resume
        If enabled then the core does not perform any calculations until it reaches the frame with a valid resume cache file.
        Note that one can have both, "Write" and "Resume", enabled at the same time.
    • Operators

      • Operator 0
        Plug as many operators in here as you wish.
  • The Output Port(s):

    • FBox
      Plug this into a free "FBox" port of the core compound.

 

FBox Adv

FBox Adv

This is the "big brother" of the FBox compound.
In order to access its parameters one must either enter or explode the FBox compound.

The additional FBox input ports:

  • Growth

    • Unit
      The unit of the growth's amount.
  • Borders

    • Close
      The borders of the FBox can be open or closed. When they are closed (and when using a fluid setup) then the borders behave as if they were solid walls.
  • Resume Simulation

    • L+R Shift Keys writes Cache
      If enabled then one can, at any moment, write a resume cache file by simultaneously pressing the left and right shift keys. Note that this option works regardless if "Resume" is enabled or not.
    • Path
      The path for the resume cache files.
    • Subfolder
      The subfolder for the resume cache files.
  • Visualization

    • Position Offset X / Y / Z
      A global position offset in x, y and z. The units are in FBoxes width, height and depth respectively.

 

Grid

Grid

A grid is the primary "working element" of an emFluid5 simulation. It represents an area of space which has been divided into cells, as determined by it's FBox. Each cell of the grid is a voxel, and it can contain scalar or vector data. Scalar cells contain a single numeric value, while vector cells contain a set of 3 values which can represent colors, UVWs, velocity etc.

How the values of a grid are used is up to the artist - they can be used to adjust and interact with values in another grid, or sent to the viewport or shaders for rendering, they can be used to move particles or points on geometry, or anything else.

This open nature of emFluid5 is a great strength - fluid simulations are not the extent of it's usefulness. For instance, when used in conjunction with tools like Softimage's internal polygonization, emTopolizer, emPolygonizer, etc. artists can use grids to model (or grow) organic shapes.

  • The Input Port(s) and Parameter(s):

    • Main

      • Active
        Enables/disables the grid.
        Note: a disabled grid's operator stack is not evaluated and the grid does not use any memory.
      • Grid ID
        Every grid is given an ID, which acts as a unique identifier as well as determines if the grid contents are scalar or vector. It is important to understand that while some grid IDs are given descriptive names (such as "heat") this is just a name - how the grid is used is up to the artist. The descriptive names are simply there as a convenience.
        The only functional differences between the different identifiers in the list are their type: grids with names which contain a range of numbers (such as 000-002) are vector, the others are scalar.
      • Bit Depth
        The amount of memory set aside for the values of each cell in the grid. Float (32-bit) values are twice as precise as half-float (16-bit) but also take up twice as much memory. Float values are typically used where maximum precision is necessary, for instance most vector fields are likely to benefit from being float.
        When speed and memory optimization is necessary (such as large scale simulations for films) it is wise for artists to consider making values half-float where possible.
        Signed Integer (8-bit) cells are even better in terms of performance but cannot contain fractional (decimal) values or exceed the range of -128 to 127.
    • Behavior

      • Clear Border Cells
        Sets the border cells equal zero once the operator stack has been processed.
        It is recommended to enable this with fluid setups.
      • Discard Content on Resolution Change
        not yet documented.

      • Value Range

        • Enable (i.e. affect automatic FBox)
          Tells the core to consider the grid's content when calculating the automatic FBox.
        • Equilibrium Epsilon
          The tolerance of the grid's "zero range", or equilibrium. Certain calculations (e.g. automatic FBox) need to analyze the grid content and determine whether cells are empty or not. Cells with an absolute value smaller than the "Equilibrium Epsilon" will considered to be empty.
    • Operators

      • Operator 0
        Plug as many operators in here as you wish.
  • The Output Port(s):

    • Grid
      Plug this into a free "Grid" port of the core compound.

 

Grid Obstacle

Grid Obstacle

  • The Input Port(s) and Parameter(s):

    • Main

      • Draw Obstacle
        not yet documented.
      • Use Obstacle Flags
        not yet documented.
      • Use Obstacle Normals
        not yet documented.
      • Use Obstacle Velocities
        not yet documented.
      • Scale Velocity
        not yet documented.
    • Behavior

      • Affect automatic FBox
        not yet documented.
      • Discard Content on Resolution Change
        not yet documented.
    • Misc

      • Show Obstacle Flags
        not yet documented.
      • Show Obstacle Normals
        not yet documented.
    • Inputs

      • In Name Polymesh 1
        not yet documented.
  • The Output Port(s):

    • Flag Obstacle Grid
      not yet documented.
    • Normal Obstacle Grid
      not yet documented.
    • Velocity Obstacle Grid
      not yet documented.

 

Grid Velocity

Grid Velocity

  • The Input Port(s) and Parameter(s):

    • Main

      • Active
        not yet documented.
      • Grid ID
        not yet documented.
      • Bit Depth
        not yet documented.
    • Behavior

      • Discard Content on Resolution Change
        not yet documented.

      • Value Range

        • Enable (i.e. affect automatic FBox)
          not yet documented.
        • Equilibrium Epsilon
          not yet documented.
    • Operators

      • Operator 0
        Plug as many operators in here as you wish.
  • The Output Port(s):

    • not yet documented.
      not yet documented.

 

Ops - Cache

 

The Operator "Load Grid"

Load Grid

Loads a grid contained in a cache file and replaces or combines it with the current grid content.

  • The Input Port(s) and Parameter(s):

    • Enable
      Enables the operator.

    • Main

      • Math Op
        Defines in what way the cache file's content is to be combined with the current grid content.
      • Amount
        The amount of the cache file's content to use.
      • Path
        The path of the cache file.
      • Filename
        The filename, padding and extension of the cache file.
      • Source Grid
        The ID of a grid contained in the cache file (or "Use Gridname", see next parameter).
      • Gridname
        The name of a grid contained in the cache file.
        This is only used if the previous parameter is set to "Use Gridname".
    • Misc

      • Interpolation
        The type of interpolation to use when the cache file's cell size differs from the grid's cell size.
      • Affect automatic FBox
        Considered this operator when calculating the automatic FBox.
  • The Output Port(s):

    • Grid Operator
      Plug this into a free operator port of a Grid compound.

 

The Operator "Load Grid Adv"

Load Grid Adv

Loads a grid contained in a cache file and replaces or combines it with the current grid content.
Furthermore the cache file grid's values can be rescaled and/or blurred before being combined with the current grid values.

  • The Input Port(s) and Parameter(s):

    • Enable
      Enables the operator.

    • Main

      • Math Op
        Defines in what way the cache file's content is to be combined with the current grid content.
      • Amount
        The amount of the cache file's content to use.
      • Path
        The path of the cache file.
      • Filename
        The filename, padding and extension of the cache file.
      • Source Grid
        The ID of a grid contained in the cache file (or "Use Gridname", see next parameter).
      • Gridname
        The name of a grid contained in the cache file.
        This is only used if the previous parameter is set to "Use Gridname".

      • Pre Math Mode Ops

        • Rescale

          • Enable
            Rescale the cache file's grid values before the math op.
          • Source Start
            Range start value.
          • Source End
            Range end value.
          • Target Start
            Range start value.
          • Target End
            Range end value.
          • Clamp
            Clamps the rescaled values to the target interval.
        • Blur

          • Enable
            Blur the cache file's grid values before the math op.
          • Amount
            The blur amount.
          • Iterations
            The number of iterations.
    • Misc

      • Interpolation
        The type of interpolation to use when the cache file's cell size differs from the grid's cell size.
      • Use Length
        Use the vector's length instead of the vector's components.
      • Affect automatic FBox
        Considered this operator when calculating the automatic FBox.
      • Use Time
        Make the operator time dependent ("per second").
  • The Output Port(s):

    • Grid Operator
      Plug this into a free operator port of a Grid compound.

 

The Operator "Load Grids"

Load Grids

This operator caches (reads) the grids that have a Tag Load Grid operator in their stack.

  • The Input Port(s) and Parameter(s):

    • Enable
      Enables the operator.

    • Main

      • Path
        The path of the cache files.
      • Filename
        The filename, padding and extension of the cache files.
    • Misc

      • Warn if Grid not in File
        Log a warning if a grid was not found in a cache file.
      • Use Override
        If enabled then a grid need not have a Tag Load Grid operator, i.e. the below override parameters are used instead.

      • Override Tag Load Grid

        • Math Op
          Defines in what way the cache file's content is to be combined with the grid content.
        • Interpolation
          The type of interpolation to use when the cache file's cell size differs from the grid's cell size.
        • Amount
          The amount of the cache file's content to use.
        • Clear before Math Op
          If enabled then the grids are cleared before performing the math op.
        • Mute all other Operators
          If enabled then all other grid operators are muted by this operator.
  • The Output Port(s):

    • FBox Operator
      Plug this into a free operator port of a FBox compound.

 

The Operator "Save Grids"

Save Grids

This FBox operator caches (writes) the grids that have a Tag Save Grid operator in their stack.

  • The Input Port(s) and Parameter(s):

    • Enable
      Enables the operator.

    • Main

      • Skip existing Files
        If enabled then existing cache files are skipped (i.e. not overwritten).
      • Path
        The path of the cache files.
      • Filename
        The filename, padding and extension of the cache files.
      • Write Half Float Values
        If enabled then values are saved as half float (if supported by the file format), resulting in smaller cache files.
      • Enable Compression and Filtering
        If enabled then the data is compressed and filtered before being cached, resulting in smaller cache files.
    • Misc

      • Override Tag Save Grid
        If enabled then a grid need not have a Tag Save Grid operator in order to be cached.
  • The Output Port(s):

    • FBox Operator
      Plug this into a free operator port of a FBox compound.

 

The Operator "Tag Load Grid"

Tag Load Grid

Tags a grid so that it gets cached by the Load Grids operator.

  • The Input Port(s) and Parameter(s):

    • Enable
      Enables the operator.

    • Main

      • Math Op
        Defines in what way the cache file's content is to be combined with the current grid content.
      • Interpolation
        The type of interpolation to use when the cache file's cell size differs from the grid's cell size.
      • Amount
        The amount of the cache file's content to use.
      • Clear before Math Op
        If enabled then the grid is cleared before performing the above math op.
      • Mute all other Operators
        If enabled then all other operators are muted by this operator.
  • The Output Port(s):

    • Grid Operator
      Plug this into a free operator port of a Grid compound.

 

The Operator "Tag Save Grid"

Tag Save Grid

This operator tags a grid so that it gets cached by the Save Grids operator.

  • The Input Port(s) and Parameter(s):

    • Tag Save Grid
      If enabled then the grid is cached to disk.
  • The Output Port(s):

    • Grid Operator
      Plug this into a free operator port of a Grid compound.

 

Ops - Data

 

The Operator "Allocate"

Allocate

Allocate, if necessary, memory for Data.

  • The Input Port(s) and Parameter(s):

    • Allocate Memory for Data
      If enabled then allocate memory (if not already allocated).
  • The Output Port(s):

    • Grid Operator
      Plug this into a free operator port of a Grid compound.

 

The Operator "Free"

Free

Free the grid's memory.

  • The Input Port(s) and Parameter(s):

    • Free Data Memory
      If enabled then free the memory used by the grid.
  • The Output Port(s):

    • Grid Operator
      Plug this into a free operator port of a Grid compound.

 

Ops - Debug

 

The Operator "Log Grid Info"

Log Grid Info

Logs information about the grid into the history log.

  • The Input Port(s) and Parameter(s):

    • Enable
      Enables the operator.

    • Main

      • Log General Information
        Log some general information about the grid (bit depth, resolution, ..).
      • Log min max and average Cell Values
        Log the minimum, maximum and average cell values.
  • The Output Port(s):

    • Grid Operator
      Plug this into a free operator port of a Grid compound.

 

Ops - Effects

 

The Operator "Blur"

Blur

Blurs the grid content.

  • The Input Port(s) and Parameter(s):

    • Enable
      Enables the operator.

    • Main

      • Amount
        The blur amount.
      • Iterations
        The number of iterations.
    • Misc

      • Use Time
        Make the operator time dependent ("per second").
  • The Output Port(s):

    • Grid Operator
      Plug this into a free operator port of a Grid compound.

 

The Operator "Border"

Border

Performs a user-defined operation on the grid's border cells. For example one could set the content of all border cells equal zero.

  • The Input Port(s) and Parameter(s):

    • Enable
      Enables the operator.

    • Main

      • Operation
        The operation to perform for the border.
  • The Output Port(s):

    • Grid Operator
      Plug this into a free operator port of a Grid compound.

 

The Operator "Clear"

Clear

Clears the grid data (= sets it equal the input value).

This operator is typically used to set an entire grid equal zero, but it can do more than that:
It can also be used to clear the grid with a gradient, something that can come quite handy when one needs to initialize vector grids like for example a texture coordinate grid or a color gradient grid.

  • The Input Port(s) and Parameter(s):

    • Enable
      Enables the operator.

    • Main

      • Value
        The value to use. This can be the grid's equilibrium, the custom value Tau or one of the more "fancy" things like the cell's position or index.
      • Tau
        The custom value Tau.
  • The Output Port(s):

    • Grid Operator
      Plug this into a free operator port of a Grid compound.

 

The Operator "Displace"

Displace

  • The Input Port(s) and Parameter(s):

    • Enable
      Enables the operator.

    • Main

      • Displacement
        not yet documented.
      • Amount
        not yet documented.
      • Octaves
        not yet documented.

      • Accuracy

        • Substeps
          not yet documented.
        • Use MacCormack
          not yet documented.
      • Noise (Main)

        • Seed
          not yet documented.
        • Octaves
          not yet documented.

        • Space and Time

          • Time Freq
            not yet documented.
          • Scale
            not yet documented.
      • Noise (Worley)

        • Inwards
          not yet documented.
        • Level In
          not yet documented.
        • Gamma
          not yet documented.
        • Level Out
          not yet documented.
    • Post Cutting-Out

      • Enable
        not yet documented.
      • Rescale-Maximum
        not yet documented.
  • The Output Port(s):

    • Grid Operator
      Plug this into a free operator port of a Grid compound.

 

The Operator "Flip"

Flip

Flips the grid along one of the world axis.

  • The Input Port(s) and Parameter(s):

    • Enable
      Enables the operator.

    • Main

      • Flip along X / Y / Z Axis
        Flip the grid content along the x / y / z axis.
  • The Output Port(s):

    • Grid Operator
      Plug this into a free operator port of a Grid compound.

 

The Operator "Levels"

Levels

Levels the grid values (= changes the contrast/gamma of the values).

  • The Input Port(s) and Parameter(s):

    • Enable
      Enables the operator.

    • Main

      • Amount
        Amount of leveling.

      • Grid's Value Range
        Note: it is only necessary to specify the absolute value range. For example if the grid's value range goes from -5 to +5 then set the value range parameters to 0 and 5.

        • Start
          The grid value's start range.
        • End
          The grid value's end range.
      • Contrast

        • Level In / Gamma / Level Out
          Use these parameters to modify the "contrast and gamma" of the cell values.
  • The Output Port(s):

    • Grid Operator
      Plug this into a free operator port of a Grid compound.

 

The Operator "Outlines"

Outlines

  • The Input Port(s) and Parameter(s):

    • Enable
      Enables the operator.

    • Main

      • Math Mode
        not yet documented.
      • Amount
        not yet documented.
      • Source Grid
        not yet documented.

      • Outline

        • Outline at
          not yet documented.
        • Thickness
          not yet documented.
        • Invert Result
          not yet documented.

        • Blur Result

          • Enable
            not yet documented.
          • Amount
            not yet documented.
          • Iterations
            not yet documented.
    • Misc

      • Use Time
        Make the operator time dependent ("per second").
  • The Output Port(s):

    • Grid Operator
      Plug this into a free operator port of a Grid compound.

 

The Operator "Twist"

Twist

  • The Input Port(s) and Parameter(s):

    • Enable
      Enables the operator.

    • Main

      • Amount
        not yet documented.
      • Start-End-Interpolation
        not yet documented.
    • Disc

      • Center
        not yet documented.
      • Axis
        not yet documented.

      • Start

        • Angle
          not yet documented.
        • Distance
          not yet documented.
        • Extrapolation
          not yet documented.
      • End

        • Angle
          not yet documented.
        • Distance
          not yet documented.
        • Extrapolation
          not yet documented.
      • Along Axis

        • Increment Angle
          not yet documented.

        • Falloff

          • Amount
            not yet documented.
          • Start
            not yet documented.
          • End
            not yet documented.
          • Mode
            not yet documented.
    • Misc

      • Interpolation
        not yet documented.
      • Use Time
        Make the operator time dependent ("per second").
  • The Output Port(s):

    • Grid Operator
      Plug this into a free operator port of a Grid compound.

 

Ops - Math

 

The Operator "Add"

Add

Add a value to a grid.

  • The Input Port(s) and Parameter(s):

    • Enable
      Enables the operator.

    • Main

      • Value
        The value to add to the grid cells:
        cell = cell + value.
    • Misc

      • Use Time
        Make the operator time dependent ("per second").
  • The Output Port(s):

    • Grid Operator
      Plug this into a free operator port of a Grid compound.

 

The Operator "Clamp"

Clamp

Clamp the grid values.

  • The Input Port(s) and Parameter(s):

    • Enable
      Enables the operator.

    • Main

      • Limit 1/2
        The two limits.
  • The Output Port(s):

    • Grid Operator
      Plug this into a free operator port of a Grid compound.

 

The Operator "Copy"

Copy

This operator copies the content of a source grid into this grid.
Note: it is possible to copy a 3D vector grid into a single grid (the length of the vectors of the source triple grid will be used).

  • The Input Port(s) and Parameter(s):

    • Enable
      Enables the operator.

    • Main

      • Amount
        The amount to copy.
        Note that you can also use values greater than one.
      • Source Grid
        The ID of the source grid.
    • Misc

      • Max Amount
        An upper limit for the amount to copy. This can be used to prevent the amount from exceeding a certain value when driving the parameter "Amount" by a Control compound.
      • Use Time
        Make the operator time dependent ("per second").
  • The Output Port(s):

    • Grid Operator
      Plug this into a free operator port of a Grid compound.

 

The Operator "Multiply"

Multiply

Multiply the grid by a value.

  • The Input Port(s) and Parameter(s):

    • Enable
      Enables the operator.

    • Main

      • Value
        The value with which the grid cells are multiplied:
        cell = cell * value.
    • Misc

      • Use Time and abs(Value)
        Make the operator time dependent ("per second").
        Furthermore the absolute value of "Value" will be used for the multiplications.
  • The Output Port(s):

    • Grid Operator
      Plug this into a free operator port of a Grid compound.

 

The Operator "Normalize"

Normalize

Normalize the vectors of a vector grid.

  • The Input Port(s) and Parameter(s):

    • Enable
      Enables the operator.

    • Main

      • Length
        All vectors will have this length.
    • Misc

      • On Error
        If a vector cannot be normalized then use this value instead.
  • The Output Port(s):

    • Grid Operator
      Plug this into a free operator port of a Grid compound.

 

The Operator "Normals"

Normals

Calculates the normal vectors (= gradient vectors) of a source grid and combines them with the current grid.

  • The Input Port(s) and Parameter(s):

    • Enable
      Enables the operator.

    • Main

      • Math Mode
        Defines in what way the normal vectors are to be combined with the current grid content.
      • Amount
        The amount (for the math mode).
      • Source Grid
        The ID of the source grid.
      • Normalize
        Normalize the vectors before combining them with the current grid.
      • Scale
        Scale the vectors before combining them with the current grid.
    • Misc

      • On Error
        If a normal vector could not be generated for a cell then use this vector instead.
      • Use Time
        Make the operator time dependent ("per second").
  • The Output Port(s):

    • Grid Operator
      Plug this into a free operator port of a Grid compound.

 

The Operator "Rescale"

Rescale

Rescales the grid values proportionally from one interval to another.

  • The Input Port(s) and Parameter(s):

    • Enable
      Enables the operator.

    • Main

      • Source Start
        Source range start value.
      • Source End
        Source range end value.
      • Target Start
        Target range start value.
      • Target End
        Target range end value.
      • Clamp
        Clamps the rescaled values to the target interval.
  • The Output Port(s):

    • Grid Operator
      Plug this into a free operator port of a Grid compound.

 

The Operator "Subtract"

Subtract

Subtract a value from the grid.

  • The Input Port(s) and Parameter(s):

    • Enable
      Enables the operator.

    • Main

      • Value
        The value to subtract from the grid cells:
        cell = cell - value.
    • Misc

      • Use Time
        Make the operator time dependent ("per second").
  • The Output Port(s):

    • Grid Operator
      Plug this into a free operator port of a Grid compound.

 

Ops - Paint

 

The Operator "Draw Grid"

Draw Grid

  • The Input Port(s) and Parameter(s):

    • Enable
      Enables the operator.
    • In Name
      not yet documented.

    • Main

      • Math Mode
        not yet documented.
      • Amount
        not yet documented.
      • Grid ID
        not yet documented.
    • Misc

      • Interpolation
        The type of interpolation to use when the source grid's cell size differs from the grid's cell size.
      • Use Length
        Use the vector's length instead of the vector's components.
      • Affect automatic FBox
        Considered this operator when calculating the automatic FBox.
      • Use Time
        Make the operator time dependent ("per second").
  • The Output Port(s):

    • Grid Operator
      Plug this into a free operator port of a Grid compound.

 

The Operator "Draw Grid Adv"

Draw Grid Adv

  • The Input Port(s) and Parameter(s):

    • Enable
      Enables the operator.
    • In Name
      not yet documented.

    • Main

      • Math Mode
        not yet documented.
      • Amount
        not yet documented.
      • Grid ID
        not yet documented.

      • Pre Math Mode Ops

        • Rescale

          • Enable
            Rescale the source grid grid values before the math op.
          • Source Start
            Range start value.
          • Source End
            Range end value.
          • Target Start
            Range start value.
          • Target End
            Range end value.
          • Clamp
            Clamps the rescaled values to the target interval.
        • Blur

          • Enable
            Blur the source grid values before the math op.
          • Amount
            The blur amount.
          • Iterations
            The number of iterations.
    • Misc

      • Interpolation
        The type of interpolation to use when the source grid's cell size differs from the grid's cell size.
      • Use Length
        Use the vector's length instead of the vector's components.
      • Affect automatic FBox
        Considered this operator when calculating the automatic FBox.
      • Use Time
        Make the operator time dependent ("per second").
  • The Output Port(s):

    • Grid Operator
      Plug this into a free operator port of a Grid compound.

 

The Operator "Draw Null"

Draw Null

This operator is identical with the Draw Sphere operator, except that it requires a null as input instead of a position and radius.

Check out the Draw Sphere operator for more information.

 

The Operator "Draw Null Vector"

Draw Null Vector

This operator is identical with the Draw Sphere Vector operator, except that it requires a null as input instead of a position and radius.

Check out the Draw Sphere Vector operator for more information.

 

The Operator "Draw Obstacle"

Draw Obstacle

  • The Input Port(s) and Parameter(s):

    • Enable
      Enables the operator.
    • In Name Polymesh 1
      not yet documented.

    • Main

      • ICE Data (Normals)
        not yet documented.
      • ICE Data (Velocities)
        not yet documented.
      • Velocity_Scale
        Scale the velocity of the inputs.
    • Misc

      • Vertex Motion is per Frame
        If enabled then interpret the motions of the inputs as "per frame", else as "per second".
      • Antialiased Obstacles
        Draw antialiased obstacles.
  • The Output Port(s):

    • Flag Grid Operator
      Plug this into a free operator port of a Grid compound that contains obstacle flags.
    • Normal Grid Operator
      Plug this into a free operator port of a Grid compound that contains obstacle normals.
    • Velocity Grid Operator
      Plug this into a free operator port of a Grid compound that contains obstacle velocities.

 

The Operator "Draw Point Cloud"

Draw Point Cloud

  • The Input Port(s) and Parameter(s):

    • Enable
      Enables the operator.
    • In Name Point Cloud 1
      not yet documented.

    • Main

      • Value
        The value to draw.
      • Mode
        The value mode:
        • Value only
          Use the value only.
        • Value * ICE Data
          Use the value multiplied by the ICE data (see next parameter).
      • ICE Data
        The name of an optional ICE data that drives the above value.
        Allowed types are boolean, integer, scalar, 2D vector, 3D vector, 4D vector and color.

      • Opacity
        The opacity (range is [0; 1]).

      • Mode
        The opacity mode:
        • Opacity only
          Use the opacity only.
        • Opacity * ICE Data
          Use the opacity multiplied by the ICE data (see next parameter).
      • ICE Data
        The name of an optional ICE data that drives the above opacity.
        Allowed types are boolean, integer, scalar, 2D vector, 3D vector, 4D vector and color.
    • Misc

      • Scale Size
        not yet documented.
      • Draw Mode
        not yet documented.
      • Falloff Mode
        not yet documented.
      • Falloff Start
        not yet documented.
      • Use Time
        Make the operator time dependent ("per second").
  • The Output Port(s):

    • Grid Operator
      Plug this into a free operator port of a Grid compound.

 

The Operator "Draw Point Cloud Vector"

Draw Point Cloud Vector

  • The Input Port(s) and Parameter(s):

    • Enable
      Enables the operator.
    • In Name Point Cloud 1
      not yet documented.

    • Main

      • Vector
        The vector (value) to draw.
      • Mode
        The vector mode:
        • Vector only
          Use the vector only.
        • Vector * ICE Data
          Use the vector multiplied by the ICE data (see next parameter).
      • ICE Data
        The name of an optional ICE data that drives the above value.
        Allowed types are boolean, integer, scalar, 2D vector, 3D vector, 4D vector and color.

      • Opacity
        The opacity (range is [0; 1]).

      • Mode
        The opacity mode:
        • Opacity only
          Use the opacity only.
        • Opacity * ICE Data
          Use the opacity multiplied by the ICE data (see next parameter).
      • ICE Data
        The name of an optional ICE data that drives the above opacity.
        Allowed types are boolean, integer, scalar, 2D vector, 3D vector, 4D vector and color.

      • Use Direction Control-Turbulence
        Turbulize the vectors (the length of the vectors are preserved).

      • Control-Turbulence
        Plug a Control via Turbulence compound in here.
    • Misc

      • Scale Size
        not yet documented.
      • Draw Mode
        not yet documented.
      • Falloff Mode
        not yet documented.
      • Falloff Start
        not yet documented.
      • Use Time
        Make the operator time dependent ("per second").
  • The Output Port(s):

    • Grid Operator
      Plug this into a free operator port of a vector grid.

 

The Operator "Draw Point Force"

Draw Point Force

Draws an attracting or repelling point force into the current vector grid.

  • The Input Port(s) and Parameter(s):

    • Enable
      Enables the operator.

    • Main

      • Position
        The center of the point force (in global SI units).
      • Maximum Distance
        The maximum distance (radius) of the point force (in global SI units).
      • Attraction
        The amount of attraction. Use negative values for a repelling force.
      • Use Direction Control-Turbulence
        Turbulize the force vectors (the length of the vectors are preserved).
      • Control-Turbulence
        Plug a Control via Turbulence compound in here.
    • Misc

      • Draw Mode
        The draw mode.
      • Affect automatic FBox
        If enabled then the position and max. distance of this operator are considered when calculating the automatic FBox.
      • Use Time
        Make the operator time dependent ("per second").
  • The Output Port(s):

    • Grid Operator
      Plug this into a free operator port of a vector grid.

 

The Operator "Draw Sphere"

Draw Sphere

Draws a sphere into a grid.

  • The Input Port(s) and Parameter(s):

    • Enable
      Enables the operator.

    • Main

      • Position
        The center of the sphere (in global SI units).
      • Radius
        The radius of the sphere (in global SI units).
      • Value
        The value to plot.
    • Misc

      • Opacity
        The opacity (range is [0; 1]).
      • Draw Mode
        The draw mode.
      • Falloff Mode
        The falloff mode.
      • Falloff Start
        Start of the falloff (in percentage of radius).
      • Use Time
        Make the operator time dependent ("per second").
  • The Output Port(s):

    • Grid Operator
      Plug this into a free operator port of a Grid compound.

 

The Operator "Draw Sphere Vector"

Draw Sphere Vector

Draws a sphere into a vector grid.

  • The Input Port(s) and Parameter(s):

    • Enable
      Enables the operator.

    • Main

      • Position
        The center of the sphere (in global SI units).
      • Radius
        The radius of the sphere (in global SI units).
      • Vector
        The vector to plot.
      • Use Value Control-Turbulence
        Turbulize the vector's direction (the length of the vector is preserved).
      • Control-Turbulence
        Plug a Control via Turbulence compound in here.
    • Misc

      • Opacity X/Y/Z
        The opacity of value x, y and z respectively (range is [0; 1]).
      • Draw Mode
        The draw mode.
      • Falloff Mode
        The falloff mode.
      • Falloff Start
        Start of the falloff (in percentage of radius).
      • Use Time
        Make the operator time dependent ("per second").
  • The Output Port(s):

    • Grid Operator
      Plug this into a free operator port of a vector grid.

 

The Operator "Draw Surface"

Draw Surface

Draws the surface of a polygon mesh into a grid.

  • The Input Port(s) and Parameter(s):

    • Enable
      Enables the operator.
    • In Name Polymesh 1
      The input polygon mesh(es).

    • Main

      • Value
        The value to draw.
      • Mode
        The value mode:
        • Value only
          Use the value only.
        • Value * ICE Data
          Use the value multiplied by the ICE data (see next parameter).
      • ICE Data
        The name of an optional ICE data that drives the above value.
        Allowed types are boolean, integer, scalar, 2D vector, 3D vector, 4D vector and color.

      • Opacity
        The opacity (range is [0; 1]).

      • Mode
        The opacity mode:
        • Opacity only
          Use the opacity only.
        • Opacity * ICE Data
          Use the opacity multiplied by the ICE data (see next parameter).
      • ICE Data
        The name of an optional ICE data that drives the above opacity.
        Allowed types are boolean, integer, scalar, 2D vector, 3D vector, 4D vector and color.
    • Misc

      • Draw Mode
        The draw mode.
      • Use Time
        Make the operator time dependent ("per second").

 

The Operator "Draw Surface Vector"

Draw Surface Vector

Draws the surface of a polygon mesh into a vector grid.

  • The Input Port(s) and Parameter(s):

    • Enable
      Enables the operator.
    • In Name Polymesh 1
      The input polygon mesh(es).

    • Main

      • Vector
        The vector (value) to draw.
      • Mode
        The value mode:
        • Vector only
          Use the vector only.
        • Vector * Vertex Normal
          Use the vector multiplied by the vertex normal of the input mesh.
        • Vector * Vertex Motion
          Use the vector multiplied by the vertex motion of the input mesh.
        • Vector * ICE Data
          Use the vector multiplied by the ICE data (see next parameter).
        • Vector * ICE Data * Vertex Normal
          Use the vector multiplied by the ICE data multiplied by the vertex normal.
        • Vector * ICE Data * Vertex Motion
          Use the vector multiplied by the ICE data multiplied by the vertex motion.
      • ICE Data
        The name of an optional ICE data that drives the above value.
        Allowed types are boolean, integer, scalar, 2D vector, 3D vector, 4D vector and color.

      • Opacity
        The opacity (range is [0; 1]).

      • Mode
        The opacity mode:
        • Opacity only
          Use the vector only.
        • Opacity * Vertex Normal
          Use the opacity multiplied by the vertex normal of the input mesh.
        • Opacity * Vertex Motion
          Use the opacity multiplied by the vertex motion of the input mesh.
        • Opacity * ICE Data
          Use the opacity multiplied by the ICE data (see next parameter).
        • Opacity * ICE Data * Vertex Normal
          Use the opacity multiplied by the ICE data multiplied by the vertex normal.
        • Opacity * ICE Data * Vertex Motion
          Use the opacity multiplied by the ICE data multiplied by the vertex motion.
      • ICE Data
        The name of an optional ICE data that drives the above opacity.
        Allowed types are boolean, integer, scalar, 2D vector, 3D vector, 4D vector and color.

      • Use Direction Control-Turbulence
        Turbulize the vectors (the length of the vectors are preserved).

      • Control-Turbulence
        Plug a Control via Turbulence compound in here.
    • Misc

      • Draw Mode
        The draw mode.
      • Use Time
        Make the operator time dependent ("per second").
  • The Output Port(s):

    • Grid Operator
      Plug this into a free operator port of a vector grid.

 

The Operator "Draw Volume"

Draw Volume

Draws the volume of a polygon mesh into a grid.

  • The Input Port(s) and Parameter(s):

    • Enable
      Enables the operator.
    • In Name Polymesh 1
      The input polygon mesh(es).
      Note: use clean and closed meshes.

    • Main

      • Value
        The value to draw.
      • Mode
        The value mode:
        • Value only
          Use the value only.
        • Value * ICE Data
          Use the value multiplied by the ICE data (see next parameter).
      • ICE Data
        The name of an optional ICE data that drives the above value.
        Allowed types are boolean, integer, scalar, 2D vector, 3D vector, 4D vector and color.

      • Opacity
        The opacity (range is [0; 1]).

      • Mode
        The opacity mode:
        • Opacity only
          Use the opacity only.
        • Opacity * ICE Data
          Use the opacity multiplied by the ICE data (see next parameter).
      • ICE Data
        The name of an optional ICE data that drives the above opacity.
        Allowed types are boolean, integer, scalar, 2D vector, 3D vector, 4D vector and color.
    • Misc

      • Draw Mode
        The draw mode.
      • Use Time
        Make the operator time dependent ("per second").
  • The Output Port(s):

    • Grid Operator
      Plug this into a free operator port of a Grid compound.

 

The Operator "Draw Volume Vector"

Draw Volume Vector

Draws the volume of a polygon mesh into a vector grid.

  • The Input Port(s) and Parameter(s):

    • Enable
      Enables the operator.
    • In Name Polymesh 1
      The input polygon mesh(es).
      Note: use clean and closed meshes.

    • Main

      • Vector
        The vector (value) to draw.
      • Mode
        The value mode:
        • Vector only
          Use the vector only.
        • Vector * Vertex Normal
          Use the vector multiplied by the vertex normal of the input mesh.
        • Vector * Vertex Motion
          Use the vector multiplied by the vertex motion of the input mesh.
        • Vector * ICE Data
          Use the vector multiplied by the ICE data (see next parameter).
        • Vector * ICE Data * Vertex Normal
          Use the vector multiplied by the ICE data multiplied by the vertex normal.
        • Vector * ICE Data * Vertex Motion
          Use the vector multiplied by the ICE data multiplied by the vertex motion.
      • ICE Data
        The name of an optional ICE data that drives the above value.
        Allowed types are boolean, integer, scalar, 2D vector, 3D vector, 4D vector and color.

      • Opacity
        The opacity (range is [0; 1]).

      • Mode
        The opacity mode:
        • Opacity only
          Use the vector only.
        • Opacity * Vertex Normal
          Use the opacity multiplied by the vertex normal of the input mesh.
        • Opacity * Vertex Motion
          Use the opacity multiplied by the vertex motion of the input mesh.
        • Opacity * ICE Data
          Use the opacity multiplied by the ICE data (see next parameter).
        • Opacity * ICE Data * Vertex Normal
          Use the opacity multiplied by the ICE data multiplied by the vertex normal.
        • Opacity * ICE Data * Vertex Motion
          Use the opacity multiplied by the ICE data multiplied by the vertex motion.
      • ICE Data
        The name of an optional ICE data that drives the above opacity.
        Allowed types are boolean, integer, scalar, 2D vector, 3D vector, 4D vector and color.

      • Use Direction Control-Turbulence
        Turbulize the vectors (the length of the vectors are preserved).

      • Control-Turbulence
        Plug a Control via Turbulence compound in here.
    • Misc

      • Draw Mode
        The draw mode.
      • Use Time
        Make the operator time dependent ("per second").
  • The Output Port(s):

    • Grid Operator
      Plug this into a free operator port of a vector grid.

 

The Operator "Draw Voxel Line"

Draw Voxel Line

Draws a line into a grid.

  • The Input Port(s) and Parameter(s):

    • Enable
      Enables the operator.

    • Main

      • Position Start/End
        The global start and end position of the line.
      • Value
        The value to draw.
    • Misc

      • Opacity
        The opacity (range is [0; 1]).
      • Draw Mode
        The draw mode.
      • Use Time
        Make the operator time dependent ("per second").
  • The Output Port(s):

    • Grid Operator
      Plug this into a free operator port of a Grid compound.

 

The Operator "Draw Voxel Polyline"

Draw Voxel Polyline

Draws a polyline (= a linear spline) into a grid.

  • The Input Port(s) and Parameter(s):

    • Enable
      Enables the operator.

    • Main

      • Positions
        An array of global positions.
      • Value
        The value to draw.
    • Misc

      • Opacity
        The opacity (range is [0; 1]).
      • Draw Mode
        The draw mode.
      • Close
        Close the polyline.
      • Use Time
        Make the operator time dependent ("per second").
  • The Output Port(s):

    • Grid Operator
      Plug this into a free operator port of a Grid compound.

 

The Operator "Plot Voxel Add"

Plot Voxel Add

Plots a voxel (i.e. a grid cell) in "additive" mode: the input value is added to the current value of a grid cell.

The "3C" version of the operator can be used to set the components of a triple grid independently.

  • The Input Port(s) and Parameter(s):

    • Enable
      Enables the operator.

    • Main

      • Position
        The position (in global SI units).
      • Value
        The value to plot.
    • Misc

      • Opacity
        The opacity (range is [0; 1]).
      • Anti-aliasing
        Plot with anti-aliasing.
      • Use Time
        Make the operator time dependent ("per second").
  • The Output Port(s):

    • Grid Operator
      Plug this into a free operator port of a Grid compound.

 

The Operator "Plot Voxel Overlay"

Plot Voxel Overlay

Plots a voxel (i.e. a grid cell) in "overlay" mode.

The "3C" version of the operator can be used to set the components of a triple grid independently.

  • The Input Port(s) and Parameter(s):

    • Enable
      Enables the operator.

    • Main

      • Position
        The position (in global SI units).
      • Value
        The value to plot.
    • Misc

      • Opacity
        The opacity (range is [0; 1]).
      • Anti-aliasing
        Plot with anti-aliasing.
      • Use Time
        Make the operator time dependent ("per second").
  • The Output Port(s):

    • Grid Operator
      Plug this into a free operator port of a Grid compound.

 

The Operator "Plot Voxel Replace"

Plot Voxel Replace

The most primitive painting tool available: the current value of a grid cell is replaced by the input value.

The "3C" version of the operator can be used to set the components of a triple grid independently.

  • The Input Port(s) and Parameter(s):

    • Enable
      Enables the operator.

    • Main

      • Position
        The position (in global SI units).
      • Value
        The value to plot.
    • Misc

      • Use Time
        Make the operator time dependent ("per second").
  • The Output Port(s):

    • Grid Operator
      Plug this into a free operator port of a Grid compound.

 

Ops - Solver

 

The Operator "Advect"

Advect

Advects the content of a grid based on a source velocity field.

  • The Input Port(s) and Parameter(s):

    • Enable
      Enables the operator.

    • Main

      • Amount
        The amount of advection.
      • Velocity Grid
        The ID of the source velocity grid.

      • Substeps

        • Min/Max
          The minimum and maximum adaptive substeps.
      • Methods

        • MacCormack
          not yet documented.
        • Catmull-Rom
          not yet documented.
      • Clamp Speed

        • Clamp
          not yet documented.
        • Max Speed
          not yet documented.
  • The Output Port(s):

    • Grid Operator
      Plug this into a free operator port of a Grid compound.

 

The Operator "Advect Velocity"

Advect Velocity

Advects a vector grid "in place" (i.e. advect velocity along itself).

  • The Input Port(s) and Parameter(s):

    • Enable
      Enables the operator.

    • Main

      • Amount
        The amount of advection.

      • Substeps

        • Min/Max
          The minimum and maximum adaptive substeps.
      • Methods

        • Renormalize
          not yet documented.
        • MacCormack
          not yet documented.
        • Catmull-Rom
          not yet documented.
      • Clamp Speed

        • Clamp
          not yet documented.
        • Max Speed
          not yet documented.
      • Adjustments

        • Viscosity
          Amount of viscosity.
        • Vorticity
          Amount of vorticity.
        • Damping
          Amount of damping.
        • Mass-Preservation (Viscosity)
          Amount of mass preservation for the viscosity.
  • The Output Port(s):

    • Grid Operator
      Plug this into a free operator port of a vector grid.

 

The Operator "Boundary Conditions"

Boundary Conditions

Sets the boundary conditions (= the obstacle behavior) of a grid.

  • The Input Port(s) and Parameter(s):

    • Enable
      Enables the operator.

    • Main

      • Type
        The boundary condition type (i.e. the algorithm).
      • Obstacle-Grid (Flags)
        not yet documented.
      • Obstacle-Grid (Normals)
        not yet documented.
      • Obstacle-Grid (Velocities)
        not yet documented.
  • The Output Port(s):

    • Grid Operator
      Plug this into a free operator port of a Grid compound.

 

The Operator "Buoyancy"

Buoyancy

Calculates the buoyancy force based on the content of a source grid and adds the result to a grid (typically a velocity field).

  • The Input Port(s) and Parameter(s):

    • Enable
      Enables the operator.

    • Main

      • Amount
        The amount of buoyancy.
      • Max Velocity
        A velocity limit that prevents the velocity from becoming too big: if the current velocity in a cell is greater than or equal to this value then no buoyancy is added to that cell.
      • Source Grid
        The ID of the source grid.
    • Direction

      • Mode
        • Use Custom Direction
          Use the custom direction vector as direction for the buoyancy.
        • Use Direction of Velocity
          Use the velocity vector as direction for the buoyancy.
        • Use Custom Dir. and Velocity
          Combine the two above modes.
      • Custom Direction
        A custom direction for the buoyancy.
      • Use Turbulence
        Turbulize the direction of the buoyancy.
      • Turbulence
        Plug a Control via Turbulence compound in here.
    • Misc

      • Use Time
        Make the operator time dependent ("per second").
  • The Output Port(s):

    • Grid Operator
      Plug this into a free operator port of a Grid compound.

 

The Operator "Clear Borders"

Clear Borders

Sets the content of the borders cells equal zero.

This is typically used for grids after they have been advected along a velocity field.

 

 

 

The Operator "Combustion"

Combustion

  • The Input Port(s) and Parameter(s):

    • Enable
      Enables the operator.

    • Main

      • Burn Rate
        not yet documented.
      • Oxygen
        not yet documented.
      • Ignition
        not yet documented.
      • Auto-Ignition
        not yet documented.

      • Output

        • Heat
          The amount of heat output.
        • Waste
          The amount waste output.
    • Output Grids

      • Heat
        The ID of the target grid into which the heat will be added.
      • Waste
        The ID of the target grid into which the waste will be added.
    • Misc

      • Use Fuel Outline (no interior Combustion)
        not yet documented.
      • Use Time
        Make the operator time dependent ("per second").
  • The Output Port(s):

    • Grid Operator
      Plug this into a free operator port of a Grid compound.

 

The Operator "Curl Noise"

Curl Noise

  • The Input Port(s) and Parameter(s):

    • Enable
      Enables the operator.

    • Main

      • Math Mode
        not yet documented.
      • Amount
        not yet documented.
      • Amplitude
        not yet documented.

      • Simplex Noise

        • Seed
          The random seed for the noise.
        • Octaves
          The amount of octaves. The more octaves the more detail.
        • Persistence
          The influence of each octave.

        • Space and Time

          • Time Freq
            The time frequency.
            Values unequal zero make the noise vary over time.
          • Scale
            The spatial scale of the turbulence.
    • Boundary Conditions

      • Enable
        Enable boundary conditions.
      • Type
        The boundary condition type (i.e. the algorithm).
    • Misc

      • Use Time
        Make the operator time dependent ("per second").
  • The Output Port(s):

    • Grid Operator
      Plug this into a free operator port of a Grid compound.

 

The Operator "Damp"

Damp

Damps the content of a grid: The content of each cell fades towards a target value.

  • The Input Port(s) and Parameter(s):

    • Enable
      Enables the operator.

    • Main

      • Amount
        The amount of damping.
      • Target
        Defines the damping target:
        Either the grid's equilibrium or the custom target Tau.
      • Tau
        The custom target Tau.
    • Misc

      • Use Outline (no interior Damping)
        If enabled then damping is only performed at the "surface" of the grid's content.
      • Outline
        Cells with a value smaller than or equal to the outline value will be damped whereas cells with a value greater than the outline will not be damped.
      • Obstacle-Grid (Flags)
        The ID of the obstacle grid.
      • Obstacle Amount
        The amount of obstacle to consider during damping.
      • Use Time
        Make the operator time dependent ("per second").
  • The Output Port(s):

    • Grid Operator
      Plug this into a free operator port of a Grid compound.

 

The Operator "Damp Velocity"

Damp Velocity

Damps the content of a vector grid: The content of each cell fades towards a target value.

  • The Input Port(s) and Parameter(s):

    • Enable
      Enables the operator.

    • Main

      • Amount
        The amount of damping.
      • Target
        Defines the damping target:
        Either the grid's equilibrium or the custom target Tau.
      • Tau
        The custom target Tau.
    • Misc

      • Use Time
        Make the operator time dependent ("per second").
  • The Output Port(s):

    • Grid Operator
      Plug this into a free operator port of a velocity grid.

 

The Operator "Diffuse"

Diffuse

  • The Input Port(s) and Parameter(s):

    • Enable
      Enables the operator.

    • Main

      • Amount
        The amount of diffusion.
      • Iterations
        The amount of iterations (higher values produce more diffusion).
      • Mass Preservation
        Diffusion generally leads to so-called numerical dissipation. Enabling this option will limit the dissipation and therefore the loss of mass (i.e. loss of content).
    • Misc

      • Use Time
        Make the operator time dependent ("per second").
  • The Output Port(s):

    • Grid Operator
      Plug this into a free operator port of a Grid compound.

 

The Operator "Expansion"

Expansion

Calculates the expansion force based on the content of a source grid and adds the result to a grid (typically a velocity field).

  • The Input Port(s) and Parameter(s):

    • Enable
      Enables the operator.

    • Main

      • Amount
        The amount of expansion.
      • Source Grid
        The ID of the source grid.
    • Misc

      • Use Time
        Make the operator time dependent ("per second").
  • The Output Port(s):

    • Grid Operator
      Plug this into a free operator port of a Grid compound.

 

The Operator "Gravity"

Gravity

Calculates the gravity force based on the content of a source grid and adds the result to a grid (typically a velocity field).

This operator behaves in exactly the same way as the Buoyancy operator with the only difference being the direction of the force: buoyancy typically goes upwards whereas gravity typically goes downwards. Furthermore the buoyancy is usually generated by heat-like data ("light stuff") and gravity by waste- or density-like data ("heavy stuff").

Check out the Buoyancy operator for more information.

 

The Operator "Project"

Project

Calculates and applies mass conservation for a (velocity) field.

  • The Input Port(s) and Parameter(s):

    • Enable
      Enables the operator.
    • Amount
      The amount of projection.
    • Iterations
      The amount of iterations (higher values produce more accurate results but require more calculations).
  • The Output Port(s):

    • Grid Operator
      Plug this into a free operator port of a Grid compound.

 

The Operator "Tag Obstacle Flags"

Tag Obstacle Flags

This operator tags (marks) a grid as "obstacle flags".

When a grid has been tagged as "obstacle" then the core will automatically use it, wherever necessary, to calculate the obstacle and boundary conditions.

 

 

The Operator "Tag Obstacle Normals"

Tag Obstacle Normals

This operator tags (marks) a vector grid as "obstacle normals".

When a grid has been tagged as "obstacle" then the core will automatically use it, wherever necessary, to calculate the obstacle and boundary conditions.

 

 

The Operator "Tag Obstacle Velocities"

Tag Obstacle Velocities

This operator tags (marks) a vector grid as "obstacle velocities".

When a grid has been tagged as "obstacle" then the core will automatically use it, wherever necessary, to calculate the obstacle and boundary conditions.

 

 

The Operator "Tag Velocity Field"

Tag Velocity Field

This operator tags (marks) a vector grid as "velocity field".

Velocity fields are handled slightly different by the core regarding certain operations.

 

 

The Operator "Turbulize Vector Field"

Turbulize Vector Field

Turbulizes the direction of the vectors contained in a vector grid while retaining their lengths (i.e. the vectors are only rotated, not scaled).

This operator uses Perlin Simplex Noise by default, but it is possible to use different noise types: simply enter the compound and modify the parameters of the Control via Turbulence compound.

  • The Input Port(s) and Parameter(s):

    • Enable
      Enables the operator.

    • Main

      • Amount
        The amount of turbulence.
      • Amount Boost
        Boosts the effect by a factor of 100.
    • Perlin Simplex Noise

      • Seed
        The random seed for the noise.
      • Octaves
        The amount of octaves. The more octaves the more detail.
      • Persistence
        The influence of each octave.
    • Space and Time

      • Time Freq
        The time frequency.
        Values unequal zero make the turbulence vary over time.
      • Scale
        The spatial scale of the turbulence.
  • The Output Port(s):

    • Grid Operator
      Plug this into a free operator port of a vector grid.

 

The Operator "Viscosity"

Viscosity

Controls the "thickness" of the fluid.

  • The Input Port(s) and Parameter(s):

    • Enable
      Enables the operator.

    • Main

      • Amount
        The amount of viscosity.
      • Mass-Preservation
        Amount of mass preservation.
  • The Output Port(s):

    • Grid Operator
      Plug this into a free operator port of a vector grid.

 

The Operator "Vorticity"

Vorticity

This operator calculates and adds vorticity (= "little swirls") to a velocity field.

  • The Input Port(s) and Parameter(s):

    • Enable
      Enables the operator.

    • Main

      • Amount
        The amount of vorticity.
      • Source Velocity Grid
        The ID of the source velocity grid.
    • Misc

      • Use Time
        Make the operator time dependent ("per second").
  • The Output Port(s):

    • Grid Operator
      Plug this into a free operator port of a Grid compound.

 

Ops - Tools

 

The Op Tool "Concatenate Operators"

Concatenate Operators

This can be used to combine several operators into a single string.

Note: operators are strings.

 

 

 

The Op Tool "Control"

Control

This "monster compound" is a special compound that can be used to control scalar input values of grid operators. One can turbulize an input, control it via a rectangular/spherical falloff or drive it using the values contained in another grid. A combination of all methods is also possible.

One might ask "Why such a big and complicated compound? Why not use factory ICE nodes like the turbulence and math nodes?"
The answer is simple: it doesn't work! The reason for that is that the ICE context of an operator is "per object". emFluid5 however only has one context: "per Grid Cell". This context does not exist in ICE, so this special compound had to be designed.

  • The Input Port(s) and Parameter(s):

    • Mean Value
      The mean (or main) value.
    • Use Grid
      Enables the usage of the so-called "Control Grid".
      Its parameters are contained in the parameter group "Grid".
    • Use Turbulence
      Enables the usage of the so-called "Control Turbulence".
      Its parameters are contained in the parameter group "Turbulence".
    • Use Falloff (Sphere)
      Enables the usage of the so-called "Control Falloff Sphere".
      Its parameters are contained in the parameter group "Falloff (Sphere)".
    • Use Falloff (Rectangle)
      Enables the usage of the so-called "Control Falloff Rectangle".
      Its parameters are contained in the parameter group "Falloff (Rectangle)".

    • Grid

      • Amount
        The amount (or weight) of the grid.
      • Source Grid
        The ID of the source grid.
      • Mode
        Specifies how and where the source grid value is to be used. It can be used as mean value (or added/multiplied/etc. to the mean value) or it can be used as turbulence variance (or added/multiplied/etc. to the turbulence variance).

      • Rescale

        • Source Start
          Source range start value.
        • Source End
          Source range end value.
        • Target Start
          Target range start value.
        • Target End
          Target range end value.
        • Clamp
          Clamps the rescaled values to the target interval.
    • Noise

      • Variance
        The variance around the mean value.
      • Type
        The type of noise.
      • Interpolation
        The interpolation type.
      • Absolute
        Use absolute variance:  variance = abs(variance).
      • Invert
        Invert the variance:  variance = 1 - variance.
      • Negate
        Negate the variance:  variance = - variance.
      • Seed
        The random seed for the noise.
      • Octaves
        The amount of octaves. The more octaves the more detail.
      • Persistence
        The influence of each octave.
      • Center
        The center of the noise/turbulence.

      • Space and Time

        • Time Freq
          The time frequency.
          Values unequal zero make the turbulence vary over time.
        • Scale
          The spatial scale of the turbulence.
        • Scale is relative to cell size
          If enable then the parameter "Scale" represents multiples of the current cell size.
      • Contrast

        • Level In / Gamma / Level Out
          Use these parameters to modify the "contrast and gamma" of the turbulence.
    • Falloff (Sphere)
      A spherical falloff that controls the influence of an operator. The behavior depends on the operator and the parameter(s) involved.

      • Amount
        The amount (or influence) of the falloff.
      • Center
        The center of the sphere.
      • Radius
        The radius of the sphere.
      • Falloff
        The falloff type (none, linear, square, etc.)
      • Invert
        Invert the result (result = 1 - result)
    • Falloff (Rectangle)
      A rectangular falloff that controls the influence of an operator. The behavior depends on the operator and the parameter(s) involved.
      The rectangular falloff is defined by a rectangular region and by the corner fade values (= one value between 0 and 1 for each corner). The corner fade values are interpolated depending on the grid cells position relative to the rectangular area.

      • Amount
        The amount (or influence) of the falloff.
      • Corner 1
        The first corner of the rectangular region.
      • Corner 2
        The first corner of the rectangular region.
      • Sine Interpolation
        Use a sine interpolation instead of a linear interpolation.
      • Extrapolate
        Extrapolate the rectangular fade values (= cells that are outside the rectangular region will use the fade value of the closest point of the rectangular region).
      • Invert
        Invert the result (result = 1 - result)
      • _LRDUBF
        The corner fade values.
        The letters L, R, D, U, B and F stand for Left, Right, Down, Up, Back and Front.
  • The Output Port(s):

    • Grid Operator Scalar Value
      Plug this into a scalar input of a grid operator.
      Note: not all scalar inputs support this compound. If this compound is plugged into an operator port that does not support this compound then a warning is logged in the history log.

 

The Op Tool "Control via ..."

Control via

These slimmed-down versions of the Control compound are generally more convenient to use since they only expose one of the control modes (via Grid, via Falloff, via Turbulence) and therefore have a more lean and less confusing property page.

For more information regarding the parameters please go here.

 

The Op Tool "Convert Min Max"

Convert Min Max

Converts a "Min | Max" pair into a "Mean Value | Variance" pair. Example:

min = 1
max = 2

becomes

mean = 1.5
variance = 0.5

 

Ops - Visualization

 

The Operator "Show Grid "

Show Grid

This operator defines the visualization of the internal grid data in the viewports. There are several ways to display data. Large grids contain large amounts of cells and can have different data types and one is well advised to chose a proper visualization to avoid slow refresh rates.

In most cases one of the slimmed-down version of this compound can be used (they are far more intuitive and more user friendly):

  • The Input Port(s) and Parameter(s):

    • Enable
      Enables/disables the visualization of the grid.

    • Display Switches

      • Use Particles
        If enabled then particles are used for the display (slower), else ICE's 'Show Attributes' is used (faster).
      • Use Outline
        If enabled then only the 'outline' of the grid data is display. The outline is the border between cells that are "full" and cells that are "empty".
      • Use Slice
        If enabled then only a slice of the grid is displayed.
      • Use Position Offset
        If enabled then the grid is displayed with a position offset.

      • Performance

        • Mode
          not yet documented.
        • Limit
          not yet documented.
    • Data Type and Range

      • Data Type
        This tells the core how to interpret the grid's data.
      • Minimum/Maximum
        This informs the core about the the grid's data value range.
      • Absolute
        Use the absolute values of the cells for the display.
      • Clamp
        Use the clamped values of the cells for the display.
    • Display Options (Particles)

      • Shape
        The shape of the particles. This parameter is ignored for certain data types (e.g. vector).
      • Size
        The size multiplier of the particles.
      • Color
        The color multiplier for the particles.
      • Fade via Size
        Fades the particles using the particle size.
      • Fade via Alpha
        Fades the particles using the particle alpha channel.
    • Display Options (Outline)

      • Outline at
        This defines the value of the outline. Cells with a value less than this are considered "empty", cells with a value greater than this are considered "full".
    • Display Options (Slice)

      • Plane
        Specifies which plane to extract/flatten.
      • Mode
        The two available modes for slicing:
        "Extract" will extract a slice of the grid and "Flatten" will combine all of the grid's planes into a single plane.

      • Extract

        • Position
          The position of the plane.
        • Thickness
          The thickness of the plane.
        • Reference
          Specifies whether the above parameters ("Position" and "Thickness") are relative to the internal FBox or to the manual FBox.
      • Flatten

        • Mode
          Defines in what way the grid is flattened, i.e. the values are combined.
          Available modes are:
          • Average
          • Sum
          • Minimum
          • Maximum
        • Scale
          A scale for the final plane's values.
          When flattening a grid it is often required to play around with this setting in order to get a decent looking plane.
        • Center in manual FBox
          If enabled then the slice is centered in the manual FBox (even when in automatic mode), else it is centered in the internal FBox.
    • Display Options (Position Offset)

      • X / Y / Z
        The position offset in x, y and z. The units are in the FBoxes width, height and depth respectively.
    • Lighting

      • Enable
        Enable/disable lighting and self-shadowing.

      • Self-Shadowing

        • Amount
          Amount of self-shadowing.
        • Density
          Shadow density.
  • The Output Port(s):

    • not yet documented.
      not yet documented.

 

The Operator "Show Grid Misc"

Show Grid Misc

The following compounds are just presets or wrappers of the above Show Grid:

  • Show Grid Color
    Suitable for vector grids that contain color values.

  • Show Grid Density
    Suitable for scalar grids that contain density-like data.

  • Show Grid Fuel
    Suitable for scalar grids that contain fuel-like data.

  • Show Grid Heat
    Suitable for scalar grids that contain heat-like data.

  • Show Grid Vector
    Suitable for vector grids that contain data such as velocity.

  • Show Grid Waste
    Suitable for scalar grids that contain waste-like data.

They are a convenient way to quickly display a grid's content without the need to tune all the available parameters of the Show Grid compound.

 

Presets

Presets

The presets in emFluid5 come as so-called "explode me" compounds. These compounds contain a clean and ready-to-use emFluid5 setup that can serve as a starting point for your own setups.

The usage is simply:

  1. add an "explode me" compound to your ICE tree.
  2. connect it to the ICE tree.
  3. possibly explode the compound (hence the name).

Note that you must also add an ICE tree in the modeling stack with a Clear 64 Bit Pointers compound in it!

 

"explode me _ Combustion Basic"

Combustion Basic

not yet documented.

 

"explode me _ Displacement Basic"

Displacement Basic

not yet documented.

 

"explode me _ Refinement Basic"

Refinement Basic

not yet documented.

 

"explode me _ Smoke Basic"

Smoke Basic

not yet documented.

 

"explode me _ Time Warp Basic"

Time Warp Basic

not yet documented.

 

Tools

 

The Tool "Grid ID"

Grid ID

A constant grid ID.

This compound is nothing more than a wrapper of a factory integer node with a combo control in the property page for the input port.

 

The Tool "Is Grid Visualization"

Is Grid Visualization

Tests whether a particle is part of emFluid5's grid visualization.

When working with emFluid5 setups that use particles for the grid visualization and also have "normal" particles (e.g. when advecting particles) then it can be important to know if a particle belongs to the grid visualization or not.

  • The Output Port(s):

    • Result
      "True" if this is a grid visualization particle, "False" if not.

 

The Tool "Pacemaker"

Pacemaker

A versatile little compound that can be used to get the state of the current global frame in relation to a frame interval, the simulation start frame, the reset phase and so on.

  • The Input Port(s) and Parameter(s):

    • Mode
      The following modes are available:

      • Never
        Outputs False.
      • Always
        Outputs True.
      • During Reset Phase
        Outputs True if the current global frame is in the reset phase.
      • During Simulation Phase
        Outputs True if the current global frame is in the simulation phase.
      • Last Frame of Reset Phase
        Outputs True if the current global frame is equal the last frame of the reset phase.
      • First Frame of Simulation Phase
        Outputs True if the current global frame is equal the first frame of the simulation phase.
      • Frame Interval
        Outputs True if the current global frame is inside the custom frame interval.
    • Custom Frame Interval

      • Start
        The interval's start frame (only used if Mode = Frame Interval).
      • End
        The interval's end frame (only used if Mode = Frame Interval).
  • The Output Port(s):

    • Result
      True if the conditions are met.

 

The Tool "Post Grid Display"

Post Grid Display

  • The Input Port(s) and Parameter(s):

    • Override Particle Shape
      not yet documented.
    • Point Size (Pixels)
      not yet documented.
    • Alpha Multiplier
      not yet documented.
  • The Output Port(s):

    • Execute
      not yet documented.

 

The Tool "Test Reset Phase"

Test Reset Phase

This compound tests whether the current global frame is inside the "Reset Phase" (this is the phase of an emFluid5 simulation during which all grids are cleared and reset).

If for example you have set the "Simulation Start Frame" in the Core compound to 20 then any frame less than 20 is considered being inside the reset phase.

  • The Input Port(s) and Parameter(s):

    • Last Frame only
      If enabled then the compounds outputs 'True' only if the current global frame is equal the last frame of the reset phase.
  • The Output Port(s):

    • Result
      True if the current frame is inside the reset phase (or equal the last frame of the reset phase).

 

The Tool "Test Simulation Phase"

Test Simulation Phase

This compound tests whether the current global frame is inside the "Simulation Phase" (this is the phase of an emFluid5 simulation during which the grids are simulated).

If for example you have set the "Simulation Start Frame" in the Core compound to 20 then any frame greater than or equal to 20 is considered being inside the simulation phase.

  • The Input Port(s) and Parameter(s):

    • First Frame only
      If enabled then the compounds outputs 'True' only if the current global frame is equal the first frame of the simulation phase.
  • The Output Port(s):

    • Result
      True if the current frame is inside the simulation phase (or equal the first frame of the simulation phase).

 

Tools - Advanced

 

The Tool "1D Index to 3D Index"

1D Index to 3D Index

  • The Input Port(s) and Parameter(s):

    • 1D Index

      • Index
        not yet documented.
    • Grid Resolution

      • Num Cells X / Y / Z
        not yet documented.
  • The Output Port(s):

    • Valid Index
      not yet documented.
    • X / Y / Z
      not yet documented.

 

The Tool "3D Index to 1D Index"

3D Index to 1D Index

  • The Input Port(s) and Parameter(s):

    • 3D Index

      • X / Y / Z
        not yet documented.
    • Grid Resolution

      • Num Cells X / Y / Z
        not yet documented.
  • The Output Port(s):

    • Valid Index
      not yet documented.
    • Index
      not yet documented.

 

The Tool "3D Position to 1D Index"

3D Position to 1D Index

  • The Input Port(s) and Parameter(s):

    • 3D Position

      • Position
        not yet documented.
    • Grid Resolution

      • Cell size
        not yet documented.
      • Num Cells X / Y / Z
        not yet documented.
      • Lower Corner
        not yet documented.
  • The Output Port(s):

    • Valid Index
      not yet documented.
    • Index
      not yet documented.

 

The Tool "3D Position to 3D Index"

3D Position to 3D Index

  • The Input Port(s) and Parameter(s):

    • 3D Position

      • Position
        not yet documented.
    • Grid Resolution

      • Cell size
        not yet documented.
      • Num Cells X / Y / Z
        not yet documented.
      • Lower Corner
        not yet documented.
  • The Output Port(s):

    • Valid Index
      not yet documented.
    • X / Y / Z
      not yet documented.

 

The Tool "Clear 64 Bit Pointers"

Clear 64 Bit Pointers

This unimpressive little compound must be included in every emFluid5 setup. Furthermore it should be placed in an ICE Tree in the Modeling Stack.

Its purpose is to initialize some internal ICE data that is used to pass 64 Bit pointers to some of the advanced emFluid5 tools as well as to the shaders from Binary Alchemy.

If this compound is not present then the emFluid5 setup will not function correctly!

emFluid5 and the shaders from Binary Alchemy (i.e. baFluid) are able to share the memory of the fluid grids. In order to do this a pointer at the internal grid memory is passed to the shader via ICE data (two integers containing the low 32 bits and the high 32 bits of the 64 bit pointer.
The same is valid for all of emFluid5's advanced tools, such as the Volume Renderer, the tool Post Get Grid Data and so on.

 

The Tool "Generate Position Set from Grid Data"

Generate Position Set from Grid Data

  • The Input Port(s) and Parameter(s):

    • Enable
      not yet documented.
    • In Name
      not yet documented.
    • FBox Index
      not yet documented.
    • Grid ID
      not yet documented.

    • Main

      • Positions per cubic SI Unit of Content
        not yet documented.
      • Use spherical Distribution
        not yet documented.
      • Scale Positions
        not yet documented.
    • Rescale

      • Use absolute Grid Cell Values
        not yet documented.
      • Source Start
        not yet documented.
      • Source End
        not yet documented.
      • Target Start
        not yet documented.
      • Target End
        not yet documented.
      • Clamp
        not yet documented.
  • The Output Port(s):

    • Valid
      not yet documented.
    • Position Set
      not yet documented.

 

The Tool "Get 64 Bit Pointer at Grid Data"

Get 64 Bit Pointer at Grid Data

  • The Input Port(s) and Parameter(s):

    • In Name
      not yet documented.
    • FBox Index
      not yet documented.
    • Grid ID
      not yet documented.
  • The Output Port(s):

    • Valid
      not yet documented.
    • Grid Cell size
      not yet documented.
    • Grid Res X / Y / Z
      not yet documented.
    • Grid Corner Lo / Hi
      not yet documented.
    • Grid Bit Depth
      not yet documented.
    • Low 32 Bits of 64 Bit Pointer at Grid Data
      not yet documented.
    • High 32 Bits of 64 Bit Pointer at Grid Data
      not yet documented.

 

The Tool "Get Cache File Info"

Get Cache File Info

  • The Input Port(s) and Parameter(s):

    • Enable
      not yet documented.

    • Main

      • Path
        not yet documented.
      • Filename
        not yet documented.
    • Misc

      • Log Information into History Log
        not yet documented.
  • The Output Port(s):

    • File Exists
      not yet documented.
    • Valid File Format
      not yet documented.
    • Grid Cell size
      not yet documented.
    • Grid Res X / Y / Z
      not yet documented.
    • Grid Corner Lo / Hi
      not yet documented.

 

The Tool "Get Cells with Content"

Get Cells with Content

  • The Input Port(s) and Parameter(s):

    • Enable
      not yet documented.
    • In Name
      not yet documented.
    • FBox Index
      not yet documented.
    • Grid ID
      not yet documented.

    • Range

      • Lower Bound
        not yet documented.
      • Use absolute Values
        not yet documented.
  • The Output Port(s):

    • Valid
      not yet documented.
    • Cell Size
      not yet documented.
    • Centers of Cells
      not yet documented.
    • Contents of Cells
      not yet documented.
    • Indices in Grid Data
      not yet documented.

 

The Tool "Get Contents from Positions"

Get Contents from Positions

  • The Input Port(s) and Parameter(s):

    • Enable
      not yet documented.
    • In Name
      not yet documented.
    • FBox Index
      not yet documented.
    • Grid ID
      not yet documented.
    • In Positions
      not yet documented.

    • Parameters

      • Interpolation
        not yet documented.
      • Extrapolation
        not yet documented.
  • The Output Port(s):

    • Valid
      not yet documented.
    • Content
      not yet documented.
    • Content
      not yet documented.

 

The Tool "Get FBox"

Get FBox

  • The Input Port(s) and Parameter(s):

    • Enable
      not yet documented.
    • In Name
      not yet documented.
    • FBox Index
      not yet documented.
  • The Output Port(s):

    • Valid
      not yet documented.

    • FBox

      • Active
        not yet documented.
      • Type
        not yet documented.
      • Cell size
        not yet documented.
      • Tempo
        not yet documented.
      • Substeps
        not yet documented.
      • Corner Lo / Hi
        not yet documented.
    • Grid

      • Cell Size
        not yet documented.
      • Res X / Y / Z
        not yet documented.
      • Corner Lo / Hi
        not yet documented.

 

The Tool "Get Gradients from Positions"

Get Gradients from Positions

  • The Input Port(s) and Parameter(s):

    • Enable
      not yet documented.
    • In Name
      not yet documented.
    • FBox Index
      not yet documented.
    • Grid ID
      not yet documented.
    • In Positions
      not yet documented.

    • Parameters

      • Interpolation
        not yet documented.
      • Extrapolation
        not yet documented.
      • Softness
        not yet documented.
  • The Output Port(s):

    • Valid
      not yet documented.
    • Gradient
      not yet documented.
    • Normal Vector
      not yet documented.

 

The Tool "Post Get Grid Data"

Post Get Grid Data

  • The Input Port(s) and Parameter(s):

    • Enable
      not yet documented.
    • In Name
      not yet documented.
    • FBox Index
      not yet documented.
    • Grid ID
      not yet documented.
  • The Output Port(s):

    • Valid
      not yet documented.
    • Cell Size
      not yet documented.
    • Num Cells X / Y / Z
      not yet documented.
    • Lower Corner
      not yet documented.
    • Upper Corner
      not yet documented.
    • Center of Cells
      not yet documented.
    • Data
      not yet documented.

 

The Tool "Post Set Grid Data"

Post Set Grid Data

not yet documented.

  • The Input Port(s) and Parameter(s):

    • Enable
      not yet documented.
    • In Name
      not yet documented.
    • FBox Index
      not yet documented.
    • Grid ID
      not yet documented.
    • In Data
      not yet documented.
  • The Output Port(s):

    • Evaluate
      Plug this into a free "Post Grid Processing" execute port of the core compound.

 

Tools - Rendering

 

The Tool "Ray Marching Basic"

Ray Marching Basic

not yet documented.

 

 

 

 

 

 

 

 

 

 

 

 

The Tool "Volume Renderer Basic"

Volume Renderer Basic

not yet documented.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Supported File Formats

Supported File Formats

The supported voxel cache file formats:

  • "Binary Alchemy (.bafl)"
    A voxel file format developed by Holger Schönberger (Binary Alchemy).
    This is the recommended format when working and rendering with the Binary Alchemy shaders.

  • "OpenVDB (.vdb)"
    A voxel file format developed by DreamWorks Animation. This format is fully supported by Houdini and will eventually be supported by many other applications such as Solid Angle's Arnold, Pixar's RenderMan, Autodesk Maya, etc. in the near future.
    See the OpenVDB web site for more information.

Coding a Custom ICE Node to manipulate Grid Data

Coding a Custom ICE Node

not yet documented.

Glossary

Glossary

  • 1D Index
    not yet documented.

  • 3C
    "3C" stands for "3 components". Certain operators come in two version: a version that supports both types of grids (scalar and vector), and a version that supports only vector grids. Latter have some additional flags to control the amount of an effect for each component of the triple grid.

  • 3D Index
    not yet documented.

  • Automatic FBox
    A FBox that adjusts its size to the content of its grids.

  • Equilibrium
    The equilibrium defines the base value of a grid.
    Certain operators will modify the grid content according to its equilibrium.
    Example: the damping (or cooling) will make the grid's value converge towards the equilibrium. Think of a glass of warm milk that will - after some time - have the same temperature as the room it is in. The room's temperature would be the equilibrium in this case.
    The equilibrium is also needed by the automatic FBox. It tells the core what values are to be considered zero (in the sense of being close to the equilibrium) and therefore ignored when re-calculating the size of the FBox.

  • Flat Array
    not yet documented.

  • FBox
    Represents an area of space which is divided up into voxels.

  • Fluid Box
    Same as FBox.

  • Fluid Container
    Same as FBox.

  • Grid
    A Grid always belongs to a FBox and it is always smaller than or equal to the FBox. It is divided into voxels that can contain either a single value (see "Scalar Grid") or three values (see "Vector Grid").

  • Manual FBox
    A FBox that has a fixed size defined by two corners. Its internal grids have the same size as the FBox.

  • Operator
    A small command that can be plugged into an operator stack of a FBox or a grid.

  • Reset Phase
    The phase during which the grids are cleared and reset.

  • Simulation Phase
    The phase during which the grids are simulated (i.e. the operator stacks are evaluated).

  • Scalar Grid
    A grid with one value per grid cell.

  • Single Grid
    Same as a scalar grid (i.e. one value per cell).

  • Triple Grid
    Same as a vector grid (i.e. three values per cell).

  • Vector Grid
    A grid with three values per grid cell. The three values can represent things like colors, vectors, texture coordinates, etc.

  • Velocity Field
    A vector grid that contains velocity vectors.

Tips and Tricks, Trouble Shooting

Tips and Tricks, Trouble Shooting

  • Tips and Tricks:

    • not yet documented.
      not yet documented.
  • Known Issues:

    • not yet documented.
      not yet documented.
  • Trouble Shooting:

    • not yet documented.
      not yet documented.

Version History

Version History

  • New in Version 5.000:

    • node/operator-based grid manipulation system.
    • node/operator-based fluid solver.
    • resumable simulations.
    • entirely new multithreaded core.
    • FBoxes and 3D grids with operator stacks.
    • grid sizes, cell sizes, simulation speed, substeps can be changed over time.
    • ability to manually allocate/free grids.
    • caching of 3D grids (read/write).
    • OpenVDB support
    • real volume rendering using the built-in Softimage volume shader.
    • real volume rendering using the emFluid5 ICE volume renderer.
    • improved particle advection.
    • fast grid visualizations with self-shadowing.
    • fast voxelization of polygon meshes (volume and/or surface) and point clouds.
  • New in Version 5.062:

    • a few changes and optimizations in the internal octree class.
    • now uses RLM v.11.2.
    • revised multithreading.
    • the version for Softimage 2015 no longer has a memory leak (due to a bug fix in the Softimage 2015 ICE SDK).
    • emFluid5 Renderer: the parameters "Automatic Threading" and "Num Threads" have been removed and replaced by the new parameter "Multithreaded".
  • New in Version 5.063:

    • bug fix: loading the addon (emFluid5 Renderer) sometimes resulted in an error message "unable to find the plugin's installation path". This has been fixed.

Limitations and Remarks

Limitations and Remarks

  • emFluid5 is only available for 64 bit systems (Windows and Linux).

  • thanks to Andy Moorer for his help in writing this documentation.