Você está na página 1de 183

Index:

1- Body Ops:
01- Dynamics
02- Origin
03- Primitive
04- Mesh
05- Channel
06- Body
07- Convert
08- Volume
10- Tet
11- Field
12- Terminal
13- Nel
14- Emit
15- Liquid
16- Particles
17- User
18- Point
19- Rigid

1b- Body Scope:


20- Body Scope

2- Field Ops:
21- Math
22- Processing
23- Primitive
24- Distance
25- Channel
26- Nel
27- Particle

2b- Field Scope:


28- Scope

01- Body Ops Dynamic


Acceleration
Overview
Adds a constant or spatially varying acceleration to the Field/velocity, Particle/velocity or
Point/velocity channels of all admitted bodies. The channel chosen for updating is determined
in the order listed; e.g. Field/velocity takes precedence over Particle/velocity, and so on.
A constant acceleration defined by the 'Acceleration' parameter is added if no acceleration
field is connected to field-input. If an acceleration field is connected, on the other hand, a percell, per-particle or per-point acceleration is computed from the field, for the Field/velocity,
Particle/velocity or Point/velocity channels, respectively.

Why You May Care About This Op


This is how you add acceleration due to gravity to your fluid, for one thing.

Notes
Only bodies with a Dynamic Motion-Type are evolved by this Op.

Dynamics Parameters
Acceleration
The constant force to add. The default value represents the force of gravity in a simulation where
1 worldspace unit equals 1 meter. NOTE that this parameter is ignored if an external acceleration
field is defined by connecting field-input.

Inputs
body-input
All dynamic bodies are admitted through this input.
field-input
If connected, is used as an external acceleration field.

Outputs
body-output
All bodies encountered in body-input are passed down through this output, regardless if they were
admitted or not.

Boundary-Effect
Overview
Increases the effect a solid has on fluids around it, modeling a "boundary layer" around the
object. Make sure to apply this earlier than gravity.

Notes
Only bodies with a Dynamic Motion-Type are evolved by this Op.

Dynamics Parameters
Viscosity
Specifies the kinemetic viscosity of the fluid that we are attemping to model here: the greater the
value, the greater the effect. It should have units of metres squared per second.

Inputs
body-input
All dynamic bodies matching the Field signature are admitted through this input.
solid-input
The solid body defining the "boundary layer" is admitted through here. NOTE that this input will
soon become a FieldOp input in the same spirit as many other recent changes; however for the
moment we stick with the "old style" volume-body input.

Outputs
body-output
All bodies encountered in body-input are passed down through this output, regardless if they were
admitted or not.

Boundary-Layer
Overview
Adds a friction-like effect to the Field/velocity channel of all admitted bodies in a certain
region of space.

Why You May Care About This Op


This is a nonphysical way of forcing fluids to be effected more by nearby solids, for example
letting a moving solid drag more fluid along with it, even if the fluid has no viscosity.

Notes
Only bodies with a Dynamic Motion-Type are evolved by this Op.
The region where the effect is applied is not linked to any interactions created by the Interact
BodyOp - instead, the region is entirely defined by the distance-field defined by the FieldOp
graph connected to the distance-field input.
This is not (yet) a physically correct operation, but rather a simple tool to get non-dynamic
geometry to influence fluids in a "stickier" way.
If you also have gravity in the graph, this operator should come before (above) the
acceleration operator.

Dynamics Parameters
Strength
How strong the blending is, in units of (blend fraction) per second
Bandwidth
The width (in worldspace units) of the band around the distance-field's "surface" wherein the
effect is applied. The "surface" is defined wherever the distance-field is zero.

Inputs
body-input
The fluid bodies are fed through the body-input, and are required to match the Field body
signature in order to be admitted and evolved by this Op.
velocity-field
Velocity field (probably from a solid) that will be blended into the fluid
distance-field
Distance field used to define the region of effect
mask-field
Optional mask input for modulating the strength

Outputs
body-output
Admitted or not, all bodies encountered in body-input will be passed down through the bodyoutput.

Buoyancy
Overview
Adds a buoyant acceleration to the Field/velocity channel of all admitted bodies.

Notes
Only bodies with a Dynamic Motion-Type are evolved by this Op.

Settings Parameters
Buoyancy Channel
Name of a Field-Channel to scale the acceleration amount
Buoyancy Vector
The world-space direction of the buoyancy acceleration

Inputs
body-input
All bodies matching the Field signature will be admitted through this input.

Outputs
body-output
All bodies encountered in body-input are passed down through this output, regardless if they were
admitted or not.

Combust
Overview
Performs volumetric combustion calculations within all admitted bodies.

Why You May Care About This Op


Using this Op is the difference between having just a smoke-body vs. a fire-body.

Notes
Only bodies with a Dynamic Motion-Type are evolved by this Op.

Combustion Criteria Parameters


Ignition Temperature
The minimal values of Field/temperature cells required to igniting the combustion process.
Burn Rate
How much of the Field/fuel channel is consumed per sec in the cells where combustion is taking
place.
Heat
The amout of heat added to Field/temperature per second in the cells where combustion is taking
place.
Expansion
The amount added to Field/expansion-rate per second in the cells where combustion is taking
place.
Radiance
The amount added to Field/light per second in the cells where combustion is taking place.

Inputs
body-input
All dynamic bodies matching the Field signature are admitted through this input.

Outputs
body-output
All bodies encountered in body-input are passed down through this output, regardless if they were
admitted or not.

Drag
Overview
Adds a constant drag acceleration to the Particle/velocity channel on all admitted bodies.

Notes
Only bodies with a Dynamic Motion-Type are evolved by this Op.

Dynamics Parameters
Drag
The drag coefficient. The greater the coefficient is, the more drag is applied.

Inputs
body-input
All dynamic bodies matching the Particle signature are admitted through this input.

Outputs
body-output
All bodies encountered in body-input are passed down through this output, regardless if they were
admitted or not.

Dynamics
Overview
Resolves internal and external forces, collisions, and constraints, resulting in new velocities
for each admitted body.

Why You May Care About This Op


Without this op, no fluid, rigid-body, or soft-body dynamics would be possible!

Notes
Only bodies with a Dynamic Motion-Type are evolved by this Op.

Solver Settings Parameters


Precision
The precision of the solver. This value is used to control the convergence threshold for the
pressure solver and any other iterative solvers used to solve the dynamics equations. Gases, smoke
and fire require less precision than liquids do. The default value is considered a good middleground between gases vs. liquids. If viscous fluids are part of the solve, the time to converge may
take significantly longer. If you notice a major slowdown involving viscosity, it is highly
recommended that you lower this 'Precision' parameter until you get a reasonable solve speed
while keeping the viscous look of the fluid.
Max Iterations
The maximum number of iterations any iterative solver triggered is allowed to take, regardless if
it converges or not. Making this value lower may speed up the solve but at the cost of realism and
accuracy.

Inputs
body-input
All dynamic bodies matching the Particle signature are admitted through this input.

Outputs
body-output
All bodies encountered in body-input are passed down through this output, regardless if they were
admitted or not.

Friction
Overview
Adds a friction-based acceleration to the Field/velocity channel of all admitted bodies in a
certain region of space.

Why You May Care About This Op


If you want to make your body slow down in some region of space (such as near the surface
of some collision geometry) then this Op is for you!

Notes
Only bodies with a Dynamic Motion-Type are evolved by this Op.
The region where the friction is applied is not linked to any interactions created by the
Interact BodyOp - instead, the region is entirely defined by the distance-field defined by the

FieldOp graph connected to the distance-field input.

Dynamics Parameters
Friction
The coefficient of friction. Higher values mean more friction
Bandwidth
The width (in worldspace units) of the band around the distance-field's "surface" wherein friction
is applied. The "surface" is defined wherever the distance-field is zero.

Inputs
body-input
The fluid bodies are fed through the body-input, and are required to match the Field body
signature in order to be admitted and evolved by this Op.
distance-field
Distance field used to define the region of friction
mask-field
Optional mask input for modulating the friction

Outputs
body-output
Admitted or not, all bodies encountered in body-input will be passed down through the bodyoutput.

Interact
Overview
This BodyOp causes all bodies admitted through "body-input-a" to dynamically interact with
the bodies admitted through "body-input-b". Interact, in this context, means collide with or
otherwise physically affect and be affected by.
NOTE: This BodyOp will become obsolete as the Dynamics Op will handle all dynamic interbody interaction; however when this happens Interact will get automatically remapped to Join
and your graphs will thus keep working with no change required from you.

Inputs
body-input-a
Bodies interacting with body-input-b's bodies enter through here

body-input-b
Bodies interacting with body-input-b's bodies enter through here

Outputs
body-output
All bodies encountered in body-input-a and body-input-b are passed down through this
output.

Particle-Transport
Overview
Transport the Particle-Channel indicated by the 'Position Channel' parameter along an
arbitrary direction (vector) field.

Why You May Care About This Op


Well, you probably don't care, if all you want to do is perform particle-based transport
(advection), along the body's Field/velocity channel (or Particle/velocity channel), since this is
done automatically at the start of each time-step, before the graph evolves any bodies.
However, there are times when the automatic transport is not enough (or not what you want).
This Op is designed to let you explicitly set up your own particle transport stage, or add
another one (or several) at some user- chosen point(s) during the time-step.

Transport Settings Parameters


Position Channel
The name of the Particle-Channel you intend to transport. This is normally the Particle/position
channel, if you actually want to transport particle positions. (However, any vector-valued ParticleChannel is allowed, which means you could use this Op to alter per-particle RGB color or similar
by phrasing the color update problem in terms of physical transport). The channel must already be
present in the Particle-Shape of course.
Direction Channel
Defines the vector-field through which the particles will travel. (The default value being the
body's own velocity-field). However, if a FieldOp graph is connected to the direction-field input,
the vector-field defined by that graph overrides the field in this Field-Channel.
Normalize
Normalize the vectors found in the direction field (or 'Direction Channel') before transporting the
particles through it.

Inputs

body-input
All bodies matching the Particle signature will be admitted through this input.
direction-field
Connecting a FieldOp graph to this input will override the direction- field specified as a FieldChannel in the 'Direction Channel' parameter.
displacement-field
The distance along the direction field which the particles are transported (the "displacement") is
scaled by dt (the length of the current time-step, in seconds) as long as no displacement-field is
connected.

Outputs
body-output
Admitted or not, all bodies encountered in body-input will be passed down through the bodyoutput.

Rigid-Mesh-Assign
Overview
Assigns a mesh to all admitted rigid bodies.

Stepping Parameters
Enabled
No description available.

Inputs
body-input
The Rigid Bodies which may be admitted
mesh-input
The Mesh body which defines the Rigid Body's mes

Outputs
body-output
The resulting bodies are passed down through this output

Swirl
Overview
Boosts existing vorticity within the Field/velocity channel of all admitted bodies.

Why You May Care About This Op


Say you have a smoke, fire (or even liquid) simulation which has everything the director
wants except it lacks the swirl and eddies only stronger vortices in your flow can create. This
Op will boost all the regions of the fluid flow that have vortices, giving you more of this type of
look.

Notes
Only bodies with a Dynamic Motion-Type are evolved by this Op.

Settings Parameters
Strength
The strength of the vorticity boosting. Higher values mean stronger vortices will form. Too high
values may start breaking up your fluid - if this happens, increase the 'Max Timesteps' global
parameter.

Inputs
body-input
The fluid bodies are fed through the body-input, and are required to match the Field body
signature in order to be admitted and evolved by this Op.
mask-field
The FieldOp graph optionally connected to this input is sampled at every Field/velocity cell,
where the sampled value is used to scale the 'Strength' parameter.

Outputs
body-output
Admitted or not, all bodies encountered in body-input will be passed down through the bodyoutput.

02- Body Ops Origin


Body
Overview
A Body signature describes a blank body with no pre-defined shapes or channels. It contains
only the most basic properties: Motion-Type and a tile layout. Not very useful as-is, but
typically blank bodies are used to add arbitrary shapes & channels to for storage, or other
special "channel processing" in the time-step graph.

Channels
There are no pre-defined channels in this signature.

Motion Type Parameters


Motion Type
Defines if and how the body's state is evolved over time. If a body has evolving state, then it must
survive from one time-step to the next, and thus the body isn't terminated until the end of the
entire simulation. Bodies having a Dynamic, Kinematic and User Motion-Type are all evolving
bodies. Non-evolving bodies have Unsolved Motion-Type, as there is no state to evolve and thus,
nothing survives from one time-step to the next.
Dynamic: Evolve both position and velocity state on the body. This is the normal setting for fully
dynamic fluid, rigid, or soft bodies, or particle systems, etc.
Kinematic: Evolve only the position state on the body. This is normally used for bodies which
evolve only through passive advection (transport) through velocity-fields of other bodies (socalled 'detail sims graphs'), etc. Kinematic bodies do not modify their own velocity information at
all; in fact they often don't even have their own velocity channels, and when they do, they are
always "stolen" from other bodies.
User: State is evolved, however Naiad makes no assumptions about which state that would be, nor
how it evolves. This Motion-Type is designed for people doing heavy experimentation or
implementing their own transport and dynamics solvers inside the Naiad framework.
Unsolved: The body has no evolving state and its data must be re-created at the start of every
time-step.

Tile Layout Parameters


Cell Scale
Amount to scale the dimensions of the cells in the tile layout by. Note that this parameter does not
represent the actual worldspace dimensions of the cells, rather it uniformly scales them. To find

out the actual worldspace dimensions you have to multiply this parameter by the global parameter
"Master Cell Size". This allows you to set a global cell size in worldspace units for the whole
simulation (the "Master Cell Size"), and still allow each body to have its own cell-size by
changing this parameter. If you later decide to globally uprez the simulation, you don't have to
find every "Cell Scale" parameter on all the BodyOps that have it, but simply change the "Master
Cell Size".
Tile Size
The number of cells along each dimension of each tile in the volume

Outputs
body-output
No description available.

Camera
Overview
A Camera signature describes a 3D camera body.

Motion Type Parameters


Motion Type
Defines if and how the body's state is evolved over time. This signature is a non-evolving
signature, and so the only accepted Motion-Type is Unsolved, which means there is no state to
evolve and thus, nothing survives from one time-step to the next.

Transform Parameters
Translate
Body-to-worldspace translation
Rotate
Body-to-worldspace rotation
Scale
Body-to-worldspace scale

View Frustum Parameters


Near Clip
No description available.
Far Clip
No description available.
Aspect Ratio
No description available.
Angle Of View

No description available.

Outputs
body-output
No description available.

Emp-Read
Overview
Reads bodies from an EMP file.
Mesh bodies read by this op are automatically interpolated in space to the precise current
solver time, even if no substep EMPs are available (though they will help the precision of the
interpolation). Per-vertex velocities will also be automatically created and stored in the
Point/velocity channel if they do not already exist in the imported mesh. NOTE that the mesh
interpolation and automatic velocity calculation will fail if the mesh changes topology.

Body Parameters
Body Names
Expects a white-space separated list of body names which, if encountered in the EMP file, will be
read and loaded by this op. The default argument of * is a wildcard representing all bodies stored
in the EMP. You can right-click on this parameter to get a context-menu of available body names.

Cache Parameters
EMP Cache
The name of the EMP file to read bodies from
Frame Padding
The number of zeroes to padding the frame number by, when expanding to the absolute EMP
filename.
Frame Offset
Offset the frame to read by this parameter
Repeat End Frame
If the frame being read is past the end of the EMP sequence, reads the last available EMP instead
of reporting an error.

World Transform Parameters


Transform Point/position
This parameter is not yet enabled
Use Local Point/velocity

This parameter is not yet enabled

Mesh Body Settings Parameters


Unit Conversion
Rescales the imported mesh to meter scale units (if required)
Cell Scale
Amount to scale the dimensions of the cells in the tile layout by. Note that this parameter does not
represent the actual worldspace dimensions of the cells, rather it uniformly scales them. To find
out the actual worldspace dimensions you have to multiply this parameter by the global parameter
"Master Cell Size". This allows you to set a global cell size in worldspace units for the whole
simulation (the "Master Cell Size"), and still allow each body to have its own cell-size by
changing this parameter. If you later decide to globally uprez the simulation, you don't have to
find every "Cell Scale" parameter on all the BodyOps that have it, but simply change the "Master
Cell Size".
Tile Size
The number of cells along each dimension of each tile in the volume

Outputs
body-output
All bodies loaded from the EMP will be passed downstream through this output.

Emp-Read-Isolated
Overview
Reads a single body from an EMP file.
A mesh body read by this op is automatically interpolated in space to the precise current
solver time, even if no substep EMPs are available (though they will help the precision of the
interpolation). Per-vertex velocities will also be automatically created and stored in the
Point/velocity channel if they do not already exist in the imported mesh. NOTE that the mesh
interpolation and automatic velocity calculation will fail if the mesh changes topology.

Body Parameters
Body Name
This parameter is used to specify the name of the body to load from the EMP file. You can rightclick on this parameter to get a context-menu of available body-names.

Cache Parameters
EMP Cache

The name of the EMP file to read bodies from


Frame Padding
The number of zeroes to padding the frame number by, when expanding to the absolute EMP
filename.
Frame Offset
Offset the frame to read by this parameter
Repeat End Frame
If the frame being read is past the end of the EMP sequence, reads the last available EMP instead
of reporting an error.

World Transform Parameters


Transform Point/position
This parameter is not yet enabled
Use Local Point/velocity
This parameter is not yet enabled

Mesh Body Settings Parameters


Unit Conversion
Rescales the imported mesh to meter scale units (if required)
Cell Scale
Amount to scale the dimensions of the cells in the tile layout by. Note that this parameter does not
represent the actual worldspace dimensions of the cells, rather it uniformly scales them. To find
out the actual worldspace dimensions you have to multiply this parameter by the global parameter
"Master Cell Size". This allows you to set a global cell size in worldspace units for the whole
simulation (the "Master Cell Size"), and still allow each body to have its own cell-size by
changing this parameter. If you later decide to globally uprez the simulation, you don't have to
find every "Cell Scale" parameter on all the BodyOps that have it, but simply change the "Master
Cell Size".
Tile Size
The number of cells along each dimension of each tile in the volume

Outputs
body-output
The single body loaded from the EMP will be passed down through this output.

Field
Overview
A Field signature describes a generic field body.

Channels
There are no standard channels defined for field bodies. The only defined thing is the
guarantee that there is in fact a Field-Shape.

Motion Type Parameters


Motion Type
Defines if and how the body's state is evolved over time. This signature is a non-evolving
signature, and so the only accepted Motion-Type is Unsolved, which means there is no state to
evolve and thus, nothing survives from one time-step to the next.

Tile Layout Parameters


Cell Scale
Amount to scale the dimensions of the cells in the tile layout by. Note that this parameter does not
represent the actual worldspace dimensions of the cells, rather it uniformly scales them. To find
out the actual worldspace dimensions you have to multiply this parameter by the global parameter
"Master Cell Size". This allows you to set a global cell size in worldspace units for the whole
simulation (the "Master Cell Size"), and still allow each body to have its own cell-size by
changing this parameter. If you later decide to globally uprez the simulation, you don't have to
find every "Cell Scale" parameter on all the BodyOps that have it, but simply change the "Master
Cell Size".
Tile Size
The number of cells along each dimension of each tile in the volume

Outputs
body-output
No description available.

Field-Fire
Overview
A Field-Fire signature uses only fields to describe a fire body with no free-surface (unlike
liquids which do have a surface). Field-Fire bodies are typically fed through a Combust
BodyOp at some point in the time-step graph. The Combust BodyOp is responsible for
calculting the volumetric combustion necessary for setting the light and expansion-rate FieldChannels (as described below):

Channels

The following standard channels are always present in Field-Gas bodies:


Vector Field/velocity: The worldspace velocity field of the fluid, subject to the constraints
imposed by the time-step graph evolving the body (for example, boundary conditions and
incompressibility).
Float Field/temperature: A fire temperature field, where each cell represents the temperature
of the fluid at that spatial location, given in Kelvin.
Float Field/fuel: A fire fluid field, where each cell represents the amount of fuel at that spatial
location.
Float Field/light: A fire light field, where each cell represents the amount of radiance emitted
from that spatial location. The radiance is typically created by the Combust BodyOp.
Float Field/expansion-rate: A fire expansion field, where each cell represents the amount of
hot-air expansion happening at from that spatial location. The expansion-rate is typically
modified by the Combust BodyOp.
Float Field/solid-distance: A worldspace signed distance field, representing the surface and
interior of any collision/solid objects.
Vector Field/solid-velocity: The worldspace velocity field of any collision/solid objects.

Motion Type Parameters


Motion Type
Defines if and how the body's state is evolved over time. If a body has evolving state, then it must
survive from one time-step to the next, and thus the body isn't terminated until the end of the
entire simulation. Bodies having a Dynamic, Kinematic and User Motion-Type are all evolving
bodies. Non-evolving bodies have Unsolved Motion-Type, as there is no state to evolve and thus,
nothing survives from one time-step to the next.
Dynamic: Evolve both position and velocity state on the body. This is the normal setting for fully
dynamic fluid, rigid, or soft bodies, or particle systems, etc.
Kinematic: Evolve only the position state on the body. This is normally used for bodies which
evolve only through passive advection (transport) through velocity-fields of other bodies (socalled 'detail sims graphs'), etc. Kinematic bodies do not modify their own velocity information at
all; in fact they often don't even have their own velocity channels, and when they do, they are
always "stolen" from other bodies.
User: State is evolved, however Naiad makes no assumptions about which state that would be, nor

how it evolves. This Motion-Type is designed for people doing heavy experimentation or
implementing their own transport and dynamics solvers inside the Naiad framework.
Unsolved: The body has no evolving state and its data must be re-created at the start of every
time-step.

Tile Layout Parameters


Cell Scale
Amount to scale the dimensions of the cells in the tile layout by. Note that this parameter does not
represent the actual worldspace dimensions of the cells, rather it uniformly scales them. To find
out the actual worldspace dimensions you have to multiply this parameter by the global parameter
"Master Cell Size". This allows you to set a global cell size in worldspace units for the whole
simulation (the "Master Cell Size"), and still allow each body to have its own cell-size by
changing this parameter. If you later decide to globally uprez the simulation, you don't have to
find every "Cell Scale" parameter on all the BodyOps that have it, but simply change the "Master
Cell Size".
Tile Size
The number of cells along each dimension of each tile in the volume

Transport Parameters
Transport Precision
The accurary of the particle transport (advection). This property ranges from 0 to 1, where 0
results in very low precision and 1 is very high precision. The higher the precision, the more
substeps the solver will typically require during transport, resulting in a slightly slower (but more
accurate) solve. In general, more precision is usually desired when dealing with fast-moving
bodies. Symptoms that can be alleviated by increasing this property include volume loss, particle
bunching, and spurious leaking through collision surfaces.
Max Transport Substeps
Limits the number of substeps the transport solver is allowed to take, regardless of how many the
'Transport Precision' property asks for. Making this value too low may defeat the purpose of the
'Transport Precision' property.

Dynamics Parameters
Interaction Set
A whitespace seperated list of body names that this body will interact/collide against, if
encountered in the Dynamics op. The asterisk (*) symbol is a wildcard representing all bodies.
Time Scale
This parameter is a non-physically-correct "retimer" which changes the flow of time in the
transport solver. Values > 1 results in a global speedup of the fluid flow, without introducing any
new velocities or accelerations into the simulation. Values less than 1 similarly result in a global
slowdown of the fluid flow. Use this property with care, as it may does introduce unwanted sideeffects, especially at high settings.
Fluid Density
The physical density of the fluid, given in units of mass per volume (in SI units: kg/m^3). NOTE
that this global value is overriden by the standard scalar channel Field/density (if it exists).

Some standard density values (in SI units):


Air: 1
Water: 1000
Viscosity
The dynamic viscosity of the fluid, given in units of mass per time per length (in SI units: kg/
(s*m)). NOTE that this global value is overriden by the standard scalar channel Field/viscosity (if
it exists).
The fully accurate viscosity in Naiad is cool, but may slow down your simulations significantly, if
you're using the default settings in the Dynamics Op. If you notice a major slowdown, please
lower the 'Precision' parameter on the Dynamics Op as low as possible while still yielding the
desired viscous fluid behavior.
Some standard viscosity values (in SI units):

Milk: 0.3
Honey: 2-10
Motor Oil: 14-90
Molten Chocolate: 45-130
Peanut Butter: 250

Outputs
body-output
No description available.

Field-Gas
Overview
A Field-Gas signature uses only fields to describe a gaseous body. Gaseous bodies are fluid
bodies with no free-surface (unlike liquids which do have a surface).
Field-Gas bodies are typically used when simulating gases where Field-Smoke or Field-Fire
are too specific (or overkill) for your needs. You can think of Field-Gas as the starting point for
a "build it yourself" gas body, since all it defines are the most basic channels needed for any
gas: just velocity & solid collision channels.

Channels
The following standard channels are always present in Field-Gas bodies:
Vector Field/velocity: The worldspace velocity field of the fluid, subject to the constraints
imposed by the time-step graph evolving the body (for example, boundary conditions and
incompressibility).
Float Field/solid-distance: A worldspace signed distance field, representing the surface and
interior of any collision/solid objects.
Vector Field/solid-velocity: The worldspace velocity field of any collision/solid objects.

Motion Type Parameters


Motion Type
Defines if and how the body's state is evolved over time. If a body has evolving state, then it must
survive from one time-step to the next, and thus the body isn't terminated until the end of the
entire simulation. Bodies having a Dynamic, Kinematic and User Motion-Type are all evolving
bodies. Non-evolving bodies have Unsolved Motion-Type, as there is no state to evolve and thus,
nothing survives from one time-step to the next.
Dynamic: Evolve both position and velocity state on the body. This is the normal setting for fully
dynamic fluid, rigid, or soft bodies, or particle systems, etc.
Kinematic: Evolve only the position state on the body. This is normally used for bodies which
evolve only through passive advection (transport) through velocity-fields of other bodies (socalled 'detail sims graphs'), etc. Kinematic bodies do not modify their own velocity information at
all; in fact they often don't even have their own velocity channels, and when they do, they are
always "stolen" from other bodies.
User: State is evolved, however Naiad makes no assumptions about which state that would be, nor
how it evolves. This Motion-Type is designed for people doing heavy experimentation or
implementing their own transport and dynamics solvers inside the Naiad framework.
Unsolved: The body has no evolving state and its data must be re-created at the start of every
time-step.

Tile Layout Parameters


Cell Scale
Amount to scale the dimensions of the cells in the tile layout by. Note that this parameter does not
represent the actual worldspace dimensions of the cells, rather it uniformly scales them. To find
out the actual worldspace dimensions you have to multiply this parameter by the global parameter
"Master Cell Size". This allows you to set a global cell size in worldspace units for the whole
simulation (the "Master Cell Size"), and still allow each body to have its own cell-size by
changing this parameter. If you later decide to globally uprez the simulation, you don't have to
find every "Cell Scale" parameter on all the BodyOps that have it, but simply change the "Master
Cell Size".
Tile Size
The number of cells along each dimension of each tile in the volume

Transport Parameters
Transport Precision
The accurary of the particle transport (advection). This property ranges from 0 to 1, where 0
results in very low precision and 1 is very high precision. The higher the precision, the more
substeps the solver will typically require during transport, resulting in a slightly slower (but more
accurate) solve. In general, more precision is usually desired when dealing with fast-moving
bodies. Symptoms that can be alleviated by increasing this property include volume loss, particle
bunching, and spurious leaking through collision surfaces.
Max Transport Substeps
Limits the number of substeps the transport solver is allowed to take, regardless of how many the
'Transport Precision' property asks for. Making this value too low may defeat the purpose of the
'Transport Precision' property.

Dynamics Parameters
Interaction Set
A whitespace seperated list of body names that this body will interact/collide against, if
encountered in the Dynamics op. The asterisk (*) symbol is a wildcard representing all bodies.
Time Scale
This parameter is a non-physically-correct "retimer" which changes the flow of time in the
transport solver. Values > 1 results in a global speedup of the fluid flow, without introducing any
new velocities or accelerations into the simulation. Values less than 1 similarly result in a global
slowdown of the fluid flow. Use this property with care, as it may does introduce unwanted sideeffects, especially at high settings.
Fluid Density
The physical density of the fluid, given in units of mass per volume (in SI units: kg/m^3). NOTE
that this global value is overriden by the standard scalar channel Field/density (if it exists).
Some standard density values (in SI units):
Air: 1
Water: 1000

Viscosity
The dynamic viscosity of the fluid, given in units of mass per time per length (in SI units: kg/
(s*m)). NOTE that this global value is overriden by the standard scalar channel Field/viscosity (if
it exists).
The fully accurate viscosity in Naiad is cool, but may slow down your simulations significantly, if
you're using the default settings in the Dynamics Op. If you notice a major slowdown, please
lower the 'Precision' parameter on the Dynamics Op as low as possible while still yielding the
desired viscous fluid behavior.
Some standard viscosity values (in SI units):

Milk: 0.3
Honey: 2-10
Motor Oil: 14-90
Molten Chocolate: 45-130
Peanut Butter: 250

Outputs
body-output
No description available.

Field-Smoke
Overview
A Field-Smoke signature uses only fields to describe a smoke body with no free-surface
(unlike liquids which do have a surface).

Channels

The following standard channels are always present in Field-Gas bodies:


Vector Field/velocity: The worldspace velocity field of the fluid, subject to the constraints
imposed by the time-step graph evolving the body (for example, boundary conditions and
incompressibility).
Float Field/temperature: A smoke temperature field, where each cell represents the
temperature of the fluid at that spatial location, given in Kelvin.
Float Field/smoke: A smoke density field, where each cell represents the density of smoke at
that spatial location.
Float Field/solid-distance: A worldspace signed distance field, representing the surface and
interior of any collision/solid objects.
Vector Field/solid-velocity: The worldspace velocity field of any collision/solid objects.

Motion Type Parameters


Motion Type
Defines if and how the body's state is evolved over time. If a body has evolving state, then it must
survive from one time-step to the next, and thus the body isn't terminated until the end of the
entire simulation. Bodies having a Dynamic, Kinematic and User Motion-Type are all evolving
bodies. Non-evolving bodies have Unsolved Motion-Type, as there is no state to evolve and thus,
nothing survives from one time-step to the next.
Dynamic: Evolve both position and velocity state on the body. This is the normal setting for fully
dynamic fluid, rigid, or soft bodies, or particle systems, etc.
Kinematic: Evolve only the position state on the body. This is normally used for bodies which
evolve only through passive advection (transport) through velocity-fields of other bodies (socalled 'detail sims graphs'), etc. Kinematic bodies do not modify their own velocity information at
all; in fact they often don't even have their own velocity channels, and when they do, they are
always "stolen" from other bodies.
User: State is evolved, however Naiad makes no assumptions about which state that would be, nor
how it evolves. This Motion-Type is designed for people doing heavy experimentation or
implementing their own transport and dynamics solvers inside the Naiad framework.
Unsolved: The body has no evolving state and its data must be re-created at the start of every
time-step.

Tile Layout Parameters


Cell Scale
Amount to scale the dimensions of the cells in the tile layout by. Note that this parameter does not
represent the actual worldspace dimensions of the cells, rather it uniformly scales them. To find
out the actual worldspace dimensions you have to multiply this parameter by the global parameter
"Master Cell Size". This allows you to set a global cell size in worldspace units for the whole
simulation (the "Master Cell Size"), and still allow each body to have its own cell-size by
changing this parameter. If you later decide to globally uprez the simulation, you don't have to
find every "Cell Scale" parameter on all the BodyOps that have it, but simply change the "Master
Cell Size".
Tile Size
The number of cells along each dimension of each tile in the volume

Transport Parameters
Transport Precision
The accurary of the particle transport (advection). This property ranges from 0 to 1, where 0
results in very low precision and 1 is very high precision. The higher the precision, the more
substeps the solver will typically require during transport, resulting in a slightly slower (but more
accurate) solve. In general, more precision is usually desired when dealing with fast-moving
bodies. Symptoms that can be alleviated by increasing this property include volume loss, particle
bunching, and spurious leaking through collision surfaces.
Max Transport Substeps
Limits the number of substeps the transport solver is allowed to take, regardless of how many the

'Transport Precision' property asks for. Making this value too low may defeat the purpose of the
'Transport Precision' property.

Dynamics Parameters
Interaction Set
A whitespace seperated list of body names that this body will interact/collide against, if
encountered in the Dynamics op. The asterisk (*) symbol is a wildcard representing all bodies.
Time Scale
This parameter is a non-physically-correct "retimer" which changes the flow of time in the
transport solver. Values > 1 results in a global speedup of the fluid flow, without introducing any
new velocities or accelerations into the simulation. Values less than 1 similarly result in a global
slowdown of the fluid flow. Use this property with care, as it may does introduce unwanted sideeffects, especially at high settings.
Fluid Density
The physical density of the fluid, given in units of mass per volume (in SI units: kg/m^3). NOTE
that this global value is overriden by the standard scalar channel Field/density (if it exists).
Some standard density values (in SI units):
Air: 1
Water: 1000
Viscosity
The dynamic viscosity of the fluid, given in units of mass per time per length (in SI units: kg/
(s*m)). NOTE that this global value is overriden by the standard scalar channel Field/viscosity (if
it exists).
The fully accurate viscosity in Naiad is cool, but may slow down your simulations significantly, if
you're using the default settings in the Dynamics Op. If you notice a major slowdown, please
lower the 'Precision' parameter on the Dynamics Op as low as possible while still yielding the
desired viscous fluid behavior.
Some standard viscosity values (in SI units):

Milk: 0.3
Honey: 2-10
Motor Oil: 14-90
Molten Chocolate: 45-130
Peanut Butter: 250

Outputs
body-output
No description available.

Hair
No description available.

Motion Type Parameters


Motion Type
No description available.

Tile Layout Parameters


Cell Scale
No description available.
Tile Size
No description available.

Outputs
body-output
No description available.

Mesh
Overview
A Mesh signature describes a triangle-mesh body.

Channels
The following standard channels are always present in Mesh bodies:
Vector Point/position: The worldspace position of each mesh point (vertex).
Integer Vector Triangle/index: The per-triangle vertex connectivity.

Motion Type Parameters


Motion Type
Defines if and how the body's state is evolved over time. This signature is a non-evolving
signature, and so the only accepted Motion-Type is Unsolved, which means there is no state to
evolve and thus, nothing survives from one time-step to the next.

Tile Layout Parameters

Cell Scale
Amount to scale the dimensions of the cells in the tile layout by. Note that this parameter does not
represent the actual worldspace dimensions of the cells, rather it uniformly scales them. To find
out the actual worldspace dimensions you have to multiply this parameter by the global parameter
"Master Cell Size". This allows you to set a global cell size in worldspace units for the whole
simulation (the "Master Cell Size"), and still allow each body to have its own cell-size by
changing this parameter. If you later decide to globally uprez the simulation, you don't have to
find every "Cell Scale" parameter on all the BodyOps that have it, but simply change the "Master
Cell Size".
Tile Size
The number of cells along each dimension of each tile in the volume

Outputs
body-output
No description available.

Particle
Overview
A Particle signature describes a generic particle body (or 'particle system' body).

Channels
The following standard channels are always present in Particle bodies:
Vector Particle/position: The worldspace position of each particle.
Vector Particle/velocity: The worldspace velocity of each particle.

Motion Type Parameters


Motion Type
Defines if and how the body's state is evolved over time. If a body has evolving state, then it must
survive from one time-step to the next, and thus the body isn't terminated until the end of the
entire simulation. Bodies having a Dynamic, Kinematic and User Motion-Type are all evolving
bodies. Non-evolving bodies have Unsolved Motion-Type, as there is no state to evolve and thus,
nothing survives from one time-step to the next.
Dynamic: Evolve both position and velocity state on the body. This is the normal setting for fully
dynamic fluid, rigid, or soft bodies, or particle systems, etc.
Kinematic: Evolve only the position state on the body. This is normally used for bodies which
evolve only through passive advection (transport) through velocity-fields of other bodies (socalled 'detail sims graphs'), etc. Kinematic bodies do not modify their own velocity information at
all; in fact they often don't even have their own velocity channels, and when they do, they are
always "stolen" from other bodies.

User: State is evolved, however Naiad makes no assumptions about which state that would be, nor
how it evolves. This Motion-Type is designed for people doing heavy experimentation or
implementing their own transport and dynamics solvers inside the Naiad framework.
Unsolved: The body has no evolving state and its data must be re-created at the start of every
time-step.

Tile Layout Parameters


Cell Scale
Amount to scale the dimensions of the cells in the tile layout by. Note that this parameter does not
represent the actual worldspace dimensions of the cells, rather it uniformly scales them. To find
out the actual worldspace dimensions you have to multiply this parameter by the global parameter
"Master Cell Size". This allows you to set a global cell size in worldspace units for the whole
simulation (the "Master Cell Size"), and still allow each body to have its own cell-size by
changing this parameter. If you later decide to globally uprez the simulation, you don't have to
find every "Cell Scale" parameter on all the BodyOps that have it, but simply change the "Master
Cell Size".
Tile Size
The number of cells along each dimension of each tile in the volume

Transport Parameters
Transport Precision
The accurary of the particle transport (advection). This property ranges from 0 to 1, where 0
results in very low precision and 1 is very high precision. The higher the precision, the more
substeps the solver will typically require during transport, resulting in a slightly slower (but more
accurate) solve. In general, more precision is usually desired when dealing with fast-moving
bodies. Symptoms that can be alleviated by increasing this property include volume loss, particle
bunching, and spurious leaking through collision surfaces.
Max Transport Substeps
Limits the number of substeps the transport solver is allowed to take, regardless of how many the
'Transport Precision' property asks for. Making this value too low may defeat the purpose of the
'Transport Precision' property.

Supersampling Parameters
Particle Supersampling
The particle density throughout the body, given as a one-dimensional unit. To get the particle
count per cell in the body's tile-layout, take the cube of this property. For example,
supersampling=2 results in 8 particles per cell (2^3=8).
Surface Supersampling
The particle density at the surface of the body, where the surface is defined by a distance field (if
one exists -- for example, the Particle-Liquid body uses the standard Field/fluid-distance channel
to define the surface of the body). The common use for this property is to allow a more dense
particle distribution at the surface layer of the body. Same units as the 'Particle Supersampling'
property (see above).
Surface Bandwidth
The width of the "surface band" wherein the 'Surface Supersampling' property is used to control

the particle density.

Dynamics Parameters
Interaction Set
A whitespace seperated list of body names that this body will interact/collide against, if
encountered in the Dynamics op. The asterisk (*) symbol is a wildcard representing all bodies.
Time Scale
This parameter is a non-physically-correct "retimer" which changes the flow of time in the
transport solver. Values > 1 results in a global speedup of the fluid flow, without introducing any
new velocities or accelerations into the simulation. Values less than 1 similarly result in a global
slowdown of the fluid flow. Use this property with care, as it may does introduce unwanted sideeffects, especially at high settings.

Outputs
body-output
No description available.

Particle-Liquid
Overview
A Particle-Liquid signature uses a mix of particles and fields to describe a liquid body.

Channels

The following standard channels are always present in Particle-Liquid bodies:


Vector Particle/position: The worldspace position of each particle.
Vector Particle/velocity: The worldspace velocity of each particle.
Vector Field/velocity: The worldspace velocity field of the fluid, mirroring the Particle/velocity
channel. Specifically, every Field/velocity cell contains a weighted average of every
Particle/velocity bounded by the cell, subject to the constraints imposed by the time-step
graph evolving the body (for example, boundary conditions and incompressibility).
Float Field/fluid-distance: A worldspace signed distance field, representing the fluid surface
and interior. Specifically, the Field/fluid-distance channel is guaranteed to match the particle
distribution in the sense that where there are particles, there is also a fluid surface enveloping
those particles and that surface is encoded in this channel.
Float Field/solid-distance: A worldspace signed distance field, representing the surface and
interior of any collision/solid objects.
Vector Field/solid-velocity: The worldspace velocity field of any collision/solid objects.
Float Field/particle-count: The number of particles per cell in the body's tile-layout.

Motion Type Parameters


Motion Type
Defines if and how the body's state is evolved over time. If a body has evolving state, then it must
survive from one time-step to the next, and thus the body isn't terminated until the end of the
entire simulation. Bodies having a Dynamic, Kinematic and User Motion-Type are all evolving
bodies. Non-evolving bodies have Unsolved Motion-Type, as there is no state to evolve and thus,
nothing survives from one time-step to the next.
Dynamic: Evolve both position and velocity state on the body. This is the normal setting for fully
dynamic fluid, rigid, or soft bodies, or particle systems, etc.
Kinematic: Evolve only the position state on the body. This is normally used for bodies which
evolve only through passive advection (transport) through velocity-fields of other bodies (socalled 'detail sims graphs'), etc. Kinematic bodies do not modify their own velocity information at
all; in fact they often don't even have their own velocity channels, and when they do, they are
always "stolen" from other bodies.
User: State is evolved, however Naiad makes no assumptions about which state that would be, nor
how it evolves. This Motion-Type is designed for people doing heavy experimentation or
implementing their own transport and dynamics solvers inside the Naiad framework.
Unsolved: The body has no evolving state and its data must be re-created at the start of every
time-step.

Tile Layout Parameters


Cell Scale
Amount to scale the dimensions of the cells in the tile layout by. Note that this parameter does not
represent the actual worldspace dimensions of the cells, rather it uniformly scales them. To find
out the actual worldspace dimensions you have to multiply this parameter by the global parameter
"Master Cell Size". This allows you to set a global cell size in worldspace units for the whole
simulation (the "Master Cell Size"), and still allow each body to have its own cell-size by
changing this parameter. If you later decide to globally uprez the simulation, you don't have to
find every "Cell Scale" parameter on all the BodyOps that have it, but simply change the "Master
Cell Size".
Tile Size
The number of cells along each dimension of each tile in the volume

Transport Parameters
Transport Precision
The accurary of the particle transport. This property ranges from 0 to 1. The higher the precision,
the more substeps the solver will typically require during transport, resulting in a slightly slower
(but more accurate) solve. In general, more precision is usually desired when dealing with fastmoving bodies. Symptoms that can be alleviated by increasing this property include volume loss,
particle bunching, and spurious leaking through collision surfaces.
Max Transport Substeps
Limits the number of substeps the transport solver is allowed to take, regardless of how many the
'Transport Precision' property asks for. Making this value too low may defeat the purpose of the

'Transport Precision' property.

Supersampling Parameters
Particle Supersampling
The particle density throughout the body, given as a one-dimensional unit. To get the particle
count per cell in the body's tile-layout, take the cube of this property. For example,
supersampling=2 results in 8 particles per cell (2^3=8).
Surface Supersampling
The particle density at the surface of the body, where the surface is defined by a distance field (if
one exists -- for example, the Particle-Liquid body uses the standard Field/fluid-distance channel
to define the surface of the body). The common use for this property is to allow a more dense
particle distribution at the surface layer of the body. Same units as the 'Particle Supersampling'
property (see above).
Surface Bandwidth
The width of the "surface band" wherein the 'Surface Supersampling' property is used to control
the particle density.

Dynamics Parameters
Interaction Set
A whitespace seperated list of body names that this body will interact/collide against, if
encountered in the Dynamics op. The asterisk (*) symbol is a wildcard representing all bodies.
Fluid Method
The numerical method used to simulate this fluid body over time.
FLIP: Exotic Matter's next-generation implementation of the classic Fluid Implicit Particle
Method. This is the recommended setting for fluids that are very splashy or turbulent.
DEFLIP: Exotic Matter's brand new simulation method that produces smoother fluid surfaces
while preserving nearly the same detail as with the FLIP method.
Velocity Diffusion
The amount of numerical diffusion to introduce in the velocity channel. Tiny amounts of this can
help reduce particle noise, which may be beneficial for producing smooth surfaces or just "denoise" the particle motion in general. As this parameter takes on larger values, the fluid will
appear more viscous. Using this parameter for viscosity will result faster simulation times than
using the regular Viscosity dynamics parameter, however the resulting viscosity is not as accurate
as that which is generated by the Viscosity dynamics property (see below).
Surface Tension
Specified in standard units of force per unit length (or energy per unit area). There is a risk of the
simulation going unstable if the time step or surface tension are too large or the grid spacing too
small.
Time Scale
This parameter is a non-physically-correct "retimer" which changes the flow of time in the
transport solver. Values > 1 result in a global speedup of the fluid flow, without introducing any
new velocities or accelerations into the simulation. Values less than 1 similarly result in a global
slowdown of the fluid flow. Use this property with care, as it may does introduce unwanted sideeffects, especially at high settings.
Fluid Density

The physical density of the fluid, given in units of mass per volume (in SI units: kg/m^3). NOTE
that this global value is overriden by the standard scalar channel Field/density (if it exists).
Some standard density values (in SI units):
Air: 1
Water: 1000
Viscosity
The dynamic viscosity of the fluid, given in units of mass per time per length (in SI units: kg/
(s*m)). NOTE that this global value is overriden by the standard scalar channel Field/viscosity (if
it exists).
The fully accurate viscosity in Naiad is cool, but may slow down your simulations significantly, if
you're using the default settings in the Dynamics Op. If you notice a major slowdown, please
lower the 'Precision' parameter on the Dynamics Op as low as possible while still yielding the
desired viscous fluid behavior.
Some standard viscosity values (in SI units):

Milk: 0.3
Honey: 2-10
Motor Oil: 14-90
Molten Chocolate: 45-130
Peanut Butter: 250

Fluid Radius Factor


Do NOT change this

Outputs
body-output
No description available.

Rigid-Body
No description available.

Motion Type Parameters


Motion Type
No description available.

Tile Layout Parameters


Cell Scale
No description available.
Tile Size
No description available.

Initial Transform Parameters


Translate
Initial body-to-worldspace translation
Rotate
Initial body-to-worldspace rotation
Scale
Initial body-to-worldspace scale

Dynamics Parameters
Interaction Set
A whitespace seperated list of body names that this body will interact/collide against, if
encountered in the Dynamics op. The asterisk (*) symbol is a wildcard representing all bodies.
Solid Density
The material density of the rigid body, given in units of kg/m^3. This property gets used
(internally) to derive the total mass of the rigid body by integrating it over the volume defined by
the rigid body's mesh. If the rigid body interacts with a fluid body (for example a Particle-Liquid
body), this parameter determines whether or not the rigid body floats. Specifically, if this property
is less than or equals the "Fluid Density" property of the interacting fluid body, the rigid body will
float. Otherwise it will sink.
Resilience
The resilience of the rigid body. More resilient bodies will tend to bounce more when interacting
with volumes or other rigid bodies.
Center of Mass Offset
Shifts the center of mass from the mesh's center
Inertia Tensor Rescale
Rescales the inertia tensor to increase/decrease rotational stability.
Shell Thickness
The worldspace thickess of the shell
Initial Linear Velocity
The initial linear velocity of the Rigid Body
Initial Angular Velocity
The initial angular velocity of the Rigid Body

Outputs
body-output
No description available.

Tet
No description available.

Motion Type Parameters


Motion Type
No description available.

Tile Layout Parameters


Cell Scale
No description available.
Tile Size
No description available.

Outputs
body-output
No description available.

Volume
Overview
A Volume signature encodes a volumetric description of an object, storing the object's
geometry as an implicit field, as opposed to explicitly reducing the object into a set of vertices
and faces and storing those, as the Mesh signature does.

The Distance Field Channel


The object is encoded in a signed distance field stored in the Field/distance channel which,
like all Field-Channels, is mapped out across the body's tile layout.
Unlike volumetric representations such as voxel fields, each cell in a signed distance field
knows not only whether it lies in the interior or exterior of the object, but also exacly how far
from the surface it is. This property makes it possible to easily convert a distance-field into a
corresponding gradient vector field. Gradient vector fields have the useful property of always
pointing away from the surface; making gradient fields ideal for calculating surface normals at
any point along (or somwhat near) the surface of the encoded object, without having to
explicitly store normals ahead of time. The standard convention used by signed distance

fields (which Naiad distance-fields also follow) is that a negative distance implies the cell lies
in the object's interior whereas positive distances lie in the exterior.

Channels
The following standard channels are always present in Volume bodies:
Float Field/distance: The worldspace signed distance field of the encoded object.
Vector Field/velocity: The worldspace velocity of the encoded object.

Motion Type Parameters


Motion Type
Defines if and how the body's state is evolved over time. This signature is a non-evolving
signature, and so the only accepted Motion-Type is Unsolved, which means there is no state to
evolve and thus, nothing survives from one time-step to the next.

Tile Layout Parameters


Cell Scale
Amount to scale the dimensions of the cells in the tile layout by. Note that this parameter does not
represent the actual worldspace dimensions of the cells, rather it uniformly scales them. To find
out the actual worldspace dimensions you have to multiply this parameter by the global parameter
"Master Cell Size". This allows you to set a global cell size in worldspace units for the whole
simulation (the "Master Cell Size"), and still allow each body to have its own cell-size by
changing this parameter. If you later decide to globally uprez the simulation, you don't have to
find every "Cell Scale" parameter on all the BodyOps that have it, but simply change the "Master
Cell Size".
Tile Size
The number of cells along each dimension of each tile in the volume

Outputs
body-output
No description available.

03- Body Ops Primitive


Box-Mesh
Overview
Creates an unsolved body using the Mesh signature--meaning vertices are stored in the
Point/position channel, and triangle connectivity in the Triangle/index channel. The geometry
is always that of a unit cube mesh. The mesh is transformed into worldspace using the
parameters found in the "Transform" parameter section.
The tile layout parameters are provided only because this Op creates a body, and thus
requires them; however neither the Triangle nor Point-Shape makes any use of the tile
layout.

Settings Parameters
Body Name
The name of the Mesh body created
Closed Top
Seals off the top face of the box
Closed Bottom
Seals off the bottom face of the box

Transform Parameters
Translate
Body-to-worldspace translation
Rotate
Body-to-worldspace rotation
Scale
Body-to-worldspace scale

Tile Layout Parameters


Cell Scale
Amount to scale the dimensions of the cells in the tile layout by. Note that this parameter does not
represent the actual worldspace dimensions of the cells, rather it uniformly scales them. To find
out the actual worldspace dimensions you have to multiply this parameter by the global parameter
"Master Cell Size". This allows you to set a global cell size in worldspace units for the whole
simulation (the "Master Cell Size"), and still allow each body to have its own cell-size by
changing this parameter. If you later decide to globally uprez the simulation, you don't have to

find every "Cell Scale" parameter on all the BodyOps that have it, but simply change the "Master
Cell Size".
Tile Size
The number of cells along each dimension of each tile in the volume

Outputs
body-output
The mesh body is sent out through this output

Sphere-Volume
Overview
Creates an unsolved body using the Volume signature, meaning the distance to the surface
is stored in Field/distance and the velocity is stored in Field/velocity channel. The surface is
always that of a unit sphere.

Settings Parameters
Body Name
The name of the sphere volume body created
Position
The worldspace center of the sphere
Radius
The worldspace radius of the sphere
Coarsen Interior
This feature is currently disabled
Coarsen Interior Level
This feature is currently disabled

Tile Layout Parameters


Cell Scale
Amount to scale the dimensions of the cells in the tile layout by. Note that this parameter does not
represent the actual worldspace dimensions of the cells, rather it uniformly scales them. To find
out the actual worldspace dimensions you have to multiply this parameter by the global parameter
"Master Cell Size". This allows you to set a global cell size in worldspace units for the whole
simulation (the "Master Cell Size"), and still allow each body to have its own cell-size by
changing this parameter. If you later decide to globally uprez the simulation, you don't have to
find every "Cell Scale" parameter on all the BodyOps that have it, but simply change the "Master
Cell Size".
Tile Size
The number of cells along each dimension of each tile in the volume

Outputs
body-output
The sphere volume body is send down through this output

04- Body Ops




Box-Mesh
Overview
Creates an unsolved body using the Mesh signature--meaning vertices are stored in the
Point/position channel, and triangle connectivity in the Triangle/index channel. The geometry
is always that of a unit cube mesh. The mesh is transformed into worldspace using the
parameters found in the "Transform" parameter section.
The tile layout parameters are provided only because this Op creates a body, and thus
requires them; however neither the Triangle nor Point-Shape makes any use of the tile
layout.

Settings Parameters
Body Name
The name of the Mesh body created
Closed Top
Seals off the top face of the box
Closed Bottom
Seals off the bottom face of the box

Transform Parameters
Translate
Body-to-worldspace translation
Rotate
Body-to-worldspace rotation
Scale
Body-to-worldspace scale

Tile Layout Parameters


Cell Scale
Amount to scale the dimensions of the cells in the tile layout by. Note that this parameter does not
represent the actual worldspace dimensions of the cells, rather it uniformly scales them. To find
out the actual worldspace dimensions you have to multiply this parameter by the global parameter
"Master Cell Size". This allows you to set a global cell size in worldspace units for the whole
simulation (the "Master Cell Size"), and still allow each body to have its own cell-size by
changing this parameter. If you later decide to globally uprez the simulation, you don't have to

find every "Cell Scale" parameter on all the BodyOps that have it, but simply change the "Master
Cell Size".
Tile Size
The number of cells along each dimension of each tile in the volume

Outputs
body-output
The mesh body is sent out through this output

Distance-Mesh
Overview
This is a distance-field surfacer op which extracts a triangle-mesh from a distance-field,
subject to various constraints such as collision distance-fields and masks to limit meshing
regions etc.

General Parameters
Body Name
The name of the resulting mesh bod
Surface Supersampling
The amount to supersample the distance-field during meshing
Surface Level
The iso-value of the distance field where the surface is extracte
Mesh Smoothing Steps
The number of laplacian smoothing iterations performed on the extracted surface mesh.

Inputs
distance-field
The input distance-field that encodes the surface we are meshing
velocity-field
Optionally, the velocity field of the surface we are meshing. Connecting this input results in the
mesh containing a per-point velocity channel, which can be used for motion-blur etc.
solid-distance-field
Optionally, the solid-distance may be used to constrain the mesh from penetrating the surface
encoded in this input.
mask-field
Optionally, the mask-field input is used to determine which regions of the distance-field that
should be included in the meshing. Nonzero values represent meshable regions.

Outputs
mesh-output
The resulting mesh is passed out through this body output

Mesh-Merge
Overview
Merges all the Point & Triangle shapes from every body admitted through body-input into a
single Mesh body. The resulting merged body is passed out through body-output.
Note that all bodies encountered in body-input will be terminated, after the merge is complete
-- even those bodies which do not match the Mesh signature and were not part of the fuse.

Body Parameters
Body Name
The name of the resulting mesh bod

Inputs
body-input
All bodies matching the Mesh signature are admitted through here

Outputs
body-output
The resulting body from the merge is passed down through this output

Particle-Mesh
Overview
This is a particle surfacer op that creates a triangle-mesh from each admitted body's
Particle/position channel only (as opposed to the Distance-Mesh op which generates the
mesh surface from a distance-field only).
The Particle/velocity channel (if it exists) is used to create per-vertex velocities on the mesh
(stored in the resulting mesh's Point/velocity channel).
Finally, the mask-field input is optionally used to limit the region of space where surfacing
should occur.

Body Parameters
Body Name
The name of the resulting mesh bod

Conversion Parameters
Thickening Radius
The thickness of each particle used to generate the distance-field. A cell in this parameter refers to
the cell-size of the tile- layout of the input-body, NOT the resulting volume. If the thickness is less
than the volume's cell-size, the volume may be underresolved and you may end up with nothing,
or suffer grid aliasing artifacts which often end up as a flickering problem.
Detail Bandwidth
The amount (in worldspace units) to pad the region of space around the surface of the volume
used to store the data. Values >0 here can cause the tile-layout mapping the distance-field onto
space to grow, allowing for more freedom in shrinking/growing the distance field later on, as a
post-processing step.
Anti-Cavity Steps
How much to fill in small cavities in the resulting distance-field
Smoothing Steps
How much to smooth the resulting distance-field
Blend Radius Factor
No description available.
Mesh Fluid Smoothing
The number of feature-preserving smoothing steps performed on the extracted surface mesh.
Mesh Blur
The number of non-feature preserving smoothing steps performed on the extracted surface mesh.

Channel Sweeping Parameters


Channels
A space-separated list of arbitrary Particle channels to transfer to the mesh (ending up in the

Point-Shape).
Velocity Scale
This convenience parameter applies a constant scale to the Field/velocity channel of the resulting
volume. Be careful when using the volume as a collision body and using scales less than 1.

Tile Layout Parameters


Cell Scale
Amount to scale the dimensions of the cells in the tile layout by. Note that this parameter does not
represent the actual worldspace dimensions of the cells, rather it uniformly scales them. To find
out the actual worldspace dimensions you have to multiply this parameter by the global parameter
"Master Cell Size". This allows you to set a global cell size in worldspace units for the whole
simulation (the "Master Cell Size"), and still allow each body to have its own cell-size by
changing this parameter. If you later decide to globally uprez the simulation, you don't have to
find every "Cell Scale" parameter on all the BodyOps that have it, but simply change the "Master
Cell Size".
Tile Size
The number of cells along each dimension of each tile in the volume

Coarsening Parameters
Coarsen Interior
This feature is currently disabled
Coarsen Interior Level
This feature is currently disabled

Inputs
body-input
The bodies containing the particles to surface
mask-field
Optionally, the mask-field input is used to determine which regions of the distance-field that
should be included in the meshing. Nonzero values represent meshable regions.

Outputs
body-output
The resulting meshes are passed out through this body output

Rigid-Mesh-Assign
Overview
Assigns a mesh to all admitted rigid bodies.

Stepping Parameters
Enabled

Inputs
body-input
The Rigid Bodies which may be admitted
mesh-input
The Mesh body which defines the Rigid Body's mes

Outputs
body-output
The resulting bodies are passed down through this output

Tet-Mesh
Overview
Tet-Mesh extracts the (surface) mesh from the incoming tet body.

General Parameters
Body Name
The name of the resulting mesh bod

Inputs
body-input
The tet body we are converting fro

Outputs
body-output
The resulting mesh is passed out through this body output

05- Body Ops Channel


Channel-Filter
Overview
Filters out (erases) channels from a given Shape in all admitted bodies.

Filter Settings Parameters


Shape
Specifies which Shape we are filtering
Filter
Controls if the channels listed in the 'Channels' parameter are to be erased or kept.
Channels
The space-separated list of channels to keep or erase, depending on the the 'Filter' parameter
setting.

Inputs
body-input
All bodies are admitted through this input

Outputs
body-output
All bodies are passed down through this output

Channel-Rename
Overview
Renames a channel in all admitted bodies.

General Parameters
Shape
Specifies which Shape to look in for the channel to rename

Old Channel
Specifies the current name of the channel to rename
New Channel
Specifies the new name of the channel

Inputs
body-input
All bodies are admitted through this input

Outputs
body-output
All bodies are passed down through this output

Channel-Split
Overview
Splits off a list of channels into a new body.

Split Settings Parameters


Shape
Specifies which Shape to look in for the channels to split
of
Channels
A list of names of space-separated channels
Keep Original
Keep the original channels in the body after the split
happens.

Inputs
body-input
All bodies are admitted through this input

Outputs
body-output
All bodies are passed down through this output
split-body-output
The split bodies are passed down through this output

Field-Channel
Overview
Creates a new Field-Channel on all admitted bodies, and initializes it to the value given by
the 'Initial Value' parameter. If the admitted body doesn't have a Field-Shape, this Op will
create and add it to the body before adding the Field-Channel.

Field Emission (for Smoke, Fire etc)

This op can configured to perform Field-Channel emission, such as emitting smoke into the
Field/smoke channel inside a Field-Gas body, for instance. To make this op work as a field
emitter, keep the following in mind:
Set 'Value Action' to 'Emit' so that the Source Value becomes an emission-rate. Use the
mask-field to control/scale/mask where emission occurs.
Use the 'Refine Tiles' parameter if you want to extend the tile-layout of the body to cover the
total region of emission (recommended in most cases). If you only want emission to occur
where the body already has tiles, leave this parameter Off.
Make this an 'Interest Channel' if your body has no particles. Naiad uses particles to
determine where the fluid is. However, when dealing with pure field bodies (such as FieldGas/Smoke/Fire), Naiad tracks the fluid by examining the 'interest channels', which are
presumed to contain nonzero data in regions where the fluid is defined. Tiles will
automatically be created in those regions, but only for interest channels. You should have at
least one interest channel defined.
If you want this channel to be transported along the body's Field/velocity channel (as you
would with smoke, etc), set Timestep Update parameter to Low or High Detail Transport.

Tile-Layout Parameters
Refine Tiles
Refines the tile layout of all admitted bodies according to the layout passed in through the valuefield and mask-field inputs.

Channel Settings Parameters


Channel
The name of the Field-Channel to create/maintain
Channel Type
The Field-Channel value type. There are two options:
Float: Make this a scalar-field channel (a single floating-point value per cell).
Vector: Make this a vector-field channel (3 floating-point values per cell).
Initial Value
The initial constant value of the Field-Channel. If the channel is scalar-valued, only the Xcomponent of this vector is used.
Timestep Update

The action taken on the field during the transport stage (at the start of the time-step, before the
bodies are evolved by the graph). There are five options to choose from:
Keep Current: Do not modify the values in the channel.
Reset To Default: Set all cells to the default value (which is equal to the "Initial Value"
parameter).
Low Detail Transport: Transport the field along the vector-field found in Field/velocity channel.
The transport algorithm chosen in this mode is fast but exhibits more numerical diffusion than the
High Detail Transport setting.
High Detail Transport: Transport the field along the vector-field found in Field/velocity channel.
The transport algorithm chosen in this mode is slower but exhibits less numerical diffusion than
the Low Detail Transport setting.
Particle Splat: Initialize the cells in this Field-Channel using a Particle-Channel with the same
name as this channel. Each cell in the Field-Channel is initialized using the Particle-Channel
values bounded by the cell. The "Splatting Method" parameter controls exactly how each
particle's channel value contributes to the final cell value.

Particle Splatting Parameters


Splatting Method
Compute the weighted average of all particle channel values bounded by each cell, else just
accumulate the particle channel values.
Extend Boundary
After the splatting, extend the values of any boundary cells into neighboring cells with no
particles. This can be useful when you don't want your field to fade to the background color at the
boundary of the particle region. One example of this would be splatting a particle color channel
into a field color channel. If 'Extend Boundary' was turned off, a halo would form around the
colored region since the adjacent cells would not have been updated by any particles and thus
store some constant background value.

Interest Tracking Parameters


Interest Channel
Naiad uses particles to determine where the fluid is. However, when dealing with bodies that have
no particles (such as Field-Gas/Smoke/Fire, etc), Naiad tracks the fluid by examining 'interest
channels', which are presumed to contain nonzero data in regions where the fluid is defined. Tiles
will automatically be created in those regions, but only for interest channels.
Interest Threshold
The minumum value in a tile that should be tracked
Distance Interest
Marks the channel as a distance channel and the 'Interest Threshold' above equals the distance
field's iso-surface value.

Value Action Parameters


Run Value Action
An expression parameter which, if it evaluates to nonzero, triggers the value action to run at the
time this body is evolved by this Op. The value action applies the Source Value to the values of

the channel. The Source Value is either the value of the 'Source Value' parameter (see below), or
the contents of the value-field input, if connected. The way in which the Source Value is applied
depends on the 'Value Action' parameter (see below).
Value Action
Defines the way the Source Value is used to update the values of the channel. This action will not
run unless the 'Run Value Action' evaluates to non-zero (see above).
There are five options to choose from:

Set: Set channel to the source value.


Scale: Scale channel by the source value.
Accumulate: Add source value to the channel.
Emit: Add source value multiplied by dt (the length of the time-step) to the channel.

Source Value
The uniform constant source value of the value action. NOTE that this parameter is ignored the
value-field input is connected. In that case, the source value varies per cell, and is the value of the
FieldOp graph sampled at the each cell position, subject to any appropriate MAC-grid offsets
(e.g., at cell centers for scalar-valued fields, and on cell faces for vector-valued fields). If the
channel is scalar-valued, only the X-component of this vector is used.

Dynamics Parameters
Dissipation
The rate of dissipation after the value-action has been applied to the field. The rate is expressed in
units/frame, so a value of 1 means every cell in the channel is reduced to 0 in a single frame.
Diffusion
The rate of diffusion after the value-action has been applied to the field. The rate is expressed in
units/frame.

Inputs
body-input
All bodies are admitted through this input
value-field
The FieldOp graph optionally connected to this input defines the per-cell value used by the valueaction step (see the 'Value Action' parameter).
mask-field
The FieldOp graph optionally connected to this input defines a mask field which works as a global
scale on the source value used by the value-action step (see the 'Value Action' parameter).

Outputs
body-output
All bodies encountered in body-input are passed down through this output, regardless if they were
admitted or not.

Field-Nel-Channel
Overview
Computes a channel value for each cell in a field channel of each admitted body.

Tile-Layout Parameters
Refine Tiles
Refines the tile layout of all admitted bodies according to the layout passed in through the valuefield input.

Channel Settings Parameters


Channel
The channel to create/set
Channel Type
The type of the channel.
Channel Expression
The per-cell field NEL expression used to set the channel values. If the channel type is scalar
valued, only the X component of this parameter is used.

Inputs
body-input
All bodies that match the Field signature are admitted through this input.
value-field
Provides an optional field which can be sampled in the NEL expression

Outputs
body-output
All bodies encountered in body-input are passed down through this output, regardless if they were
admitted or not.

Particle-Age
Overview
Creates a scalar-valued Particle-Channel on all admitted bodies. The channel's name is
"age". This Op also performs the actual particle aging, also taking care of killing particles
who's age reaches or exceeds the 'Lifespan' parameter.

Aging Parameters
Lifespan
The maximum age a particle is allowed to reach before dying (in simulation seconds).

Inputs
body-input
All bodies that match the Particle signature will be admitted

Outputs
body-output
All bodies encountered in body-input are passed down through this output, regardless if they were
admitted or not.

Particle-Channel
Overview
Creates a new Particle-Channel on all admitted bodies, and initializes it to the value given by
the 'Initial Value' parameter.
Also specifies a value action which determines what happens to the Particle-Channel at the
time each body is evolved by this BodyOp.
If the admitted body doesn't have a Particle-Shape, this Op will create and add it to the body
before adding the Particle-Channel.

Channel Settings Parameters


Channel
The name of the Particle-Channel to create/maintain
Channel Type

The Particle-Channel value type. There are two options:


Float: Make this a scalar channel (a single floating-point value per cell).
Vector: Make this a vector channel (3 floating-point values per cell).
Initial Value
The initial uniform constant value of the channel. If the channel is scalar-valued, only the Xcomponent of this vector is used.

Value Action Parameters


Run Value Action
An expression parameter which, if it evaluates to nonzero, triggers the value action to run at the
time this body is evolved by this Op. The value action applies the Source Value to the values of
the channel. The Source Value is either the value of the 'Source Value' parameter (see below), or
the contents of the value-field input, if connected. The way in which the Source Value is applied
depends on the 'Value Action' parameter (see below).
Value Action
Defines the way the Source Value is used to update the values of the channel. This action will not
run unless the 'Run Value Action' evaluates to non-zero (see above). There are five options to
choose from:

Set: Set channel to the source value.


Scale: Scale channel by the source value.
Accumulate: Add source value to the channel.
Emit: Add source value multiplied by dt (the length of the time-step) to the channel.

Source Value
The uniform constant source value of the value action. NOTE that this parameter is ignored if a
FieldOp graph is connected to the value-field input. In that case, the source value varies per
particle, and is the value of the FieldOp graph sampled at each particle position. If the channel is
scalar-valued, only the X-component of this vector is used.

Inputs
body-input
All bodies are admitted through this input
value-field
The FieldOp graph optionally connected to this input defines the per-particle value used by the
value-action step (see the 'Value Action' parameter).
mask-field
The FieldOp graph optionally connected to this input defines a mask field which works as a global
scale on the source value used by the value-action step (see the 'Value Action' parameter).

Outputs
body-output
All bodies encountered in body-input are passed down through this output, regardless if they were
admitted or not.

Particle-Id
Overview
Creates a 64-bit integer Particle-Channel on all admitted bodies. The channel's name is
"id64". This is a standard Particle-Channel which automatically takes care of initializing new
particles's id's.

Inputs
body-input
All bodies that match the Particle signature will be admitted

Outputs
body-output
All bodies encountered in body-input are passed down through this output, regardless if
they were admitted or not.

Particle-Nel-Channel
Computes a channel value for each particle of each admitted body.

Channel Settings Parameters


Channel
The channel to create/set
Channel Type
The type of the channel.
Channel Expression
The per-particle NEL expression used to set the channel values. If the channel type is scalar
valued, only the X component of this parameter is used.

Inputs
body-input
All bodies that match the Particle signature are admitted through this input.
value-field
Provides an optional field which can be sampled in the NEL expression

Outputs
body-output
All bodies encountered in body-input are passed down through this output, regardless if they were
admitted or not.

Point-Channel
Overview
Creates a new Point-Channel on all admitted bodies, and initializes it to the value given by
the 'Initial Value' parameter.
Also specifies a value action which determines what happens to the Point-Channel at the
time each body is evolved by this BodyOp.
If the admitted body doesn't have a Point-Shape, this Op will create and add it to the body
before adding the Point-Channel.

Channel Settings Parameters


Channel
The name of the Point-Channel to create/maintain
Channel Type
The Point-Channel value type. There are two options:
Float: Make this a scalar channel (a single floating-point value per cell).
Vector: Make this a vector channel (3 floating-point values per cell).
Initial Value
The initial constant value of the Point-Channel. If the channel is scalar-valued, only the Xcomponent of this vector is used.

Value Action Parameters


Run Value Action
An expression parameter which, if it evaluates to nonzero, triggers the value action to run at the
time this body is evolved by this Op. The value action applies the Source Value to the values of
the channel. The Source Value is either the value of the 'Source Value' parameter (see below), or
the contents of the value-field input, if connected. The way in which the Source Value is applied
depends on the 'Value Action' parameter (see below).
Value Action
Defines the way the Source Value is used to update the values of the channel. This action will not
run unless the 'Run Value Action' evaluates to non-zero (see above). There are five options to

choose from:

Set: Set channel to the source value.


Scale: Scale channel by the source value.
Accumulate: Add source value to the channel.
Emit: Add source value multiplied by dt (the length of the time-step) to the channel.

Source Value
The uniform constant source value of the value action. NOTE that this parameter is ignored if a
FieldOp graph is connected to the value-field input. In that case, the source value varies per point,
and is the value of the FieldOp graph sampled at each point position. If the channel is scalarvalued, only the X-component of this vector is used.

Inputs
body-input
All bodies are admitted through this input
value-field
The FieldOp graph optionally connected to this input defines the per-point value used by the
value-action step (see the 'Value Action' parameter).
mask-field
The FieldOp graph optionally connected to this input defines a mask field which works as a global
scale on the source value used by the value-action step (see the 'Value Action' parameter).

Outputs
body-output
All bodies encountered in body-input are passed down through this output, regardless if they were
admitted or not.

Point-Nel-Channel
Updates the values in the given Point-Channel on each admitted body. The new values are
set to the value of the per-point NEL expression provided in the "Channel Expression"
parameter.

Channel Settings Parameters


Channel
The channel to create/set
Channel Type
The type of the channel.
Channel Expression
The per-point NEL expression used to set the channel values. If the channel type scalar valued,
only the X component of this parameter is used.

Inputs
body-input
All bodies that are admitted through this input.

Outputs
body-output
All bodies encountered in body-input are passed down through this output, regardless if they were
admitted or not.

06- Body Ops Body


Clone
Overview
Clones all bodies encountered and sends them out through the body-output. The cloned
body that is created is not evolving (e.g. its Motion-Type is always set to Unsolved).

Why You May Care About This Op


You may just want to clone a body during a time-step and evolve it in some special way for
some reason.
However, a common use of Clone is to safely clone an evolving body.

Auto-Cloning And Cloning Evolving Bodies


Bodies are "auto-cloned" by the graph when multiple body inputs are connected to a single
body output. This is fine with unsolved bodies but creating graphs that auto-clone evolving
bodies (e.g. bodies with Motion-Type set to Dynamic, Kinematic or User) is strictly forbidden
and will result in a Graph Error.
Why is auto-cloning evolving bodies forbidden? Because evolving bodies can only have one
instance in the graph, otherwise you end up introducing an ambiguity as to which instance of
the evolving body should be allowed to "evolve on" to the next time-step. This is not a
problem with unsolved bodies since they only live for a single time-step, thus multiple
instances can exist and nobody has to choose which one "continues on" in the simulation.
This Op, along with Isolate when cloning is turned on, are the only ways of safely cloning an
evolving body, because here the cloned body's Motion-Type is explicitly set to unsolved,
retaining the original body's status as the only evolving instance of the body.

Inputs
body-input
The bodies to be cloned (regardless of Motion-Type) enter through this input.

Outputs
body-output
The original bodies exit through this output, keeping their Motion-Type intact.
cloned-body-output
All cloned bodies are sent through here. The cloned bodies are unsolved

Filter
Overview
Filters bodies from a single input into two separate outputs.

Filter Settings Parameters


Filter
Controls which output the bodies listed in the 'Bodies' parameter are to be sent
to.
Bodies
The space-separated list of bodies to filter.

Inputs
body-input
All bodies are admitted through this input

Outputs
body-output
Only the kept bodies are passed down through this output
leaving-body-output
Only the leaving bodies are passed down through this output

Isolate
Overview
Isolates a single body from a group and sends it out through isolated-body-output. Optionally,
the body may be cloned and renamed in the process, and if so, the original body is sent
down through body-output.

Auto-Cloning And Cloning Evolving Bodies


Bodies are "auto-cloned" by the graph when multiple body inputs are connected to a single
body output. This is fine with unsolved bodies but creating graphs that auto-clone evolving
bodies (e.g. bodies with Motion-Type set to Dynamic, Kinematic or User) is strictly forbidden
and will result in a Graph Error.
Why is auto-cloning evolving bodies forbidden? Because evolving bodies can only have one

instance in the graph, otherwise you end up introducing an ambiguity as to which instance of
the evolving body should be allowed to "evolve on" to the next time-step. This is not a
problem with unsolved bodies since they only live for a single time-step, thus multiple
instances can exist and nobody has to choose which one "continues on" in the simulation.
This Op, when cloning is turned on, and the Clone Op, are the only ways of safely cloning an
evolving body, because here the cloned body's Motion-Type is explicitly set to unsolved,
retaining the original body's status as the only evolving instance of the body.

Isolate Settings Parameters


Isolated Body
The name of the body to isolate
Clone Isolated Body
Clone the isolated body and pass it down through solated-body-output.

Renaming Parameters
Rename Isolated Body
Rename the isolated body
New Body Name
The new name of the isolated body - if renaming is turned on

Inputs
body-input
All bodies are admitted through this input

Outputs
body-output
All bodies (except for the isolated one) will be sent out through this output, unless cloning is
turned on, in which case all bodies including the isolated body are passed out through here.
isolated-body-output
The isolated body (cloned or not) is always passed out through this inpu

Join
Overview
Joins the bodies from body-input-a and body-input-b into a single group and passes the new
group down through body-output.

Occlusion Parameters
Refresh Occluders
Updates the occlusion channels for all admitted bodies. Examples of occlusion channels are
Field/solid-distance and Field/solid-velocity.

Inputs
body-input-a
Bodies to join wit
body-input-b
Other bodies to join wit

Outputs
body-output
Joined bodies

Null
Overview
This "do-nothing" op can help structure your graph. This op simply passes all bodies
encountered in body-input down through body-output.

Inputs
body-input
Input bodie

Outputs
body-output
Output bodie

Switch
Overview
The Switch Op is like a railway switch in that it routes bodies down one of two possible paths,
depending on if the op is enabled or not (given by the 'Enabled' parameter).

Inputs
body-input
All bodies are admitted through this input

Outputs
body-output
If the 'Enabled' parameter evaluates to zero (e.g. the op state is disabled), all bodies
admitted through body-input will be passed down through this output.
other-body-output
If the 'Enabled' parameter evaluates to nonzero (e.g. the op is enabled) all bodies
admitted through body-input will be passed down through this output.

Terminal
Overview
All bodies flowing into a terminal Op will be terminated, just as bodies are terminated when
sent to a body output that is unconnected. While terminal Ops are not strictly necessary,
using them makes for cleaner-looking graphs, and helps anyone looking at your graph know
where the endpoints are of any body-evolving "pipelines" you set up.

Inputs
body-input
All bodies enter through this input, and will be terminated here

Tile-Refine
Overview
For every body admitted through body-input, ensure it has tiles wherever there are tiles in all
the bodies admitted through the refiner-input.

Why You May Care About This Op


If, for some reason, you need to explicitly expand the tile-layout of your body into regions it
normally would not cover, this Op is for you.

Inputs
body-input
All bodies entering here may have their tile-layout refined (expanded)
refiner-input
All bodies entering here provide their tile-layout(s) to define the regions where tiles will
be necessary. The bodies entering through here are not passed down but will terminate
in this Op.

Outputs
body-output
All bodies entering through body-input will be passed down through body-output.

07- Body Ops Convert


Distance-Mesh
Overview
This is a distance-field surfacer op which extracts a triangle-mesh from a distance-field,
subject to various constraints such as collision distance-fields and masks to limit meshing
regions etc.

General Parameters
Body Name
The name of the resulting mesh bod
Surface Supersampling
The amount to supersample the distance-field during meshing
Surface Level
The iso-value of the distance field where the surface is extracte
Mesh Smoothing Steps
The number of laplacian smoothing iterations performed on the extracted surface mesh.

Inputs
distance-field
The input distance-field that encodes the surface we are meshing
velocity-field
Optionally, the velocity field of the surface we are meshing. Connecting this input results in the
mesh containing a per-point velocity channel, which can be used for motion-blur etc.
solid-distance-field
Optionally, the solid-distance may be used to constrain the mesh from penetrating the surface
encoded in this input.
mask-field
Optionally, the mask-field input is used to determine which regions of the distance-field that
should be included in the meshing. Nonzero values represent meshable regions.

Outputs
mesh-output
The resulting mesh is passed out through this body output

Distance-Tet
Overview
Distance-Surface extracts a tet body from a distance-field.

General Parameters
Body Name
The name of the resulting mesh bod
Surface Level
The iso-value of the distance field where the surface is extracte
Mesh Smoothing Steps
The number of laplacian smoothing iterations performed on the extracted surface
mesh.

Inputs
distance-field
The distance-field input that encodes the surface we are meshing

Outputs
tet-output
The resulting mesh is passed out through this body output

Mesh-Volume
Overview
This BodyOp converts a group of Mesh bodies to group of Volume bodies, destroying the
meshes in the process. The resulting Volumes are persistent bodies, and are only re-created
on those time-steps where the source Mesh body has changed. The volumes can be
converted into "solid volumes" or "shell volumes", depending on the Mode parameter (see
below).
A Volume is a body containing a signed distance field representing the distance to the
surface of the object it encodes -- a mesh in this case. The mesh's distance and velocity
fields are stored in the standard channels Field/distance and Field/velocity, respectively. The
mesh must be "water-tight". Meshes with cracks, T-joints, or non-manifold surfaces may
result in a corrupt distance-field.

Volume Name
The name of the Volume body is the name of the input mesh, with the "-volume" string
appended to the end.

Conversion Parameters
Thickening Radius
The amount (in worldspace units) to thicken the volume by, after the distance-field has been
constructed. Using negative values will shrink the volume inward, along the surface normal.
Detail Bandwidth
The amount (in worldspace units) to pad the region of space around the surface of the volume
used to store the data. Values >0 here can cause the tile-layout mapping the distance-field onto
space to grow, allowing for more freedom in shrinking/growing the distance field later on, as a
post-processing step.
Boolean Operation
Defines a boolean operation on the distance-field in the volume. "None" results in a distance-field
that is negative in the interior of the mesh (e.g. the "inside" of the mesh is "solid"). "Invert", on
the other hand, will flip the sign of the distance-field so that the "outside" of the mesh is "solid"
and the "inside" is hollow.
Mode
Defines how the input mesh is converted into a volume. There are two options to choose from:
Solid: The resulting volume represents the solid interior of the input mesh, plus the Thickening
Radius parameter. NOTE that if using this mode, you must ensure that the input mesh is "watertight", e.g. it has no T-joints, cracks or non-manifold patches, as that would make the idea of
'interior' ill-posed (e.g. the mesh would be "leaking").
Shell: The resulting volume represents the "thickened surface" of the mesh only, where the
thickness of the surface is exactly equal to the Thickening Radius parameter. No 'interior' of the
mesh is considered, thus any mesh is acceptable--even "triangle-soups".

Channel Sweeping Parameters


Channels
A space-separated list of arbitrary Point or Triangle channels to sweep out along with the distance
field. The swept channels all end up inside the Field-Shape of the resulting volume, and thus need
to have unique names. For example, specifying Point/mass and Triangle/mass will cause an error
as they would both map to the Field/mass channel name.
Velocity Scale
This convenience parameter applies a constant scale to the Field/velocity channel of the resulting
volume. Be careful when using the volume as a collision body and using scales less than 1.

Tile Layout Parameters


Cell Scale
Amount to scale the dimensions of the cells in the tile layout by. Note that this parameter does not

represent the actual worldspace dimensions of the cells, rather it uniformly scales them. To find
out the actual worldspace dimensions you have to multiply this parameter by the global parameter
"Master Cell Size". This allows you to set a global cell size in worldspace units for the whole
simulation (the "Master Cell Size"), and still allow each body to have its own cell-size by
changing this parameter. If you later decide to globally uprez the simulation, you don't have to
find every "Cell Scale" parameter on all the BodyOps that have it, but simply change the "Master
Cell Size".
Tile Size
The number of cells along each dimension of each tile in the volume

Inputs
body-input
The input Mesh body (matching the "Mesh" standard body signature)

Outputs
body-output
The converted Volume bod

Mesh-Volume-Isolated
Overview
This BodyOp converts a Mesh body to a Volume body, destroying the Mesh body in the
process. The resulting Volume is persistent, and is only re-created on those time-steps where
the source Mesh body has changed. The volume can be converted into a "solid volume" or
"shell volume", depending on the Mode parameter (see below).
A Volume is a body containing a signed distance field representing the distance to the
surface of the object it encodes -- a mesh in this case. The mesh's distance and velocity
fields are stored in the standard channels Field/distance and Field/velocity, respectively. The
mesh must be "water-tight". Meshes with cracks, T-joints, or non-manifold surfaces may
result in a corrupt distance-field.

Volume Name
The name of the Volume body is the name of the input mesh, with the "-volume" string
appended to the end.

Conversion Parameters
Thickening Radius

The amount (in worldspace units) to thicken the volume by, after the distance-field has been
constructed. Using a negative values is a good way of shrinking the volume inwards. (This value
is effectively subtracted from each cell in the distance channel).
Detail Bandwidth
The amount (in worldspace units) to pad the region of space around the surface of the volume
used to store the data. Values >0 here can cause the tile-layout mapping the distance-field onto
space to grow, allowing for more freedom in shrinking/growing the distance field later on, as a
post-processing step.
Boolean Operation
Defines a boolean operation on the distance-field in the volume. "None" results in a distance-field
that is negative in the interior of the mesh (e.g. the "inside" of the mesh is "solid"). "Invert", on
the other hand, will flip the sign of the distance-field so that the "outside" of the mesh is "solid"
and the "inside" is hollow.
Mode
Defines how the input mesh is converted into a volume. There are two options to choose from:
Solid: The resulting volume represents the solid interior of the input mesh, plus the Thickening
Radius parameter. NOTE that if using this mode, you must ensure that the input mesh is "watertight", e.g. it has no T-joints, cracks or non-manifold patches, as that would make the idea of
'interior' ill-posed (e.g. the mesh would be "leaking").
Shell: The resulting volume represents the "thickened surface" of the mesh only, where the
thickness of the surface is exactly equal to the Thickening Radius parameter. No 'interior' of the
mesh is considered, thus any mesh is acceptable--even "triangle-soups".

Channel Sweeping Parameters


Channels
A space-separated list of arbitrary Point or Triangle channels to sweep out along with the distance
field. The swept channels all end up inside the Field-Shape of the resulting volume, and thus need
to have unique names. For example, specifying Point/mass and Triangle/mass will cause an error
as they would both map to the Field/mass channel name.
Velocity Scale
This convenience parameter applies a constant scale to the Field/velocity channel of the resulting
volume. Be careful when using the volume as a collision body and using scales less than 1.

Tile Layout Parameters


Cell Scale
Amount to scale the dimensions of the cells in the tile layout by. Note that this parameter does not
represent the actual worldspace dimensions of the cells, rather it uniformly scales them. To find
out the actual worldspace dimensions you have to multiply this parameter by the global parameter
"Master Cell Size". This allows you to set a global cell size in worldspace units for the whole
simulation (the "Master Cell Size"), and still allow each body to have its own cell-size by
changing this parameter. If you later decide to globally uprez the simulation, you don't have to
find every "Cell Scale" parameter on all the BodyOps that have it, but simply change the "Master
Cell Size".
Tile Size
The number of cells along each dimension of each tile in the volume

Inputs
body-input
The input Mesh body (matching the "Mesh" standard body signature)

Outputs
body-output
The converted Volume bod

Particle-Mesh
Overview
This is a particle surfacer op that creates a triangle-mesh from each admitted body's
Particle/position channel only (as opposed to the Distance-Mesh op which generates the
mesh surface from a distance-field only).
The Particle/velocity channel (if it exists) is used to create per-vertex velocities on the mesh
(stored in the resulting mesh's Point/velocity channel).
Finally, the mask-field input is optionally used to limit the region of space where surfacing
should occur.

Body Parameters
Body Name
The name of the resulting mesh bod

Conversion Parameters
Thickening Radius
The thickness of each particle used to generate the distance-field. A cell in this parameter refers to
the cell-size of the tile- layout of the input-body, NOT the resulting volume. If the thickness is less
than the volume's cell-size, the volume may be underresolved and you may end up with nothing,
or suffer grid aliasing artifacts which often end up as a flickering problem.
Detail Bandwidth
The amount (in worldspace units) to pad the region of space around the surface of the volume
used to store the data. Values >0 here can cause the tile-layout mapping the distance-field onto
space to grow, allowing for more freedom in shrinking/growing the distance field later on, as a
post-processing step.
Anti-Cavity Steps
How much to fill in small cavities in the resulting distance-field
Smoothing Steps
How much to smooth the resulting distance-field
Blend Radius Factor

No description available.
Mesh Fluid Smoothing
The number of feature-preserving smoothing steps performed on the extracted surface mesh.
Mesh Blur
The number of non-feature preserving smoothing steps performed on the extracted surface mesh.

Channel Sweeping Parameters


Channels
A space-separated list of arbitrary Particle channels to transfer to the mesh (ending up in the
Point-Shape).
Velocity Scale
This convenience parameter applies a constant scale to the Field/velocity channel of the resulting
volume. Be careful when using the volume as a collision body and using scales less than 1.

Tile Layout Parameters


Cell Scale
Amount to scale the dimensions of the cells in the tile layout by. Note that this parameter does not
represent the actual worldspace dimensions of the cells, rather it uniformly scales them. To find
out the actual worldspace dimensions you have to multiply this parameter by the global parameter
"Master Cell Size". This allows you to set a global cell size in worldspace units for the whole
simulation (the "Master Cell Size"), and still allow each body to have its own cell-size by
changing this parameter. If you later decide to globally uprez the simulation, you don't have to
find every "Cell Scale" parameter on all the BodyOps that have it, but simply change the "Master
Cell Size".
Tile Size
The number of cells along each dimension of each tile in the volume

Coarsening Parameters
Coarsen Interior
This feature is currently disabled
Coarsen Interior Level
This feature is currently disabled

Inputs
body-input
The bodies containing the particles to surface
mask-field
Optionally, the mask-field input is used to determine which regions of the distance-field that
should be included in the meshing. Nonzero values represent meshable regions.

Outputs
body-output
The resulting meshes are passed out through this body output

Particle-Volume
Overview
This BodyOp converts a group of Particle bodies to corresponding Volume bodies, destroying
the Particle bodies in the process. The resulting Volumes are persistent bodies, and are only
re-created on those time-steps where the source Particle body has changed.
A Volume is a body containing a signed distance field representing the distance to the
surface of the object it encodes -- particles in this case. The particles' distance and velocity
fields are stored in the standard channels Field/distance and Field/velocity, respectively.

Volume Name
The name of the Volume body is the name of the input body, with the "-volume" string
appended to the end.

Conversion Parameters
Thickening Radius
The thickness of each particle used to generate the distance-field. A cell in this parameter refers to
the cell-size of the tile- layout of the input-body, NOT the resulting volume. If the thickness is less
than the volume's cell-size, the volume may be underresolved and you may end up with nothing,
or suffer grid aliasing artifacts which often end up as a flickering problem.
Detail Bandwidth
The amount (in worldspace units) to pad the region of space around the surface of the volume
used to store the data. Values >0 here can cause the tile-layout mapping the distance-field onto
space to grow, allowing for more freedom in shrinking/growing the distance field later on, as a
post-processing step.
Anti-Cavity Steps
How much to fill in small cavities in the resulting distance-field
Smoothing Steps
How much to smooth the resulting distance-field

Channel Sweeping Parameters


Channels
A space-separated list of arbitrary Particle channels to sweep out along with the distance field.
The swept channels all end up inside the Field-Shape of the resulting volume.
Velocity Scale
This convenience parameter applies a constant scale to the Field/velocity channel of the resulting
volume. Be careful when using the volume as a collision body and using scales less than 1.

Tile Layout Parameters


Cell Scale
Amount to scale the dimensions of the cells in the tile layout by. Note that this parameter does not
represent the actual worldspace dimensions of the cells, rather it uniformly scales them. To find
out the actual worldspace dimensions you have to multiply this parameter by the global parameter
"Master Cell Size". This allows you to set a global cell size in worldspace units for the whole
simulation (the "Master Cell Size"), and still allow each body to have its own cell-size by
changing this parameter. If you later decide to globally uprez the simulation, you don't have to
find every "Cell Scale" parameter on all the BodyOps that have it, but simply change the "Master
Cell Size".
Tile Size
The number of cells along each dimension of each tile in the volume

Coarsening Parameters
Coarsen Interior
This feature is currently disabled
Coarsen Interior Level
This feature is currently disabled

Inputs
body-input
Bodies matching the Particle signature are admitted through here

Outputs
body-output
Any resulting Volume bodies are passed out through here

Particle-Volume-Isolated
Overview
This BodyOp converts a Particle body to a Volume body, destroying the Particle body in the
process. The resulting Volume is persistent, and is only re-created on those time-steps where
the source Particle body has changed.
A Volume is a body containing a signed distance field representing the distance to the
surface of the object it encodes -- particles in this case. The particles' distance and velocity
fields are stored in the standard channels Field/distance and Field/velocity, respectively.

Volume Name
The name of the Volume body is the name of the input body, with the "-volume" string
appended to the end.

Conversion Parameters
Thickening Radius
The thickness of each particle used to generate the distance-field. A cell in this parameter refers to
the cell-size of the tile- layout of the input-body, NOT the resulting volume. If the thickness is less
than the volume's cell-size, the volume may be underresolved and you may end up with nothing,
or suffer grid aliasing artifacts which often end up as a flickering problem.
Detail Bandwidth
The amount (in worldspace units) to pad the region of space around the surface of the volume
used to store the data. Values >0 here can cause the tile-layout mapping the distance-field onto
space to grow, allowing for more freedom in shrinking/growing the distance field later on, as a
post-processing step.
Anti-Cavity Steps
How much to fill in small cavities in the resulting distance-field
Smoothing Steps
How much to smooth the resulting distance-field

Channel Sweeping Parameters


Channels
A space-separated list of arbitrary Particle channels to sweep out along with the distance field.
The swept channels all end up inside the Field-Shape of the resulting volume.
Velocity Scale
This convenience parameter applies a constant scale to the Field/velocity channel of the resulting
volume. Be careful when using the volume as a collision body and using scales less than 1.

Tile Layout Parameters


Cell Scale
Amount to scale the dimensions of the cells in the tile layout by. Note that this parameter does not
represent the actual worldspace dimensions of the cells, rather it uniformly scales them. To find
out the actual worldspace dimensions you have to multiply this parameter by the global parameter
"Master Cell Size". This allows you to set a global cell size in worldspace units for the whole
simulation (the "Master Cell Size"), and still allow each body to have its own cell-size by
changing this parameter. If you later decide to globally uprez the simulation, you don't have to
find every "Cell Scale" parameter on all the BodyOps that have it, but simply change the "Master
Cell Size".
Tile Size
The number of cells along each dimension of each tile in the volume

Coarsening Parameters

Coarsen Interior
This feature is currently disabled
Coarsen Interior Level
This feature is currently disabled

Inputs
body-input
A body matching the Particle signature is admitted through here

Outputs
body-output
Any resulting Volume bodies are passed out through here

Tet-Mesh
Overview
Tet-Mesh extracts the (surface) mesh from the incoming tet body.

General Parameters
Body Name
The name of the resulting mesh bod

Inputs
body-input
The tet body we are converting fro

Outputs
body-output
The resulting mesh is passed out through this body output

08- Body Ops Volume


Distance-Mesh
Overview
This is a distance-field surfacer op which extracts a triangle-mesh from a distance-field,
subject to various constraints such as collision distance-fields and masks to limit meshing
regions etc.

General Parameters
Body Name
The name of the resulting mesh bod
Surface Supersampling
The amount to supersample the distance-field during meshing
Surface Level
The iso-value of the distance field where the surface is extracte
Mesh Smoothing Steps
The number of laplacian smoothing iterations performed on the extracted surface mesh.

Inputs
distance-field
The input distance-field that encodes the surface we are meshing
velocity-field
Optionally, the velocity field of the surface we are meshing. Connecting this input results in the
mesh containing a per-point velocity channel, which can be used for motion-blur etc.
solid-distance-field
Optionally, the solid-distance may be used to constrain the mesh from penetrating the surface
encoded in this input.
mask-field
Optionally, the mask-field input is used to determine which regions of the distance-field that
should be included in the meshing. Nonzero values represent meshable regions.

Outputs
mesh-output
The resulting mesh is passed out through this body output

Distance-Tet
Overview
Distance-Surface extracts a tet body from a distance-field.

General Parameters
Body Name
The name of the resulting mesh bod
Surface Level
The iso-value of the distance field where the surface is extracte
Mesh Smoothing Steps
The number of laplacian smoothing iterations performed on the extracted surface
mesh.

Inputs
distance-field
The distance-field input that encodes the surface we are meshing

Outputs
tet-output
The resulting mesh is passed out through this body output

Mesh-Volume
Overview
This BodyOp converts a group of Mesh bodies to group of Volume bodies, destroying the
meshes in the process. The resulting Volumes are persistent bodies, and are only re-created
on those time-steps where the source Mesh body has changed. The volumes can be
converted into "solid volumes" or "shell volumes", depending on the Mode parameter (see
below).
A Volume is a body containing a signed distance field representing the distance to the
surface of the object it encodes -- a mesh in this case. The mesh's distance and velocity
fields are stored in the standard channels Field/distance and Field/velocity, respectively. The
mesh must be "water-tight". Meshes with cracks, T-joints, or non-manifold surfaces may
result in a corrupt distance-field.

Volume Name
The name of the Volume body is the name of the input mesh, with the "-volume" string
appended to the end.

Conversion Parameters
Thickening Radius
The amount (in worldspace units) to thicken the volume by, after the distance-field has been
constructed. Using negative values will shrink the volume inward, along the surface normal.
Detail Bandwidth
The amount (in worldspace units) to pad the region of space around the surface of the volume
used to store the data. Values >0 here can cause the tile-layout mapping the distance-field onto
space to grow, allowing for more freedom in shrinking/growing the distance field later on, as a
post-processing step.
Boolean Operation
Defines a boolean operation on the distance-field in the volume. "None" results in a distance-field
that is negative in the interior of the mesh (e.g. the "inside" of the mesh is "solid"). "Invert", on
the other hand, will flip the sign of the distance-field so that the "outside" of the mesh is "solid"
and the "inside" is hollow.
Mode
Defines how the input mesh is converted into a volume. There are two options to choose from:
Solid: The resulting volume represents the solid interior of the input mesh, plus the Thickening
Radius parameter. NOTE that if using this mode, you must ensure that the input mesh is "watertight", e.g. it has no T-joints, cracks or non-manifold patches, as that would make the idea of
'interior' ill-posed (e.g. the mesh would be "leaking").
Shell: The resulting volume represents the "thickened surface" of the mesh only, where the
thickness of the surface is exactly equal to the Thickening Radius parameter. No 'interior' of the
mesh is considered, thus any mesh is acceptable--even "triangle-soups".

Channel Sweeping Parameters


Channels
A space-separated list of arbitrary Point or Triangle channels to sweep out along with the distance
field. The swept channels all end up inside the Field-Shape of the resulting volume, and thus need
to have unique names. For example, specifying Point/mass and Triangle/mass will cause an error
as they would both map to the Field/mass channel name.
Velocity Scale
This convenience parameter applies a constant scale to the Field/velocity channel of the resulting
volume. Be careful when using the volume as a collision body and using scales less than 1.

Tile Layout Parameters


Cell Scale
Amount to scale the dimensions of the cells in the tile layout by. Note that this parameter does not

represent the actual worldspace dimensions of the cells, rather it uniformly scales them. To find
out the actual worldspace dimensions you have to multiply this parameter by the global parameter
"Master Cell Size". This allows you to set a global cell size in worldspace units for the whole
simulation (the "Master Cell Size"), and still allow each body to have its own cell-size by
changing this parameter. If you later decide to globally uprez the simulation, you don't have to
find every "Cell Scale" parameter on all the BodyOps that have it, but simply change the "Master
Cell Size".
Tile Size
The number of cells along each dimension of each tile in the volume

Inputs
body-input
The input Mesh body (matching the "Mesh" standard body signature)

Outputs
body-output
The converted Volume bod

Mesh-Volume-Isolated
Overview
This BodyOp converts a Mesh body to a Volume body, destroying the Mesh body in the
process. The resulting Volume is persistent, and is only re-created on those time-steps where
the source Mesh body has changed. The volume can be converted into a "solid volume" or
"shell volume", depending on the Mode parameter (see below).
A Volume is a body containing a signed distance field representing the distance to the
surface of the object it encodes -- a mesh in this case. The mesh's distance and velocity
fields are stored in the standard channels Field/distance and Field/velocity, respectively. The
mesh must be "water-tight". Meshes with cracks, T-joints, or non-manifold surfaces may
result in a corrupt distance-field.

Volume Name
The name of the Volume body is the name of the input mesh, with the "-volume" string
appended to the end.

Conversion Parameters
Thickening Radius

The amount (in worldspace units) to thicken the volume by, after the distance-field has been
constructed. Using a negative values is a good way of shrinking the volume inwards. (This value
is effectively subtracted from each cell in the distance channel).
Detail Bandwidth
The amount (in worldspace units) to pad the region of space around the surface of the volume
used to store the data. Values >0 here can cause the tile-layout mapping the distance-field onto
space to grow, allowing for more freedom in shrinking/growing the distance field later on, as a
post-processing step.
Boolean Operation
Defines a boolean operation on the distance-field in the volume. "None" results in a distance-field
that is negative in the interior of the mesh (e.g. the "inside" of the mesh is "solid"). "Invert", on
the other hand, will flip the sign of the distance-field so that the "outside" of the mesh is "solid"
and the "inside" is hollow.
Mode
Defines how the input mesh is converted into a volume. There are two options to choose from:
Solid: The resulting volume represents the solid interior of the input mesh, plus the Thickening
Radius parameter. NOTE that if using this mode, you must ensure that the input mesh is "watertight", e.g. it has no T-joints, cracks or non-manifold patches, as that would make the idea of
'interior' ill-posed (e.g. the mesh would be "leaking").
Shell: The resulting volume represents the "thickened surface" of the mesh only, where the
thickness of the surface is exactly equal to the Thickening Radius parameter. No 'interior' of the
mesh is considered, thus any mesh is acceptable--even "triangle-soups".

Channel Sweeping Parameters


Channels
A space-separated list of arbitrary Point or Triangle channels to sweep out along with the distance
field. The swept channels all end up inside the Field-Shape of the resulting volume, and thus need
to have unique names. For example, specifying Point/mass and Triangle/mass will cause an error
as they would both map to the Field/mass channel name.
Velocity Scale
This convenience parameter applies a constant scale to the Field/velocity channel of the resulting
volume. Be careful when using the volume as a collision body and using scales less than 1.

Tile Layout Parameters


Cell Scale
Amount to scale the dimensions of the cells in the tile layout by. Note that this parameter does not
represent the actual worldspace dimensions of the cells, rather it uniformly scales them. To find
out the actual worldspace dimensions you have to multiply this parameter by the global parameter
"Master Cell Size". This allows you to set a global cell size in worldspace units for the whole
simulation (the "Master Cell Size"), and still allow each body to have its own cell-size by
changing this parameter. If you later decide to globally uprez the simulation, you don't have to
find every "Cell Scale" parameter on all the BodyOps that have it, but simply change the "Master
Cell Size".
Tile Size
The number of cells along each dimension of each tile in the volume

Inputs
body-input
The input Mesh body (matching the "Mesh" standard body signature)

Outputs
body-output
The converted Volume bod

Particle-Volume
Overview
This BodyOp converts a group of Particle bodies to corresponding Volume bodies, destroying
the Particle bodies in the process. The resulting Volumes are persistent bodies, and are only
re-created on those time-steps where the source Particle body has changed.
A Volume is a body containing a signed distance field representing the distance to the
surface of the object it encodes -- particles in this case. The particles' distance and velocity
fields are stored in the standard channels Field/distance and Field/velocity, respectively.

Volume Name
The name of the Volume body is the name of the input body, with the "-volume" string
appended to the end.

Conversion Parameters
Thickening Radius
The thickness of each particle used to generate the distance-field. A cell in this parameter refers to
the cell-size of the tile- layout of the input-body, NOT the resulting volume. If the thickness is less
than the volume's cell-size, the volume may be underresolved and you may end up with nothing,
or suffer grid aliasing artifacts which often end up as a flickering problem.
Detail Bandwidth
The amount (in worldspace units) to pad the region of space around the surface of the volume
used to store the data. Values >0 here can cause the tile-layout mapping the distance-field onto
space to grow, allowing for more freedom in shrinking/growing the distance field later on, as a
post-processing step.
Anti-Cavity Steps
How much to fill in small cavities in the resulting distance-field
Smoothing Steps

How much to smooth the resulting distance-field

Channel Sweeping Parameters


Channels
A space-separated list of arbitrary Particle channels to sweep out along with the distance field.
The swept channels all end up inside the Field-Shape of the resulting volume.
Velocity Scale
This convenience parameter applies a constant scale to the Field/velocity channel of the resulting
volume. Be careful when using the volume as a collision body and using scales less than 1.

Tile Layout Parameters


Cell Scale
Amount to scale the dimensions of the cells in the tile layout by. Note that this parameter does not
represent the actual worldspace dimensions of the cells, rather it uniformly scales them. To find
out the actual worldspace dimensions you have to multiply this parameter by the global parameter
"Master Cell Size". This allows you to set a global cell size in worldspace units for the whole
simulation (the "Master Cell Size"), and still allow each body to have its own cell-size by
changing this parameter. If you later decide to globally uprez the simulation, you don't have to
find every "Cell Scale" parameter on all the BodyOps that have it, but simply change the "Master
Cell Size".
Tile Size
The number of cells along each dimension of each tile in the volume

Coarsening Parameters
Coarsen Interior
This feature is currently disabled
Coarsen Interior Level
This feature is currently disabled

Inputs
body-input
Bodies matching the Particle signature are admitted through here

Outputs
body-output
Any resulting Volume bodies are passed out through here

Particle-Volume-Isolated
Overview
This BodyOp converts a Particle body to a Volume body, destroying the Particle body in the
process. The resulting Volume is persistent, and is only re-created on those time-steps where
the source Particle body has changed.
A Volume is a body containing a signed distance field representing the distance to the
surface of the object it encodes -- particles in this case. The particles' distance and velocity
fields are stored in the standard channels Field/distance and Field/velocity, respectively.

Volume Name
The name of the Volume body is the name of the input body, with the "-volume" string
appended to the end.

Conversion Parameters
Thickening Radius
The thickness of each particle used to generate the distance-field. A cell in this parameter refers to
the cell-size of the tile- layout of the input-body, NOT the resulting volume. If the thickness is less
than the volume's cell-size, the volume may be underresolved and you may end up with nothing,
or suffer grid aliasing artifacts which often end up as a flickering problem.
Detail Bandwidth
The amount (in worldspace units) to pad the region of space around the surface of the volume
used to store the data. Values >0 here can cause the tile-layout mapping the distance-field onto
space to grow, allowing for more freedom in shrinking/growing the distance field later on, as a
post-processing step.
Anti-Cavity Steps
How much to fill in small cavities in the resulting distance-field
Smoothing Steps
How much to smooth the resulting distance-field

Channel Sweeping Parameters


Channels
A space-separated list of arbitrary Particle channels to sweep out along with the distance field.
The swept channels all end up inside the Field-Shape of the resulting volume.
Velocity Scale
This convenience parameter applies a constant scale to the Field/velocity channel of the resulting
volume. Be careful when using the volume as a collision body and using scales less than 1.

Tile Layout Parameters

Cell Scale
Amount to scale the dimensions of the cells in the tile layout by. Note that this parameter does not
represent the actual worldspace dimensions of the cells, rather it uniformly scales them. To find
out the actual worldspace dimensions you have to multiply this parameter by the global parameter
"Master Cell Size". This allows you to set a global cell size in worldspace units for the whole
simulation (the "Master Cell Size"), and still allow each body to have its own cell-size by
changing this parameter. If you later decide to globally uprez the simulation, you don't have to
find every "Cell Scale" parameter on all the BodyOps that have it, but simply change the "Master
Cell Size".
Tile Size
The number of cells along each dimension of each tile in the volume

Coarsening Parameters
Coarsen Interior
This feature is currently disabled
Coarsen Interior Level
This feature is currently disabled

Inputs
body-input
A body matching the Particle signature is admitted through here

Outputs
body-output
Any resulting Volume bodies are passed out through here

Sphere-Volume
Overview
Creates an unsolved body using the Volume signature, meaning the distance to the surface
is stored in Field/distance and the velocity is stored in Field/velocity channel. The surface is
always that of a unit sphere.

Settings Parameters
Body Name
The name of the sphere volume body created
Position
The worldspace center of the sphere
Radius
The worldspace radius of the sphere

Coarsen Interior
This feature is currently disabled
Coarsen Interior Level
This feature is currently disabled

Tile Layout Parameters


Cell Scale
Amount to scale the dimensions of the cells in the tile layout by. Note that this parameter does not
represent the actual worldspace dimensions of the cells, rather it uniformly scales them. To find
out the actual worldspace dimensions you have to multiply this parameter by the global parameter
"Master Cell Size". This allows you to set a global cell size in worldspace units for the whole
simulation (the "Master Cell Size"), and still allow each body to have its own cell-size by
changing this parameter. If you later decide to globally uprez the simulation, you don't have to
find every "Cell Scale" parameter on all the BodyOps that have it, but simply change the "Master
Cell Size".
Tile Size
The number of cells along each dimension of each tile in the volume

Outputs
body-output
The sphere volume body is send down through this output

09- Body Ops Tet


Distance-Tet
Overview
Distance-Surface extracts a tet body from a distance-field.

General Parameters
Body Name
The name of the resulting mesh bod
Surface Level
The iso-value of the distance field where the surface is extracte
Mesh Smoothing Steps
The number of laplacian smoothing iterations performed on the extracted surface
mesh.

Inputs
distance-field
The distance-field input that encodes the surface we are meshing

Outputs
tet-output
The resulting mesh is passed out through this body output

Tet-Mesh
Overview
Tet-Mesh extracts the (surface) mesh from the incoming tet body.

General Parameters
Body Name
The name of the resulting mesh bod

Inputs
body-input
The tet body we are converting fro

Outputs
body-output
The resulting mesh is passed out through this body output

10- Body Ops File


Emp-Read
Overview
Reads bodies from an EMP file.
Mesh bodies read by this op are automatically interpolated in space to the precise current
solver time, even if no substep EMPs are available (though they will help the precision of the
interpolation). Per-vertex velocities will also be automatically created and stored in the
Point/velocity channel if they do not already exist in the imported mesh. NOTE that the mesh
interpolation and automatic velocity calculation will fail if the mesh changes topology.

Body Parameters
Body Names
Expects a white-space separated list of body names which, if encountered in the EMP file, will be
read and loaded by this op. The default argument of * is a wildcard representing all bodies stored
in the EMP. You can right-click on this parameter to get a context-menu of available body names.

Cache Parameters
EMP Cache
The name of the EMP file to read bodies from
Frame Padding
The number of zeroes to padding the frame number by, when expanding to the absolute EMP
filename.
Frame Offset
Offset the frame to read by this parameter
Repeat End Frame
If the frame being read is past the end of the EMP sequence, reads the last available EMP instead
of reporting an error.

World Transform Parameters


Transform Point/position
This parameter is not yet enabled
Use Local Point/velocity
This parameter is not yet enabled

Mesh Body Settings Parameters


Unit Conversion

Rescales the imported mesh to meter scale units (if required)


Cell Scale
Amount to scale the dimensions of the cells in the tile layout by. Note that this parameter does not
represent the actual worldspace dimensions of the cells, rather it uniformly scales them. To find
out the actual worldspace dimensions you have to multiply this parameter by the global parameter
"Master Cell Size". This allows you to set a global cell size in worldspace units for the whole
simulation (the "Master Cell Size"), and still allow each body to have its own cell-size by
changing this parameter. If you later decide to globally uprez the simulation, you don't have to
find every "Cell Scale" parameter on all the BodyOps that have it, but simply change the "Master
Cell Size".
Tile Size
The number of cells along each dimension of each tile in the volume

Outputs
body-output
All bodies loaded from the EMP will be passed downstream through this output.

Emp-Read-Isolated
Overview
Reads a single body from an EMP file.
A mesh body read by this op is automatically interpolated in space to the precise current
solver time, even if no substep EMPs are available (though they will help the precision of the
interpolation). Per-vertex velocities will also be automatically created and stored in the
Point/velocity channel if they do not already exist in the imported mesh. NOTE that the mesh
interpolation and automatic velocity calculation will fail if the mesh changes topology.

Body Parameters
Body Name
This parameter is used to specify the name of the body to load from the EMP file. You can rightclick on this parameter to get a context-menu of available body-names.

Cache Parameters
EMP Cache
The name of the EMP file to read bodies from
Frame Padding
The number of zeroes to padding the frame number by, when expanding to the absolute EMP
filename.
Frame Offset
Offset the frame to read by this parameter

Repeat End Frame


If the frame being read is past the end of the EMP sequence, reads the last available EMP instead
of reporting an error.

World Transform Parameters


Transform Point/position
This parameter is not yet enabled
Use Local Point/velocity
This parameter is not yet enabled

Mesh Body Settings Parameters


Unit Conversion
Rescales the imported mesh to meter scale units (if required)
Cell Scale
Amount to scale the dimensions of the cells in the tile layout by. Note that this parameter does not
represent the actual worldspace dimensions of the cells, rather it uniformly scales them. To find
out the actual worldspace dimensions you have to multiply this parameter by the global parameter
"Master Cell Size". This allows you to set a global cell size in worldspace units for the whole
simulation (the "Master Cell Size"), and still allow each body to have its own cell-size by
changing this parameter. If you later decide to globally uprez the simulation, you don't have to
find every "Cell Scale" parameter on all the BodyOps that have it, but simply change the "Master
Cell Size".
Tile Size
The number of cells along each dimension of each tile in the volume

Outputs
body-output
The single body loaded from the EMP will be passed down through this output.

Emp-Terminal
Overview
A terminal BodyOp which writes bodies to an EMP file.

Interval Parameters
Duration
When to actually perform the writing:
Continuous: Write regardless of the current frame.
Interval: Write only if the current frame falls inside the frame range given by the 'Interval Start

Frame' and 'Interval End Frame' parameters.


Interval Start Frame
If 'Duration' is set to Interval, defines the first frame of writing.
Interval End Frame
If 'Duration' is set to Interval, defines the last frame of writing.

Cache Parameters
EMP Cache
The name of the EMP file to read bodies from
Frame Padding
The number of zeroes to padding the frame number by, when expanding to the absolute EMP
filename.

Output Parameters
Per-Frame Channels
Specifies which channels to write per body, per frame. The format used here follows the standard
Naiad convention of writing ShapeName/ChannelName. For instance, to only write the particlevelocity channel, you would write Particle/velocity. Don't forget that shape-names are capitalized,
but channel-names are not. The default argument */* means that all channels in all shapes will be
written.
Per-Timestep Channels
Same as above, but this parameter specifies what channels to write per body, per substep - not
frame. If no substeps are taken during the solving of a frame, then no substep EMPs are written
and this parameter is ignored. The default argument of "Field/velocity Field/fluid-distance" was
chosen since it is the minimum required in order to run a detail simulation from a coarse
simulation.
EMP Compression
If you want slightly faster file I/O, but much larger EMPs, turn this off. Then again, using the
compression may in some cases speed up the file I/O since there is less data to physically commit
to disk storage.

Particle-Liquid Shell Output Parameters


Output Shell
During solves where particles are required to exist deep in the interior of a particle-based fluid
body, the size of the resulting EMPs may become prohibitively large. Furthermore, it is likely you
won't need to use all these "interior" particles for meshing or other post-processing tasks -- you
may only need the particles near the fluid surface. This toggle, if turned on, will instruct the EMP
writer to only write the particles in an N-cell deep "band" around the fluid surface, where
N="Shell Cell Band" parameter (see below).
Shell Interval Length
Outputting only a shell makes it impossible to restart a dynamic body from the EMP since most
interior particles will be missing. This limitation is overcome by using this parameter, which
specifies the interval (in frames) during which the shell output is active. Every Nth frame, where
N=this parameter, the entire particle shape (including the interior particles) is written to the EMP,
so that you can use it as a restart EMP.

Shell Cell Band


Given a frame that falls inside the periodic "Shell Interval" (see "Shell Interval Length" parameter
above), every particle who's "fluid-distance" is deeper than this parameter multiplied by the body's
cell-size, will be ignored by the EMP writer.

Inputs
body-input
All admitted bodies enter through this input.

Emp-Write
Overview
Writes bodies to an EMP file.

Interval Parameters
Duration
When to actually perform the writing:
Continuous: Write regardless of the current frame.
Interval: Write only if the current frame falls inside the frame range given by the 'Interval Start
Frame' and 'Interval End Frame' parameters.
Interval Start Frame
If 'Duration' is set to Interval, defines the first frame of writing.
Interval End Frame
If 'Duration' is set to Interval, defines the last frame of writing.

Cache Parameters
EMP Cache
The name of the EMP file to read bodies from
Frame Padding
The number of zeroes to padding the frame number by, when expanding to the absolute EMP
filename.

Output Parameters
Per-Frame Channels
Specifies which channels to write per body, per frame. The format used here follows the standard
Naiad convention of writing ShapeName/ChannelName. For instance, to only write the particlevelocity channel, you would write Particle/velocity. Don't forget that shape-names are capitalized,
but channel-names are not. The default argument */* means that all channels in all shapes will be
written.

Per-Timestep Channels
Same as above, but this parameter specifies what channels to write per body, per substep - not
frame. If no substeps are taken during the solving of a frame, then no substep EMPs are written
and this parameter is ignored. The default argument of "Field/velocity Field/fluid-distance" was
chosen since it is the minimum required in order to run a detail simulation from a coarse
simulation.
EMP Compression
If you want slightly faster file I/O, but much larger EMPs, turn this off. Then again, using the
compression may in some cases speed up the file I/O since there is less data to physically commit
to disk storage.

Particle-Liquid Shell Output Parameters


Output Shell
During solves where particles are required to exist deep in the interior of a particle-based fluid
body, the size of the resulting EMPs may become prohibitively large. Furthermore, it is likely you
won't need to use all these "interior" particles for meshing or other post-processing tasks -- you
may only need the particles near the fluid surface. This toggle, if turned on, will instruct the EMP
writer to only write the particles in an N-cell deep "band" around the fluid surface, where
N="Shell Cell Band" parameter (see below).
Shell Interval Length
Outputting only a shell makes it impossible to restart a dynamic body from the EMP since most
interior particles will be missing. This limitation is overcome by using this parameter, which
specifies the interval (in frames) during which the shell output is active. Every Nth frame, where
N=this parameter, the entire particle shape (including the interior particles) is written to the EMP,
so that you can use it as a restart EMP.
Shell Cell Band
Given a frame that falls inside the periodic "Shell Interval" (see "Shell Interval Length" parameter
above), every particle who's "fluid-distance" is deeper than this parameter multiplied by the body's
cell-size, will be ignored by the EMP writer.

Inputs
body-input
All admitted bodies enter through this input.

Outputs
body-output
All bodies encountered in body-input are passed down through this output, regardless if they were
admitted or not.

11- Body Ops Field


Field-Channel
Overview
Creates a new Field-Channel on all admitted bodies, and initializes it to the value given by
the 'Initial Value' parameter. If the admitted body doesn't have a Field-Shape, this Op will
create and add it to the body before adding the Field-Channel.

Field Emission (for Smoke, Fire etc)

This op can configured to perform Field-Channel emission, such as emitting smoke into the
Field/smoke channel inside a Field-Gas body, for instance. To make this op work as a field
emitter, keep the following in mind:
Set 'Value Action' to 'Emit' so that the Source Value becomes an emission-rate. Use the
mask-field to control/scale/mask where emission occurs.
Use the 'Refine Tiles' parameter if you want to extend the tile-layout of the body to cover the
total region of emission (recommended in most cases). If you only want emission to occur
where the body already has tiles, leave this parameter Off.
Make this an 'Interest Channel' if your body has no particles. Naiad uses particles to
determine where the fluid is. However, when dealing with pure field bodies (such as FieldGas/Smoke/Fire), Naiad tracks the fluid by examining the 'interest channels', which are
presumed to contain nonzero data in regions where the fluid is defined. Tiles will
automatically be created in those regions, but only for interest channels. You should have at
least one interest channel defined.
If you want this channel to be transported along the body's Field/velocity channel (as you
would with smoke, etc), set Timestep Update parameter to Low or High Detail Transport.

Tile-Layout Parameters
Refine Tiles
Refines the tile layout of all admitted bodies according to the layout passed in through the valuefield and mask-field inputs.

Channel Settings Parameters


Channel
The name of the Field-Channel to create/maintain
Channel Type
The Field-Channel value type. There are two options:

Float: Make this a scalar-field channel (a single floating-point value per cell).
Vector: Make this a vector-field channel (3 floating-point values per cell).
Initial Value
The initial constant value of the Field-Channel. If the channel is scalar-valued, only the Xcomponent of this vector is used.
Timestep Update
The action taken on the field during the transport stage (at the start of the time-step, before the
bodies are evolved by the graph). There are five options to choose from:
Keep Current: Do not modify the values in the channel.
Reset To Default: Set all cells to the default value (which is equal to the "Initial Value"
parameter).
Low Detail Transport: Transport the field along the vector-field found in Field/velocity channel.
The transport algorithm chosen in this mode is fast but exhibits more numerical diffusion than the
High Detail Transport setting.
High Detail Transport: Transport the field along the vector-field found in Field/velocity channel.
The transport algorithm chosen in this mode is slower but exhibits less numerical diffusion than
the Low Detail Transport setting.
Particle Splat: Initialize the cells in this Field-Channel using a Particle-Channel with the same
name as this channel. Each cell in the Field-Channel is initialized using the Particle-Channel
values bounded by the cell. The "Splatting Method" parameter controls exactly how each
particle's channel value contributes to the final cell value.

Particle Splatting Parameters


Splatting Method
Compute the weighted average of all particle channel values bounded by each cell, else just
accumulate the particle channel values.
Extend Boundary
After the splatting, extend the values of any boundary cells into neighboring cells with no
particles. This can be useful when you don't want your field to fade to the background color at the
boundary of the particle region. One example of this would be splatting a particle color channel
into a field color channel. If 'Extend Boundary' was turned off, a halo would form around the
colored region since the adjacent cells would not have been updated by any particles and thus
store some constant background value.

Interest Tracking Parameters


Interest Channel
Naiad uses particles to determine where the fluid is. However, when dealing with bodies that have
no particles (such as Field-Gas/Smoke/Fire, etc), Naiad tracks the fluid by examining 'interest
channels', which are presumed to contain nonzero data in regions where the fluid is defined. Tiles
will automatically be created in those regions, but only for interest channels.
Interest Threshold
The minumum value in a tile that should be tracked
Distance Interest

Marks the channel as a distance channel and the 'Interest Threshold' above equals the distance
field's iso-surface value.

Value Action Parameters


Run Value Action
An expression parameter which, if it evaluates to nonzero, triggers the value action to run at the
time this body is evolved by this Op. The value action applies the Source Value to the values of
the channel. The Source Value is either the value of the 'Source Value' parameter (see below), or
the contents of the value-field input, if connected. The way in which the Source Value is applied
depends on the 'Value Action' parameter (see below).
Value Action
Defines the way the Source Value is used to update the values of the channel. This action will not
run unless the 'Run Value Action' evaluates to non-zero (see above).
There are five options to choose from:

Set: Set channel to the source value.


Scale: Scale channel by the source value.
Accumulate: Add source value to the channel.
Emit: Add source value multiplied by dt (the length of the time-step) to the channel.

Source Value
The uniform constant source value of the value action. NOTE that this parameter is ignored the
value-field input is connected. In that case, the source value varies per cell, and is the value of the
FieldOp graph sampled at the each cell position, subject to any appropriate MAC-grid offsets
(e.g., at cell centers for scalar-valued fields, and on cell faces for vector-valued fields). If the
channel is scalar-valued, only the X-component of this vector is used.

Dynamics Parameters
Dissipation
The rate of dissipation after the value-action has been applied to the field. The rate is expressed in
units/frame, so a value of 1 means every cell in the channel is reduced to 0 in a single frame.
Diffusion
The rate of diffusion after the value-action has been applied to the field. The rate is expressed in
units/frame.

Inputs
body-input
All bodies are admitted through this input
value-field
The FieldOp graph optionally connected to this input defines the per-cell value used by the valueaction step (see the 'Value Action' parameter).
mask-field
The FieldOp graph optionally connected to this input defines a mask field which works as a global
scale on the source value used by the value-action step (see the 'Value Action' parameter).

Outputs
body-output
All bodies encountered in body-input are passed down through this output, regardless if they were
admitted or not.

Field-Killplane
Overview
Sets the interest channel to 0 for cells that lie in the positive or negative halfspace of the plane with
normal (1,0,0)

Kill Settings Parameters


Killing Halfspace
Which side of the plane the killing occurs

Plane Parameters
Translate
Center of the plane
Rotate
Orientation of the plane (in degrees)
Scale
Dimensions of the plane

Inputs
body-input
All bodies that match the Field signature are admitted through this input.

Outputs
body-output
All bodies encountered in body-input are passed down through this output, regardless if they were
admitted or not.

Field-Nel-Channel
Overview
Computes a channel value for each cell in a field channel of each admitted body.

Tile-Layout Parameters
Refine Tiles
Refines the tile layout of all admitted bodies according to the layout passed in through the valuefield input.

Channel Settings Parameters


Channel
The channel to create/set
Channel Type
The type of the channel.
Channel Expression
The per-cell field NEL expression used to set the channel values. If the channel type is scalar
valued, only the X component of this parameter is used.

Inputs
body-input
All bodies that match the Field signature are admitted through this input.
value-field
Provides an optional field which can be sampled in the NEL expression

Outputs
body-output
All bodies encountered in body-input are passed down through this output, regardless if they were
admitted or not.

Tile-Refine
Overview
For every body admitted through body-input, ensure it has tiles wherever there are tiles in all the
bodies admitted through the refiner-input.

Why You May Care About This Op


If, for some reason, you need to explicitly expand the tile-layout of your body into regions it normally
would not cover, this Op is for you.

Inputs
body-input
All bodies entering here may have their tile-layout refined (expanded)
refiner-input
All bodies entering here provide their tile-layout(s) to define the regions where tiles will be
necessary. The bodies entering through here are not passed down but will terminate in this Op.

Outputs
body-output
All bodies entering through body-input will be passed down through body-output.

Velocity-Emit
Overview
This BodyOp emits velocity into the Field-Shape of all admitted bodies.
Bodies which receive the emission are admitted through body-input if they match the Field signature.
The emission region is defined by the distance-field Field input.
Before emission occurs, the tile-layout of all bodies receiving emission will be expanded to include
any spatial regions where emission may occur.

Interval Parameters
Duration
THIS PARAMETER HAS BECOME OBSOLETE: Please instead put the equivalent NEL
expression into the 'Enabled' parameter. For example, to limit emission to occur between frames

1-10, you would write the following NEL expression: frame>=1 && frame THIS PARAMETER
EXISTS ONLY FOR BACKWARD COMPATIBILITY:
When to actually perform the emission:
Continuous: Emits regardless of the current frame.
Interval: Emits only if the current frame falls inside the frame range given by the 'Interval Start
Frame' and 'Interval End Frame' parameters.
Interval Start Frame
THIS PARAMETER HAS BECOME OBSOLETE (see above). If 'Duration' is set to Interval,
defines the first frame of emission.
Interval End Frame
THIS PARAMETER HAS BECOME OBSOLETE (see above). If 'Duration' is set to Interval,
defines the last frame of emission.

Velocity Parameters
Velocity Scale
The amount to scale the emission-velocity Field input before adding as velocity emission.
Velocity Emission World
A constant velocity emission (in worldspace units), in addition to any inherited velocity (see
above).
Velocity Emission Normal
The per-component fraction of the normal-vector (gradient) of each emission volume to use as
additional velocity emission. Values >1 are possible, and will scale the normal-vector emission.

Inputs
body-input
All bodies that match the Field signature enter through this input, and receive channel emission.
distance-field
The distance field used to define the region of emission
velocity-field
The velocity field used to define additional velocity emission
mask-field
Optional mask input for modulating the emission

Outputs
body-output
All bodies admitted through body-input are passed down through this output, regardless if they
were admitted or not.

12- Body Ops Terminal


Emp-Terminal
Overview
A terminal BodyOp which writes bodies to an EMP file.

Interval Parameters
Duration
When to actually perform the writing:
Continuous: Write regardless of the current frame.
Interval: Write only if the current frame falls inside the frame range given by the 'Interval Start
Frame' and 'Interval End Frame' parameters.
Interval Start Frame
If 'Duration' is set to Interval, defines the first frame of writing.
Interval End Frame
If 'Duration' is set to Interval, defines the last frame of writing.

Cache Parameters
EMP Cache
The name of the EMP file to read bodies from
Frame Padding
The number of zeroes to padding the frame number by, when expanding to the absolute EMP
filename.

Output Parameters
Per-Frame Channels
Specifies which channels to write per body, per frame. The format used here follows the standard
Naiad convention of writing ShapeName/ChannelName. For instance, to only write the particlevelocity channel, you would write Particle/velocity. Don't forget that shape-names are capitalized,
but channel-names are not. The default argument */* means that all channels in all shapes will be
written.
Per-Timestep Channels
Same as above, but this parameter specifies what channels to write per body, per substep - not
frame. If no substeps are taken during the solving of a frame, then no substep EMPs are written
and this parameter is ignored. The default argument of "Field/velocity Field/fluid-distance" was
chosen since it is the minimum required in order to run a detail simulation from a coarse
simulation.
EMP Compression

If you want slightly faster file I/O, but much larger EMPs, turn this off. Then again, using the
compression may in some cases speed up the file I/O since there is less data to physically commit
to disk storage.

Particle-Liquid Shell Output Parameters


Output Shell
During solves where particles are required to exist deep in the interior of a particle-based fluid
body, the size of the resulting EMPs may become prohibitively large. Furthermore, it is likely you
won't need to use all these "interior" particles for meshing or other post-processing tasks -- you
may only need the particles near the fluid surface. This toggle, if turned on, will instruct the EMP
writer to only write the particles in an N-cell deep "band" around the fluid surface, where
N="Shell Cell Band" parameter (see below).
Shell Interval Length
Outputting only a shell makes it impossible to restart a dynamic body from the EMP since most
interior particles will be missing. This limitation is overcome by using this parameter, which
specifies the interval (in frames) during which the shell output is active. Every Nth frame, where
N=this parameter, the entire particle shape (including the interior particles) is written to the EMP,
so that you can use it as a restart EMP.
Shell Cell Band
Given a frame that falls inside the periodic "Shell Interval" (see "Shell Interval Length" parameter
above), every particle who's "fluid-distance" is deeper than this parameter multiplied by the body's
cell-size, will be ignored by the EMP writer.

Inputs
body-input
All admitted bodies enter through this input.

Terminal
Overview
All bodies flowing into a terminal Op will be terminated, just as bodies are terminated when sent to a
body output that is unconnected. While terminal Ops are not strictly necessary, using them makes for
cleaner-looking graphs, and helps anyone looking at your graph know where the endpoints are of any
body-evolving "pipelines" you set up.

Inputs
body-input
All bodies enter through this input, and will be terminated here

13- Body Ops Nel


Field-Nel-Channel
Overview
Computes a channel value for each cell in a field channel of each admitted body.

Tile-Layout Parameters
Refine Tiles
Refines the tile layout of all admitted bodies according to the layout passed in through the valuefield input.

Channel Settings Parameters


Channel
The channel to create/set
Channel Type
The type of the channel.
Channel Expression
The per-cell field NEL expression used to set the channel values. If the channel type is scalar
valued, only the X component of this parameter is used.

Inputs
body-input
All bodies that match the Field signature are admitted through this input.
value-field
Provides an optional field which can be sampled in the NEL expression

Outputs
body-output
All bodies encountered in body-input are passed down through this output, regardless if they were
admitted or not.

Particle-Nel-Channel
Computes a channel value for each particle of each admitted body.

Channel Settings Parameters


Channel
The channel to create/set
Channel Type
The type of the channel.
Channel Expression
The per-particle NEL expression used to set the channel values. If the channel type is scalar
valued, only the X component of this parameter is used.

Inputs
body-input
All bodies that match the Particle signature are admitted through this input.
value-field
Provides an optional field which can be sampled in the NEL expression

Outputs
body-output
All bodies encountered in body-input are passed down through this output, regardless if they were
admitted or not.

Particle-Nel-Kill
Kills particles for whom the per-particle NEL expression parameter 'Kill Expression' evaluates to a
non-zero value.

Kill Settings Parameters


Kill Expression
The per-particle NEL expression which, if nonzero, will cause the current particle to be killed.

Inputs
body-input
All bodies that match the Particle signature are admitted through this input.

Outputs
body-output
All bodies encountered in body-input are passed down through this output, regardless if they were
admitted or not.

Point-Nel-Channel
Updates the values in the given Point-Channel on each admitted body. The new values are set to the
value of the per-point NEL expression provided in the "Channel Expression" parameter.

Channel Settings Parameters


Channel
The channel to create/set
Channel Type
The type of the channel.
Channel Expression
The per-point NEL expression used to set the channel values. If the channel type scalar valued,
only the X component of this parameter is used.

Inputs
body-input
All bodies that are admitted through this input.

Outputs
body-output
All bodies encountered in body-input are passed down through this output, regardless if they were
admitted or not.

14- Body Ops Emit


Liquid-Emit-Distance
Overview
This operator emits liquid into all admitted bodies. It is called "Liquid-Emit-Distance" because
it uses an external distance-field to determine where to emit the liquid. Currently only particlebased liquids are supported in Naiad, so only bodies that match the Particle-Liquid signature
are admitted.
This operator functions as a special kind of particle emitter that only emits particles into cells
where the fluid is underresolved by particles. Particle-Liquids have properties that regulate
the desired particle distribution throughout the body and this operator uses those properties
to determine which cells are underresolved, per body. Specifially: Surface cells are
underresolved if the particle count is less than the Surface Supersampling property, cubed.
Cells deeper than the Surface Bandwidth property are considered internal cells, which are
underresolved if the particle count is less than the Particle Supersampling property, cubed. If
the optional mask-field input is connected, emission is not performed in regions where the
mask is zero.
The liquid emission region is defined by the distance-field input. As part of the emission
mechanism, the tile-layout of all admitted bodies will be expanded to include the spatial
regions covered by the tiles in the distance-field input.
If an external velocity field is connected to the velocity-field input, all emitted particles will get
their initial velocity by sampling this field at their emitted worldspace positions. If no external
velocity field is connected, the initial particle velocities are set by sampling the Particle-Liquid
body's existing velocity field.
This operator directly updates the Field/fluid-distance channel on Particle-Liquid bodies using
the DEFLIP Fluid Method.

Inputs
body-input
All bodies that match the Particle-Liquid signature enter through this input.
distance-field
The external distance field used to define the region of emission
velocity-field
Optional external velocity field to sample for initial particle velocities.
mask-field
Optional mask input for skipping emission in certain areas

Outputs
body-output
All bodies encountered in body-input are passed down through this output, regardless if
they were admitted or not.

Particle-Emit
Overview
This BodyOp emits particles into the Particle-Shape of all admitted bodies. The emission rate
is regulated by the receiving body's "Particle Supersampling" property (in the interior), and, if
the body has a surface, the "Surface Supersampling" property.
Bodies which receive the emission are admitted through body-input if they match the Particle
signature. The emission region is defined by the distance-field input.
Before emission occurs, the tile-layout of all bodies receiving emission will be expanded to
include any spatial regions where emission may occur.

Interval Parameters
Duration
THIS PARAMETER HAS BECOME OBSOLETE: Please instead put the equivalent NEL
expression into the 'Enabled' parameter. For example, to limit emission to occur between
frames 1-10, you would write the following NEL expression: frame>=1 && frame THIS
PARAMETER EXISTS ONLY FOR BACKWARD COMPATIBILITY:
When to actually perform the emission:
Continuous: Emits regardless of the current frame.
Interval: Emits only if the current frame falls inside the frame range given by the 'Interval Start
Frame' and 'Interval End Frame' parameters.
Interval Start Frame
THIS PARAMETER HAS BECOME OBSOLETE (see above). If 'Duration' is set to
Interval, defines the first frame of emission.
Interval End Frame
THIS PARAMETER HAS BECOME OBSOLETE (see above). If 'Duration' is set to
Interval, defines the last frame of emission.

Inputs
body-input
All bodies that match the Particle signature enter through this input, and receive particle
emission.

distance-field
The distance field used to define the region of emission
mask-field
Optional mask input for modulating the emission

Outputs
body-output
All bodies encountered in body-input are passed down through this output, regardless if
they were admitted or not.

Particle-Splash-Emit
Overview
Emits and simulates secondary splash particles from a previously completed Particle-Liquid
fluid simulation. Various Field-Channels on the pre-solved fluid body are screened for a set of
emission criteria which, if fulfilled, will cause splash emission to occur.

What Are Splash Particles?


Splash particles are dynamic, potentially ballistic particles which can feel forces and interact
just like Particle-Liquid particles do, or just slide along the surface of the pre-solved fluid
body, much like foam. Splash particles live in their own dynamic body, but use both the presolved fluid body to determine where splash emission should occur.

Why You May Care About This Op


Say you have already solved the fluid simulation for a Particle-Liquid body, and cached it out
to a series of EMP files. This Op allows you to emit and simulate "splash particles" from the
surface of the pre-solved Particle-Liquid, using a variety of emission criteria. The splash
particles can then be used as to add more detail to your simulation, and since they solve
much faster than a full fluid sim, you can have a lot more of them.

Notes
Optionally, a mask-field input can be used to limit the region where splash emission is
considered. Splash emission will be considered in all regions where the mask is nonzero. If
no mask-field Field input is connected, then splash emission will be considered for the entire
spatial region occupied by the pre-solved fluid body, subject to the emission critera (see
parameters below).

Interval Parameters
Duration
THIS PARAMETER HAS BECOME OBSOLETE: Please instead put the equivalent NEL

expression into the 'Enabled' parameter. For example, to limit emission to occur between
frames 1-10, you would write the following NEL expression: frame>=1 && frame THIS
PARAMETER EXISTS ONLY FOR BACKWARD COMPATIBILITY:
When to actually perform the emission:
Continuous: Emits regardless of the current frame.
Interval: Emits only if the current frame falls inside the frame range given by the 'Interval Start
Frame' and 'Interval End Frame' parameters.
Interval Start Frame
THIS PARAMETER HAS BECOME OBSOLETE (see above). If 'Duration' is set to
Interval, defines the first frame of emission.
Interval End Frame
THIS PARAMETER HAS BECOME OBSOLETE (see above). If 'Duration' is set to
Interval, defines the last frame of emission.

Emission Criteria Parameters


Min Required Speed
The minimum source body's fluid speed required for splash emission to occur.
Min Required Churn
The minimum vorticity (perpendicular to the source body's fluid surface) required for
splash emission to occur.
Min Required Curvature
The minumum source body fluid curvature required for splash emission to occur. Higher
values mean more curvature.
Min Allowed Depth
The minumum source body fluid depth allowed for splash emission
Max Allowed Depth
The maximum source body fluid depth allowed for splash emission
Min Particle Count
The minimum number of source fluid particles in the vicinity required for splash emission
to occur.

Emission Parameters
Emission Rate
The number of splash particles / sec to emit
Flatness
How close to the surface of the source fluid the splash particles are emitted from. A value
of 1 means emitting directly onto the surface ("flat" emission), whereas a value of 0 will
emit anywhere in the grid cell closest to the surface.
Foam Depth Offset
When splash particles lie on the surface of the source fluid, they can be considered to be
foam. This parameter controls the offset along the fluid surface normal where these foam
particles will flow.
Emission Velocity Scale
Scales the inherited velocity of the emitted splash particles
Emission Velocity Scale Jitter
Adds the jittered amount to the Emission Velocity Scale.

Emission Velocity Latitude Jitter


Jitters the latitudal components of inherited velocity of the emitted splash particles.
Emission Velocity Longitude Jitter
Jitters the longitual components of inherited velocity of the emitted splash particles.

Dynamics Parameters
Ballistic
Make the splash particles fully dynamic and ballistic, allowing them to respond to forces
and collisions unless they land on the fluid surface. If this flag is turned off, the splash
particles will behave like foam particles and constrained to the surface of the fluid.

Inputs
body-input
All bodies that match the Particle signature enter through this input, and receive splash
particle emission.
fluid-body-input
The pre-solved Particle-Liquid fluid body that is used to drive the splash emission is
admitted through the "fluid-body-input".
distance-field
Optionally used to override the Field/fluid-distance channel otherwised used from the
pre-solved Particle-Liquid fluid body to determine where the fluid surface is.
depth-field
Optionally used to specify the depth field used by the "Min Allowed Depth" and "Max
Allowed Depth" parameters.
mask-field
Used to limit the region of space where splash emission is considered

Outputs
body-output
All bodies encountered in body-input are passed down through this output, regardless if
they were admitted or not.

Particle-Wet-Emit
Overview
Emits and tracks secondary wet particles on collision surfaces touched or splashed on by a
previously completed Particle-Liquid fluid simulation.

What Are Wet Particles?


Wet particles are emitted on collision surfaces that interact with the pre-solved fluid body's
particles. They can feel a built-in gravity force and thus slip down the collision surface
realistically. Wet particles live in their own kinematic body, but use both the pre-solved fluid
body and one or more interacting volume bodies (which define the collision surfaces) to
determine where wet emission should occur, and where to slide.

Why You May Care About This Op


Say you have already solved the fluid simulation for a Particle-Liquid body, and cached it out
to a series of EMP files. This Op allows you to emit and track "wet particles" anywhere the
pre-solved Particle-Liquid particles touches or splashes onto any surrounding geometry, even
if the surrounding geometry is changed from where it was located in the original ParticleLiquid simulation.
Furthermore, this Op allows you to specify a gravity vector and 'slip' amount (which can be
spatially broken up and modulated by an optional Field input) that allows your particles to
realistically slide down the surfaces of the interacting geometry.

Notes
This Op functions both as particle emitter (it emits wet particles) and a kind of dynamics Op
since it adds gravity/slip to the wet-particles as well as handles the interaction with the
collision surfaces the particles live on.
The collision surfaces the wet particles live on are currently established using one or more
Interact BodyOps, just like any other simulation. This in turn means that the collision surfaces
(if they originate as a Mesh body) must first be converted to Volume bodies before being fed
to Interact, since Naiad fluids can only collide against geometry described by a distance-field.
The Interact(s) must neccesarily be inserted upstream of the Particle-Wet-Emit in the graph,
so that, at the time it evolves its admitted wet-bodies, it already knows where the collision
surfaces are.

Future Work & Improvement


We'd like to add the ability to have wet particles actually drip off the surfaces they track, not
just slide down them. Furthermore, if the surface moves at a high velocity, it would be nice to
allow them to "fly off" - a kind of splash effect.

Interval Parameters
Duration
THIS PARAMETER HAS BECOME OBSOLETE: Please instead put the equivalent NEL
expression into the 'Enabled' parameter. For example, to limit emission to occur between
frames 1-10, you would write the following NEL expression: frame>=1 && frame THIS
PARAMETER EXISTS ONLY FOR BACKWARD COMPATIBILITY:
When to actually perform the emission:
Continuous: Emits regardless of the current frame.
Interval: Emits only if the current frame falls inside the frame range given by the 'Interval Start
Frame' and 'Interval End Frame' parameters.
Interval Start Frame
THIS PARAMETER HAS BECOME OBSOLETE (see above). If 'Duration' is set to
Interval, defines the first frame of emission.
Interval End Frame
THIS PARAMETER HAS BECOME OBSOLETE (see above). If 'Duration' is set to
Interval, defines the last frame of emission.

Settings Parameters
Particle Skip
Every particle from the pre-solved fluid body is considered as a source of wet particle
emission (if it gets too close to a collision surface). This may be far more than you really
need, so this parameter allows you to specify how many particles to skip between
emission checks.
Collision Distance
The worldspace minimum distance between the pre-solved fluid body's particles and the
collision surface which causes wet particles to be emitted.
Radius
Wet particles are emitted randomly in a disc projected onto the collision surface. This
parameter specifies the worldspace radius of this 'emission disk'.

Slip Settings Parameters


Gravity
The gravity vector used to make the wet particles slide along the collision surface.
Slip
How fast the wet particles slide along the collision surface (essentially a scale on the
gravity vector). This parameter is overriden by connecting the 'mask-field' input, where
the mask-field is sampled per-particle to calculate the slip amount.

Inputs
body-input
The wet bodies (receiving the wet particle emission) are fed through the body-input, and
are required to match the Particle body signature in order to be admitted and evolved by
this Op.

fluid-body-input
The pre-solved Particle-Liquid body is fed through the fluid-body-input and will be
terminated when this Op finishes.
mask-field
Used to override the 'Slip' parameter to spatially modulate and break- up the slip
constant.

Outputs
body-output
Admitted or not, all bodies encountered in body-input will be passed down through the
body-output.

Velocity-Emit
Overview
This BodyOp emits velocity into the Field-Shape of all admitted bodies.
Bodies which receive the emission are admitted through body-input if they match the Field
signature. The emission region is defined by the distance-field Field input.
Before emission occurs, the tile-layout of all bodies receiving emission will be expanded to
include any spatial regions where emission may occur.

Interval Parameters
Duration
THIS PARAMETER HAS BECOME OBSOLETE: Please instead put the equivalent NEL
expression into the 'Enabled' parameter. For example, to limit emission to occur between
frames 1-10, you would write the following NEL expression: frame>=1 && frame THIS
PARAMETER EXISTS ONLY FOR BACKWARD COMPATIBILITY:
When to actually perform the emission:
Continuous: Emits regardless of the current frame.
Interval: Emits only if the current frame falls inside the frame range given by the 'Interval Start
Frame' and 'Interval End Frame' parameters.
Interval Start Frame
THIS PARAMETER HAS BECOME OBSOLETE (see above). If 'Duration' is set to
Interval, defines the first frame of emission.
Interval End Frame
THIS PARAMETER HAS BECOME OBSOLETE (see above). If 'Duration' is set to
Interval, defines the last frame of emission.

Velocity Parameters

Velocity Scale
The amount to scale the emission-velocity Field input before adding as velocity emission.
Velocity Emission World
A constant velocity emission (in worldspace units), in addition to any inherited velocity
(see above).
Velocity Emission Normal
The per-component fraction of the normal-vector (gradient) of each emission volume to
use as additional velocity emission. Values >1 are possible, and will scale the normalvector emission.

Inputs
body-input
All bodies that match the Field signature enter through this input, and receive channel
emission.
distance-field
The distance field used to define the region of emission
velocity-field
The velocity field used to define additional velocity emission
mask-field
Optional mask input for modulating the emission

Outputs
body-output
All bodies admitted through body-input are passed down through this output, regardless
if they were admitted or not.

15- Body Ops Liquid


Liquid-Emit-Distance
Overview
This operator emits liquid into all admitted bodies. It is called "Liquid-Emit-Distance" because
it uses an external distance-field to determine where to emit the liquid. Currently only particlebased liquids are supported in Naiad, so only bodies that match the Particle-Liquid signature
are admitted.
This operator functions as a special kind of particle emitter that only emits particles into cells
where the fluid is underresolved by particles. Particle-Liquids have properties that regulate
the desired particle distribution throughout the body and this operator uses those properties
to determine which cells are underresolved, per body. Specifially: Surface cells are
underresolved if the particle count is less than the Surface Supersampling property, cubed.
Cells deeper than the Surface Bandwidth property are considered internal cells, which are
underresolved if the particle count is less than the Particle Supersampling property, cubed. If
the optional mask-field input is connected, emission is not performed in regions where the
mask is zero.
The liquid emission region is defined by the distance-field input. As part of the emission
mechanism, the tile-layout of all admitted bodies will be expanded to include the spatial
regions covered by the tiles in the distance-field input.
If an external velocity field is connected to the velocity-field input, all emitted particles will get
their initial velocity by sampling this field at their emitted worldspace positions. If no external
velocity field is connected, the initial particle velocities are set by sampling the Particle-Liquid
body's existing velocity field.
This operator directly updates the Field/fluid-distance channel on Particle-Liquid bodies using
the DEFLIP Fluid Method.

Inputs
body-input
All bodies that match the Particle-Liquid signature enter through this input.
distance-field
The external distance field used to define the region of emission
velocity-field
Optional external velocity field to sample for initial particle velocities.
mask-field
Optional mask input for skipping emission in certain areas

Outputs
body-output
All bodies encountered in body-input are passed down through this output, regardless if
they were admitted or not.

16- Body Ops Particles


Particle-Age
Overview
Creates a scalar-valued Particle-Channel on all admitted bodies. The channel's name is
"age". This Op also performs the actual particle aging, also taking care of killing particles
who's age reaches or exceeds the 'Lifespan' parameter.

Aging Parameters
Lifespan
The maximum age a particle is allowed to reach before dying (in simulation seconds).

Inputs
body-input
All bodies that match the Particle signature will be admitted

Outputs
body-output
All bodies encountered in body-input are passed down through this output, regardless if they were
admitted or not.

Particle-Channel
Overview
Creates a new Particle-Channel on all admitted bodies, and initializes it to the value given by the
'Initial Value' parameter.
Also specifies a value action which determines what happens to the Particle-Channel at the time each
body is evolved by this BodyOp.
If the admitted body doesn't have a Particle-Shape, this Op will create and add it to the body before
adding the Particle-Channel.

Channel Settings Parameters


Channel
The name of the Particle-Channel to create/maintain
Channel Type
The Particle-Channel value type. There are two options:
Float: Make this a scalar channel (a single floating-point value per cell).
Vector: Make this a vector channel (3 floating-point values per cell).
Initial Value
The initial uniform constant value of the channel. If the channel is scalar-valued, only the Xcomponent of this vector is used.

Value Action Parameters


Run Value Action
An expression parameter which, if it evaluates to nonzero, triggers the value action to run at the
time this body is evolved by this Op. The value action applies the Source Value to the values of
the channel. The Source Value is either the value of the 'Source Value' parameter (see below), or
the contents of the value-field input, if connected. The way in which the Source Value is applied
depends on the 'Value Action' parameter (see below).
Value Action
Defines the way the Source Value is used to update the values of the channel. This action will not
run unless the 'Run Value Action' evaluates to non-zero (see above). There are five options to
choose from:

Set: Set channel to the source value.


Scale: Scale channel by the source value.
Accumulate: Add source value to the channel.
Emit: Add source value multiplied by dt (the length of the time-step) to the channel.

Source Value
The uniform constant source value of the value action. NOTE that this parameter is ignored if a
FieldOp graph is connected to the value-field input. In that case, the source value varies per
particle, and is the value of the FieldOp graph sampled at each particle position. If the channel is
scalar-valued, only the X-component of this vector is used.

Inputs
body-input
All bodies are admitted through this input
value-field
The FieldOp graph optionally connected to this input defines the per-particle value used by the
value-action step (see the 'Value Action' parameter).
mask-field
The FieldOp graph optionally connected to this input defines a mask field which works as a global
scale on the source value used by the value-action step (see the 'Value Action' parameter).

Outputs
body-output
All bodies encountered in body-input are passed down through this output, regardless if they were
admitted or not.

Particle-Detail
Overview
Settings Parameters
Full Emission
Expression parameter which, if nonzero, triggers detail particle emission.
Incremental Emission
Expression parameter which, if nonzero, triggers incremental detail particle emission.
Velocity Mode
Controls if the detail velocity should be sampled into a field or particle channel.
Regulate Interior
Enforce the desired particle distribution within the interior of the detail body (the interior
distribution is specified by the 'Particle Supersampling' property on the detail body).

Inputs
body-input
No description available.
fluid-body-input
The pre-solved Particle-Liquid fluid body that is used to drive the particle detail body is admitted
through this input.

Outputs
body-output
All bodies encountered in body-input are passed down through this output, regardless if they were
admitted or not.

Particle-Disperse
Overview
Applies a type of brownian-motion (pseudo-random dispersion) to the Particle/velocity channel on all
admitted bodies.

Dispersion Parameters
Dispersion Strength
Dispersion strength is approximately the length a particle would wander over (on average) in one
unit of time.

Inputs
body-input
Bodies matching the Particle signature are admitted through here

Outputs
body-output
All bodies encountered in body-input are passed down through this output, regardless if they were
admitted or not.

Particle-Emit
Overview
This BodyOp emits particles into the Particle-Shape of all admitted bodies. The emission rate is
regulated by the receiving body's "Particle Supersampling" property (in the interior), and, if the body
has a surface, the "Surface Supersampling" property.
Bodies which receive the emission are admitted through body-input if they match the Particle
signature. The emission region is defined by the distance-field input.
Before emission occurs, the tile-layout of all bodies receiving emission will be expanded to include
any spatial regions where emission may occur.

Interval Parameters
Duration
THIS PARAMETER HAS BECOME OBSOLETE: Please instead put the equivalent NEL

expression into the 'Enabled' parameter. For example, to limit emission to occur between frames
1-10, you would write the following NEL expression: frame>=1 && frame THIS PARAMETER
EXISTS ONLY FOR BACKWARD COMPATIBILITY:
When to actually perform the emission:
Continuous: Emits regardless of the current frame.
Interval: Emits only if the current frame falls inside the frame range given by the 'Interval Start
Frame' and 'Interval End Frame' parameters.
Interval Start Frame
THIS PARAMETER HAS BECOME OBSOLETE (see above). If 'Duration' is set to Interval,
defines the first frame of emission.
Interval End Frame
THIS PARAMETER HAS BECOME OBSOLETE (see above). If 'Duration' is set to Interval,
defines the last frame of emission.

Inputs
body-input
All bodies that match the Particle signature enter through this input, and receive particle emission.
distance-field
The distance field used to define the region of emission
mask-field
Optional mask input for modulating the emission

Outputs
body-output
All bodies encountered in body-input are passed down through this output, regardless if they were
admitted or not.

Particle-Fuse
THIS OP IS NOW OBSOLETE - PLEASE USE Particle-Merge
instead.
Overview
Adds all the particles from every body admitted through body-input-b to every body admitted through
body-input.
Technically, the Particle-Shapes are "fused" and the resulting Particle-Shape in all the bodies admitted
through body-input will contain all its original particles as well at those from the bodies of body-inputb.

Note that all bodies encountered in body-input-b will be terminated, after the fuse is complete -- even
those bodies which do not match the Particle signature and were not part of the fuse.

THIS OP IS NOW OBSOLETE - PLEASE USE Particle-Merge


instead.
Inputs
body-input
All bodies matching the Particle signature are admitted through here
body-input-b
All bodies matching the Particle signature are admitted through here

Outputs
body-output
All bodies encountered in body-input are passed down through this output, regardless if they were
admitted or not.

Particle-Herd
Overview
Creates a particle "herd" body, containing only those particles which match the Herding Rule as
defined below, from every body admitted through body-input. Optionally, an "unherded" body may be
created, containing all the other particles.
The original bodies are passed down, untouched, through the body-output.

Herding Rule
Particles are included in the herd if they match the herding rule, e.g., their channel value lies inside or
outside some defined range.

Herding Parameters
Herded Body Name
The name to give to the herded body (e.g. the new body containing the herded particles.
Herding Channel
The name of the channel to test using the Herding Rule
Herding Rule
The rule to use when herding particles:

Inside Range: Herd only particles with channel value inside the range bounded by the 'Herding
Min' and 'Herding Max' parameters. For scalar-valued channels, only the X-component of the
Min/Max parameters is considered.
Outside Range: Herd only particles with channel value outside the range bounded by the 'Herding
Min' and 'Herding Max' parameters. For scalar-valued channels, only the X-component of the
Min/Max parameters is considered.
Herding Min
The lower bound of the value interval used by the herding rule
Herding Max
The upper bound of the value interval used by the herding rule

Unherding Parameters
Unherding
Whether or not to create a body containing all particles that were not herded by this Op.
Unherded Body Name
If Unherding is on, the name of the unhereded body

Inputs
body-input
All bodies matching the Particle signature are admitted through this input.

Outputs
body-output
All bodies encountered in body-input are passed down through this output, regardless if they were
admitted or not.
herded-body-output
Only the herd bodies created are sent down this output
unherded-body-output
Only the (optional) unherd bodies created are sent down this output

Particle-Id
Overview
Creates a 64-bit integer Particle-Channel on all admitted bodies. The channel's name is "id64". This is
a standard Particle-Channel which automatically takes care of initializing new particles's id's.

Inputs
body-input
All bodies that match the Particle signature will be admitted

Outputs
body-output
All bodies encountered in body-input are passed down through this output, regardless if they were
admitted or not.

Particle-Killmask
Kills particles that evaluate to less than the 'Killing Threshold' parameter, when sampled against the
FieldOp graph connected to mask-field.

Kill Settings Parameters


Killing Threshold
The value of the FieldOp graph connected to mask-field at each particle position must equal or
exceed this parameter, or the particle will be killed.

Inputs
body-input
All bodies that match the Particle signature are admitted through this input.
mask-field
The FieldOp graph connected to this input defines a mask field which defines spatial regions of
values which kill particles. The 'killing values' must be equal or greater than the 'Killing
Threshold' parameter.

Outputs
body-output

All bodies encountered in body-input are passed down through this output, regardless if they were
admitted or not.

Particle-Killplane
Kills particles that lie in the positive or negative halfspace of the plane with normal (1,0,0)

Kill Settings Parameters


Killing Halfspace
Which side of the plane the killing occurs

Plane Parameters
Translate
Center of the plane
Rotate
Orientation of the plane (in degrees)
Scale
Dimensions of the plane

Inputs
body-input
All bodies that match the Particle signature are admitted through this input.

Outputs
body-output
All bodies encountered in body-input are passed down through this output, regardless if they were
admitted or not.

Particle-Merge
Overview
Merges all the particles from every body admitted through body-input into a single body. The resulting
merged body is passed out through body-output.

The Resulting Merged Body


Optionally, the existing-body-input may be connected to provide an existing body that should receive
the merged particles. If the existing-body-input is left unconnected, a new body using the Unsolved
motion type will be created to store the merged particles.
Note that all bodies encountered in body-input-b will be terminated, after the merge is complete -even those bodies which do not match the Particle signature and were not part of the fuse.

Body Parameters
Body Name
The name of the resulting particle body -- if is created by this op. If the existing-body-input is
connected, the body admitted through it will be the resulting particle body, its name remains
intact, and this parameter is ignored.

Tile Layout Parameters


Cell Scale
Amount to scale the dimensions of the cells in the tile layout by. Note that this parameter does not
represent the actual worldspace dimensions of the cells, rather it uniformly scales them. To find
out the actual worldspace dimensions you have to multiply this parameter by the global parameter
"Master Cell Size". This allows you to set a global cell size in worldspace units for the whole
simulation (the "Master Cell Size"), and still allow each body to have its own cell-size by
changing this parameter. If you later decide to globally uprez the simulation, you don't have to
find every "Cell Scale" parameter on all the BodyOps that have it, but simply change the "Master
Cell Size".
Tile Size
The number of cells along each dimension of each tile in the volume

Inputs
existing-body-input
If connected, admits an existing body to store the merged particles
body-input
All bodies matching the Particle signature are admitted through here

Outputs

body-output
The resulting body from the merge is passed down through this output

Particle-Mesh
Overview
This is a particle surfacer op that creates a triangle-mesh from each admitted body's Particle/position
channel only (as opposed to the Distance-Mesh op which generates the mesh surface from a distancefield only).
The Particle/velocity channel (if it exists) is used to create per-vertex velocities on the mesh (stored in
the resulting mesh's Point/velocity channel).
Finally, the mask-field input is optionally used to limit the region of space where surfacing should
occur.

Body Parameters
Body Name
The name of the resulting mesh bod

Conversion Parameters
Thickening Radius
The thickness of each particle used to generate the distance-field. A cell in this parameter refers to
the cell-size of the tile- layout of the input-body, NOT the resulting volume. If the thickness is less
than the volume's cell-size, the volume may be underresolved and you may end up with nothing,
or suffer grid aliasing artifacts which often end up as a flickering problem.
Detail Bandwidth
The amount (in worldspace units) to pad the region of space around the surface of the volume
used to store the data. Values >0 here can cause the tile-layout mapping the distance-field onto
space to grow, allowing for more freedom in shrinking/growing the distance field later on, as a
post-processing step.
Anti-Cavity Steps
How much to fill in small cavities in the resulting distance-field
Smoothing Steps
How much to smooth the resulting distance-field
Blend Radius Factor
No description available.
Mesh Fluid Smoothing
The number of feature-preserving smoothing steps performed on the extracted surface mesh.
Mesh Blur
The number of non-feature preserving smoothing steps performed on the extracted surface mesh.

Channel Sweeping Parameters


Channels
A space-separated list of arbitrary Particle channels to transfer to the mesh (ending up in the
Point-Shape).
Velocity Scale
This convenience parameter applies a constant scale to the Field/velocity channel of the resulting
volume. Be careful when using the volume as a collision body and using scales less than 1.

Tile Layout Parameters


Cell Scale
Amount to scale the dimensions of the cells in the tile layout by. Note that this parameter does not
represent the actual worldspace dimensions of the cells, rather it uniformly scales them. To find
out the actual worldspace dimensions you have to multiply this parameter by the global parameter
"Master Cell Size". This allows you to set a global cell size in worldspace units for the whole
simulation (the "Master Cell Size"), and still allow each body to have its own cell-size by
changing this parameter. If you later decide to globally uprez the simulation, you don't have to
find every "Cell Scale" parameter on all the BodyOps that have it, but simply change the "Master
Cell Size".
Tile Size
The number of cells along each dimension of each tile in the volume

Coarsening Parameters
Coarsen Interior
This feature is currently disabled
Coarsen Interior Level
This feature is currently disabled

Inputs
body-input
The bodies containing the particles to surface
mask-field
Optionally, the mask-field input is used to determine which regions of the distance-field that
should be included in the meshing. Nonzero values represent meshable regions.

Outputs
body-output
The resulting meshes are passed out through this body output

Particle-Nel-Channel

Computes a channel value for each particle of each admitted body.

Channel Settings Parameters


Channel
The channel to create/set
Channel Type
The type of the channel.
Channel Expression
The per-particle NEL expression used to set the channel values. If the channel type is scalar
valued, only the X component of this parameter is used.

Inputs
body-input
All bodies that match the Particle signature are admitted through this input.
value-field
Provides an optional field which can be sampled in the NEL expression

Outputs
body-output
All bodies encountered in body-input are passed down through this output, regardless if they were
admitted or not.

Particle-Nel-Kill
Kills particles for whom the per-particle NEL expression parameter 'Kill Expression' evaluates to a
non-zero value.

Kill Settings Parameters


Kill Expression
The per-particle NEL expression which, if nonzero, will cause the current particle to be killed.

Inputs
body-input
All bodies that match the Particle signature are admitted through this input.

Outputs
body-output

All bodies encountered in body-input are passed down through this output, regardless if they were
admitted or not.

Particle-Splash-Emit
Overview
Emits and simulates secondary splash particles from a previously completed Particle-Liquid fluid
simulation. Various Field-Channels on the pre-solved fluid body are screened for a set of emission
criteria which, if fulfilled, will cause splash emission to occur.

What Are Splash Particles?


Splash particles are dynamic, potentially ballistic particles which can feel forces and interact just like
Particle-Liquid particles do, or just slide along the surface of the pre-solved fluid body, much like
foam. Splash particles live in their own dynamic body, but use both the pre-solved fluid body to
determine where splash emission should occur.

Why You May Care About This Op


Say you have already solved the fluid simulation for a Particle-Liquid body, and cached it out to a
series of EMP files. This Op allows you to emit and simulate "splash particles" from the surface of the
pre-solved Particle-Liquid, using a variety of emission criteria. The splash particles can then be used as
to add more detail to your simulation, and since they solve much faster than a full fluid sim, you can
have a lot more of them.

Notes
Optionally, a mask-field input can be used to limit the region where splash emission is considered.
Splash emission will be considered in all regions where the mask is nonzero. If no mask-field Field
input is connected, then splash emission will be considered for the entire spatial region occupied by the
pre-solved fluid body, subject to the emission critera (see parameters below).

Interval Parameters
Duration
THIS PARAMETER HAS BECOME OBSOLETE: Please instead put the equivalent NEL
expression into the 'Enabled' parameter. For example, to limit emission to occur between frames
1-10, you would write the following NEL expression: frame>=1 && frame THIS PARAMETER
EXISTS ONLY FOR BACKWARD COMPATIBILITY:
When to actually perform the emission:
Continuous: Emits regardless of the current frame.
Interval: Emits only if the current frame falls inside the frame range given by the 'Interval Start
Frame' and 'Interval End Frame' parameters.

Interval Start Frame


THIS PARAMETER HAS BECOME OBSOLETE (see above). If 'Duration' is set to Interval,
defines the first frame of emission.
Interval End Frame
THIS PARAMETER HAS BECOME OBSOLETE (see above). If 'Duration' is set to Interval,
defines the last frame of emission.

Emission Criteria Parameters


Min Required Speed
The minimum source body's fluid speed required for splash emission to occur.
Min Required Churn
The minimum vorticity (perpendicular to the source body's fluid surface) required for splash
emission to occur.
Min Required Curvature
The minumum source body fluid curvature required for splash emission to occur. Higher values
mean more curvature.
Min Allowed Depth
The minumum source body fluid depth allowed for splash emission
Max Allowed Depth
The maximum source body fluid depth allowed for splash emission
Min Particle Count
The minimum number of source fluid particles in the vicinity required for splash emission to
occur.

Emission Parameters
Emission Rate
The number of splash particles / sec to emit
Flatness
How close to the surface of the source fluid the splash particles are emitted from. A value of 1
means emitting directly onto the surface ("flat" emission), whereas a value of 0 will emit
anywhere in the grid cell closest to the surface.
Foam Depth Offset
When splash particles lie on the surface of the source fluid, they can be considered to be foam.
This parameter controls the offset along the fluid surface normal where these foam particles will
flow.
Emission Velocity Scale
Scales the inherited velocity of the emitted splash particles
Emission Velocity Scale Jitter
Adds the jittered amount to the Emission Velocity Scale.
Emission Velocity Latitude Jitter
Jitters the latitudal components of inherited velocity of the emitted splash particles.
Emission Velocity Longitude Jitter
Jitters the longitual components of inherited velocity of the emitted splash particles.

Dynamics Parameters
Ballistic

Make the splash particles fully dynamic and ballistic, allowing them to respond to forces and
collisions unless they land on the fluid surface. If this flag is turned off, the splash particles will
behave like foam particles and constrained to the surface of the fluid.

Inputs
body-input
All bodies that match the Particle signature enter through this input, and receive splash particle
emission.
fluid-body-input
The pre-solved Particle-Liquid fluid body that is used to drive the splash emission is admitted
through the "fluid-body-input".
distance-field
Optionally used to override the Field/fluid-distance channel otherwised used from the pre-solved
Particle-Liquid fluid body to determine where the fluid surface is.
depth-field
Optionally used to specify the depth field used by the "Min Allowed Depth" and "Max Allowed
Depth" parameters.
mask-field
Used to limit the region of space where splash emission is considered

Outputs
body-output
All bodies encountered in body-input are passed down through this output, regardless if they were
admitted or not.

Particle-Transport
Overview

Transport the Particle-Channel indicated by the 'Position Channel' parameter along an arbitrary
direction (vector) field.

Why You May Care About This Op


Well, you probably don't care, if all you want to do is perform particle-based transport (advection),
along the body's Field/velocity channel (or Particle/velocity channel), since this is done automatically
at the start of each time-step, before the graph evolves any bodies.
However, there are times when the automatic transport is not enough (or not what you want). This Op
is designed to let you explicitly set up your own particle transport stage, or add another one (or
several) at some user- chosen point(s) during the time-step.

Transport Settings Parameters


Position Channel
The name of the Particle-Channel you intend to transport. This is normally the Particle/position
channel, if you actually want to transport particle positions. (However, any vector-valued ParticleChannel is allowed, which means you could use this Op to alter per-particle RGB color or similar
by phrasing the color update problem in terms of physical transport). The channel must already be
present in the Particle-Shape of course.
Direction Channel
Defines the vector-field through which the particles will travel. (The default value being the
body's own velocity-field). However, if a FieldOp graph is connected to the direction-field input,
the vector-field defined by that graph overrides the field in this Field-Channel.
Normalize
Normalize the vectors found in the direction field (or 'Direction Channel') before transporting the
particles through it.

Inputs
body-input
All bodies matching the Particle signature will be admitted through this input.
direction-field
Connecting a FieldOp graph to this input will override the direction- field specified as a FieldChannel in the 'Direction Channel' parameter.
displacement-field
The distance along the direction field which the particles are transported (the "displacement") is
scaled by dt (the length of the current time-step, in seconds) as long as no displacement-field is
connected.

Outputs
body-output
Admitted or not, all bodies encountered in body-input will be passed down through the bodyoutput.

Particle-Wet-Emit
Overview
Emits and tracks secondary wet particles on collision surfaces touched or splashed on by a previously
completed Particle-Liquid fluid simulation.

What Are Wet Particles?


Wet particles are emitted on collision surfaces that interact with the pre-solved fluid body's particles.
They can feel a built-in gravity force and thus slip down the collision surface realistically. Wet
particles live in their own kinematic body, but use both the pre-solved fluid body and one or more
interacting volume bodies (which define the collision surfaces) to determine where wet emission
should occur, and where to slide.

Why You May Care About This Op


Say you have already solved the fluid simulation for a Particle-Liquid body, and cached it out to a
series of EMP files. This Op allows you to emit and track "wet particles" anywhere the pre-solved
Particle-Liquid particles touches or splashes onto any surrounding geometry, even if the surrounding
geometry is changed from where it was located in the original Particle-Liquid simulation.
Furthermore, this Op allows you to specify a gravity vector and 'slip' amount (which can be spatially
broken up and modulated by an optional Field input) that allows your particles to realistically slide
down the surfaces of the interacting geometry.

Notes
This Op functions both as particle emitter (it emits wet particles) and a kind of dynamics Op since it
adds gravity/slip to the wet-particles as well as handles the interaction with the collision surfaces the
particles live on.
The collision surfaces the wet particles live on are currently established using one or more Interact
BodyOps, just like any other simulation. This in turn means that the collision surfaces (if they originate
as a Mesh body) must first be converted to Volume bodies before being fed to Interact, since Naiad
fluids can only collide against geometry described by a distance-field. The Interact(s) must neccesarily
be inserted upstream of the Particle-Wet-Emit in the graph, so that, at the time it evolves its admitted
wet-bodies, it already knows where the collision surfaces are.

Future Work & Improvement


We'd like to add the ability to have wet particles actually drip off the surfaces they track, not just slide
down them. Furthermore, if the surface moves at a high velocity, it would be nice to allow them to "fly
off" - a kind of splash effect.

Interval Parameters
Duration
THIS PARAMETER HAS BECOME OBSOLETE: Please instead put the equivalent NEL
expression into the 'Enabled' parameter. For example, to limit emission to occur between frames
1-10, you would write the following NEL expression: frame>=1 && frame THIS PARAMETER
EXISTS ONLY FOR BACKWARD COMPATIBILITY:
When to actually perform the emission:
Continuous: Emits regardless of the current frame.
Interval: Emits only if the current frame falls inside the frame range given by the 'Interval Start
Frame' and 'Interval End Frame' parameters.
Interval Start Frame
THIS PARAMETER HAS BECOME OBSOLETE (see above). If 'Duration' is set to Interval,
defines the first frame of emission.
Interval End Frame
THIS PARAMETER HAS BECOME OBSOLETE (see above). If 'Duration' is set to Interval,
defines the last frame of emission.

Settings Parameters
Particle Skip
Every particle from the pre-solved fluid body is considered as a source of wet particle emission (if
it gets too close to a collision surface). This may be far more than you really need, so this
parameter allows you to specify how many particles to skip between emission checks.
Collision Distance
The worldspace minimum distance between the pre-solved fluid body's particles and the collision
surface which causes wet particles to be emitted.
Radius
Wet particles are emitted randomly in a disc projected onto the collision surface. This parameter
specifies the worldspace radius of this 'emission disk'.

Slip Settings Parameters


Gravity
The gravity vector used to make the wet particles slide along the collision surface.
Slip
How fast the wet particles slide along the collision surface (essentially a scale on the gravity
vector). This parameter is overriden by connecting the 'mask-field' input, where the mask-field is
sampled per-particle to calculate the slip amount.

Inputs
body-input
The wet bodies (receiving the wet particle emission) are fed through the body-input, and are
required to match the Particle body signature in order to be admitted and evolved by this Op.
fluid-body-input

The pre-solved Particle-Liquid body is fed through the fluid-body-input and will be terminated
when this Op finishes.
mask-field
Used to override the 'Slip' parameter to spatially modulate and break- up the slip constant.

Outputs
body-output
Admitted or not, all bodies encountered in body-input will be passed down through the bodyoutput.

17- Body Ops User


Particle-Import
No description available.

Import Settings Parameters


Particle Filename
No description available.
Body Name
No description available.

Motion Type Parameters


Motion Type
No description available.

Tile Layout Parameters


Cell Scale
No description available.
Tile Size
No description available.

Outputs
body-output
No description available.

18- Body Ops Point


Point-Channel
Overview
Creates a new Point-Channel on all admitted bodies, and initializes it to the value given by
the 'Initial Value' parameter.
Also specifies a value action which determines what happens to the Point-Channel at the
time each body is evolved by this BodyOp.
If the admitted body doesn't have a Point-Shape, this Op will create and add it to the body
before adding the Point-Channel.

Channel Settings Parameters


Channel
The name of the Point-Channel to create/maintain
Channel Type
The Point-Channel value type. There are two options:
Float: Make this a scalar channel (a single floating-point value per cell).
Vector: Make this a vector channel (3 floating-point values per cell).
Initial Value
The initial constant value of the Point-Channel. If the channel is scalar-valued, only the Xcomponent of this vector is used.

Value Action Parameters


Run Value Action
An expression parameter which, if it evaluates to nonzero, triggers the value action to run at the
time this body is evolved by this Op. The value action applies the Source Value to the values of
the channel. The Source Value is either the value of the 'Source Value' parameter (see below), or
the contents of the value-field input, if connected. The way in which the Source Value is applied
depends on the 'Value Action' parameter (see below).
Value Action
Defines the way the Source Value is used to update the values of the channel. This action will not
run unless the 'Run Value Action' evaluates to non-zero (see above). There are five options to
choose from:
Set: Set channel to the source value.
Scale: Scale channel by the source value.

Accumulate: Add source value to the channel.


Emit: Add source value multiplied by dt (the length of the time-step) to the channel.
Source Value
The uniform constant source value of the value action. NOTE that this parameter is ignored if a
FieldOp graph is connected to the value-field input. In that case, the source value varies per point,
and is the value of the FieldOp graph sampled at each point position. If the channel is scalarvalued, only the X-component of this vector is used.

Inputs
body-input
All bodies are admitted through this input
value-field
The FieldOp graph optionally connected to this input defines the per-point value used by the
value-action step (see the 'Value Action' parameter).
mask-field
The FieldOp graph optionally connected to this input defines a mask field which works as a global
scale on the source value used by the value-action step (see the 'Value Action' parameter).

Outputs
body-output
All bodies encountered in body-input are passed down through this output, regardless if they were
admitted or not.

Point-Nel-Channel
Updates the values in the given Point-Channel on each admitted body. The new values are set to the
value of the per-point NEL expression provided in the "Channel Expression" parameter.

Channel Settings Parameters


Channel
The channel to create/set
Channel Type
The type of the channel.
Channel Expression
The per-point NEL expression used to set the channel values. If the channel type scalar valued,
only the X component of this parameter is used.

Inputs
body-input

All bodies that are admitted through this input.

Outputs
body-output
All bodies encountered in body-input are passed down through this output, regardless if they were
admitted or not.

19- Body Ops Rigid


Rigid-Mesh-Assign
Overview
Assigns a mesh to all admitted rigid bodies.

Stepping Parameters
Enabled
No description available.

Inputs
body-input
The Rigid Bodies which may be admitted
mesh-input
The Mesh body which defines the Rigid Body's mes

Outputs
body-output
The resulting bodies are passed down through this output

20- Body Scope


Camera-Scope
Overview
The Camera-Scope represents the camera in the 3D viewport.

Transform Parameters
Translate
Body-to-worldspace translation
Rotate
Body-to-worldspace rotation
Scale
Body-to-worldspace scale
Center
No description available.

View Frustum Parameters


Near Clip
No description available.
Far Clip
No description available.
Aspect Ratio
No description available.
Angle Of View
No description available.
Interaction Settings Parameters

Inputs
scope-input
No description available.

Ghost-Scope
Overview
...
...

General Scope Information


Scopes are Body Operators (BOPs) because they operate on bodies (they draw them in the 3D
viewport). Scopes are implemented as "Dummy BOPs" which means they are ignored by Naiad during
a solve and will never affect your simulations. It is thus safe to leave your scopes in your .ni files, even
for command-line solves. Scopes are only ever used by Naiad Studio.
Bodies are fed to scopes via feeds that you connect to plugs on BOPs in the Naiad Graph, just as you
would connect "regular" feeds between BOP plugs. Unlike "regular" feeds, however, the scope feeds
may connect to both input and output plugs.
If the current frame has live cached data (indicated by the green or gray band in the timeline) you will
immidiately see the cached bodies for that frame flowing to your scope. If the current frame falls
outside the live cache interval, Naiad Studio will attempt to load bodies from the EMP specified by the
plug's BOP's "EMP Cache" parameter, if such a parameter exists. This allows you to seamlessly
"scrub" through the results of your solve regardless if it is a live solve running in Naiad Studio or the
results of a command-line simulation that ran (or is currently running) on the farm or another machine.

Bodies Parameters
Show Bodies
This parameter is used to specify a white-space separated list of body-names which will be drawn
by this scope. The default argument of * is a wildcard representing all bodies fed to the scope. If
the current frame has access to the solve cache, you can right-click on this parameter to get a
context-menu of available body-names.

Data Parameters
Ghost Field Channel
The name of the distance channel to extract the iso-surface from

Quality Parameters
Slice Count
Number of slices used to sample the 3D volume. A higher number of slices produces a more
accurate image, at the price of being slower to draw
Supersampling

Number of samples per field-cell in each dimension. It is uncommon to use a value other than
one.

Material Parameters
Reflective Color
No description available.
Reflective Alpha
No description available.

Lighting Parameters
Light Direction
No description available.
Light Color
No description available.
Light Alpha
No description available.
Light Buffer Size
No description available.

Transform Parameters
Translate
Clip-box translation
Rotate
Clip-box rotation
Scale
Clip-box scale

Guides Parameters
Display Cell Shadow
Controls whether or not a grid is drawn under each body, where each grid cell has the size defined
by the "Cell Size" parameter (see below).
Shadow Cell Size
Controls the size of each shadow cell: Body = use the body's own cell-size, Master = Use the
Master Cell Size.

Inputs
scope-input
Bodies are fed through this input. Only bodies matching the "Field" signature are fed to the scope
(e.g. bodies that have a Field-Shape). Unlike "regular" inputs, scope inputs may connect to both
inputs and output plugs in the graph.

Iso-Scope
Overview
The Iso-Scope draws a 3D iso-surface in Naiad Studio's 3D viewport.
The iso-surface drawn by this scope comes from a signed distance channel on the Field-Shape of each
admitted body. A body is admitted if it has a Field-Shape with the appropriate distance channel. The
body must also be listed in the "Show Bodies" parameter (see below).

Iso-Surface Extraction
The Iso-Scope extracts, lights and renders the iso-surface directly on the GPU.
BETA VERSION NOTE: The Iso-Scope, as currently implemented, requires a graphics card that
supports at least Pixel Shader 2.0.
The iso-surface is rendered volumetrically in slices, similarly to the "CAT-scans" often found in
medical imaging. More slices makes for a higher-quality iso-surface.

General Scope Information


Scopes are Body Operators (BOPs) because they operate on bodies (they draw them in the 3D
viewport). Scopes are implemented as "Dummy BOPs" which means they are ignored by Naiad during
a solve and will never affect your simulations. It is thus safe to leave your scopes in your .ni files, even
for command-line solves. Scopes are only ever used by Naiad Studio.
Bodies are fed to scopes via feeds that you connect to plugs on BOPs in the Naiad Graph, just as you
would connect "regular" feeds between BOP plugs. Unlike "regular" feeds, however, the scope feeds
may connect to both input and output plugs.
If the current frame has live cached data (indicated by the green or gray band in the timeline) you will
immidiately see the cached bodies for that frame flowing to your scope. If the current frame falls
outside the live cache interval, Naiad Studio will attempt to load bodies from the EMP specified by the
plug's BOP's "EMP Cache" parameter, if such a parameter exists. This allows you to seamlessly
"scrub" through the results of your solve regardless if it is a live solve running in Naiad Studio or the
results of a command-line simulation that ran (or is currently running) on the farm or another machine.

Bodies Parameters
Show Bodies
This parameter is used to specify a white-space separated list of body-names which will be drawn
by this scope. The default argument of * is a wildcard representing all bodies fed to the scope. If
the current frame has access to the solve cache, you can right-click on this parameter to get a
context-menu of available body-names.

Iso-surface Parameters
Iso Field Channel
The name of the distance channel to extract the iso-surface from
Iso Value
The distance value at which the iso-surface is extracted
Iso Lower-Band
How many cells (in the field) to render "inside" the surface
Iso Upper-Band
How many cells (in the field) to render "outside" the surface

Quality Parameters
Slice Count
Number of slices used to sample the 3D volume. A higher number of slices produces a more
accurate image, at the price of being slower to draw
Supersampling
Number of samples per field-cell in each dimension. It is uncommon to use a value other than
one.

Material Parameters
Front Ambient
Front material ambient color
Front Diffuse
Front material diffuse color
Front Specular
Front material specular color
Front Shininess
Front material specular exponent
Back Ambient
Back material ambient color
Back Diffuse
Back material diffuse color
Back Specular
Back material specular color
Back Shininess
Back material specular exponent

Lighting Parameters
Light Position
Light source position in eye-space
Light Ambient
Light source ambient color
Light Diffuse
Light source diffuse color
Light Specular

Light source specular color

Transform Parameters
Translate
Clip-box translation
Rotate
Clip-box rotation
Scale
Clip-box scale

Guides Parameters
Display Cell Shadow
Controls whether or not a grid is drawn under each body, where each grid cell has the size defined
by the "Cell Size" parameter (see below).
Shadow Cell Size
Controls the size of each shadow cell: Body = use the body's own cell-size, Master = Use the
Master Cell Size.

Inputs
scope-input
Bodies are fed through this input. Only bodies matching the "Field" signature are fed to the scope
(e.g. bodies that have a Field-Shape). Unlike "regular" inputs, scope inputs may connect to both
inputs and output plugs in the graph.

Mesh-Scope
Overview
The Mesh-Scope draws triangle-meshes in Naiad Studio's 3D viewport.
The meshes drawn by this scope come from the Triangle-Shape and Point-Shape of each admitted
body. A body is admitted if it matches the "Mesh" signature, which requires the existence of both a
Triangle-Shape and a Point- Shape. The body must also be listed in the "Show Bodies" parameter (see
below).

General Scope Information


Scopes are Body Operators (BOPs) because they operate on bodies (they draw them in the 3D
viewport). Scopes are implemented as "Dummy BOPs" which means they are ignored by Naiad during
a solve and will never affect your simulations. It is thus safe to leave your scopes in your .ni files, even
for command-line solves. Scopes are only ever used by Naiad Studio.

Bodies are fed to scopes via feeds that you connect to plugs on BOPs just as you would with "regular"
feeds in the Naiad Graph.
If the current frame has live cached data (indicated by the green or gray band in the timeline) you will
immidiately see the cached bodies for that frame flowing to your scope. If the current frame falls
outside the live cache interval, Naiad Studio will attempt to load bodies from the EMP specified by the
plug's BOP's "EMP Cache" parameter, if such a parameter exists. This allows you to seamlessly
"scrub" through the results of your solve regardless if it is a live solve running in Naiad Studio or the
results of a command-line simulation that ran (or is currently running) on the farm or another machine.

Bodies Parameters
Show Bodies
This parameter is used to specify a white-space separated list of body-names which will be drawn
by this scope. The default argument of * is a wildcard representing all bodies fed to the scope. If
the current frame has access to the solve cache, you can right-click on this parameter to get a
context-menu of available body-names.

Style Parameters
Display Mode
This parameter selects how the mesh is drawn. You have five options: Wireframe, Flat Shaded,
Smooth Shaded, Flat Shaded + Wireframe and Smooth Shaded + Wireframe. The Wireframe
option draws the mesh as a wireframe. The Shaded options draws the mesh as solid, shaded
triangles. The Shaded + Wireframe option draws the mesh as solid, shaded triangles, with a
wireframe outline on top.

Shading Parameters
Front Ambient
No description available.
Front Diffuse
No description available.
Front Specular
No description available.
Front Shininess
No description available.
Back Ambient
No description available.
Back Diffuse
No description available.
Back Specular
No description available.
Back Shininess
No description available.
Light Ambient
No description available.

Light Diffuse
No description available.
Light Specular
No description available.
Line Color
No description available.
Line Width
No description available.

Velocity Parameters
Velocity
Draw per-vertex velocity vectors
Velocity Display Scale
Length scale applied on the drawn velocity vectors

Normal Parameters
Vertex Normals
Draw per-vertex normals
Normal Display Scale
Length scale applied on the drawn normal vectors

Guides Parameters
Display Cell Shadow
Controls whether or not a grid is drawn under each body, where each grid cell has the size defined
by the "Cell Size" parameter (see below).
Shadow Cell Size
Controls the size of each shadow cell: Body = use the body's own cell-size, Master = Use the
Master Cell Size.

Inputs
scope-input
Bodies are fed through this input. Only bodies matching the "Mesh" signature are fed to the scope.
Unlike "regular" inputs, scope inputs may connect to both inputs and output plugs in the graph.

Particle-Scope
Overview
The Particle-Scope draws particles in Naiad Studio's 3D viewport.
The particles drawn by this scope come from the Particle-Shape of each admitted body. A body is
admitted if it has a Particle-Shape, and is listed in the "Show Bodies" parameter (see below).

Particle Shaders
The particles may be drawn using a choice of two shaders: "The Big Blue" and "Channel Sampler".
"The Big Blue " Shader
The Big Blue shader renders all particles as blue points, mapping velocity to intensity, e.g., the faster
the particle is moving, the brighter blue its color gets. The particles are drawn as white when their
speed is equal to or greater than the "Whitewater Speed" parameter.
" Channel Color " Shader
The Channel Color shader renders all particles as points, where the color is taken from a particular
particle channel. Vector-valued channels do a straight component-wise mapping from XYZ to RGB,
whereas scalar-valued channels are colored with the particle is drawn in red and the brightness mapped
to the magnitude of the scalar value.
" Gradient False Color " Shader
If gradient lighting is turned on, the Gradient False Color shader renders all particles as points,
mapping the gradient vector to the particle's RGB.

General Scope Information


Scopes are Body Ops because they operate on bodies (they draw them in the 3D viewport). Scopes are
implemented as "Dummy BodyOps" which means they are ignored by Naiad during a solve and will
never affect your simulations. It is thus safe to leave your scopes in your .ni files, evenfor commandline solves. Scopes are only ever used by Naiad Studio.
Bodies are fed to scopes via feeds that you connect to plugs on BOPs just as you would with "regular"
feeds in the Naiad Graph.
If the current frame has live cached data (indicated by the green or gray band in the timeline) you will
immidiately see the cached bodies for that frame flowing to your scope. If the current frame falls
outside the live cache interval, Naiad Studio will attempt to load bodies from the EMP specified by the
plug's BOP's "EMP Cache" parameter, if such a parameter exists. This allows you to seamlessly
"scrub" through the results of your solve regardless if it is a live solve running in Naiad Studio or the
results of a command-line simulation that ran (or is currently running) on the farm or another machine.

Bodies Parameters
Show Bodies
This parameter is used to specify a white-space separated list of body-names which will be drawn
by this scope. The default argument of * is a wildcard representing all bodies fed to the scope. If
the current frame has access to the solve cache, you can right-click on this parameter to get a
context-menu of available body-names.

Style Parameters
Pixel Radius
The size (in pixels) of each particle
Shader
The particle-shader used to draw the particles. Can be either "The Big Blue" or "Channel
Sampler".

Gradient Lighting Parameters


Gradient Lighting
Gradient-based interactive lightin
Normalized Gradient
Light using the normalized gradient or no
Ambient Brightness
The amount of ambient light availabl
Gradient Channel
Scalar Field-channel to compute gradient from, if Gradient Lighting is enabled (see above).
Light Direction
The 'interactive light' direction (will be normalized by shader)

Blocks Parameters
Blocks Visibility
Controls the visibility of the particle blocks
Block Range Start
The start of the visible fine tile range
Block Range End
The end of the visible fine tile range

The Big Blue Parameters


Whitewater Speed
The speed a particle must reach (or exceed) in order to be rendered as whitewater (e.g. white). The
closer a particle gets to this speed the whiter it becomes.

Color Channel Parameters


Color Channel
The name of the particle-channel to map onto the particle's RGB. For scalar-valued channels, the

value is mapped to the red color component only.


Channel Type
How to interpret the incoming channel data: Scalar (single floating point value mapped to the Red
component) or Vector (three floating point values, mapped to RGB).
Min Visible Magnitude
The smallest color channel magnitude visible in the 3D viewpor
Max Visible Magnitude
The largest color channel magnitude visible in the 3D viewpor
Normalized Range
If On, will normalize the color across the range given by Min-Max Visible Magnitude.

Guides Parameters
Display Cell Shadow
Controls whether or not a grid is drawn under each body, where each grid cell has the size defined
by the "Cell Size" parameter (see below).
Shadow Cell Size
Controls the size of each shadow cell: Body = use the body's own cell-size, Master = Use the
Master Cell Size.

Inputs
scope-input
Bodies are fed through this input. Only bodies matching the "Particle" signature are fed to the
scope (e.g. bodies that have a Particle-Shape). Unlike "regular" inputs, scope inputs may connect
to both inputs and output plugs in the graph.

Streamline-Scope
Overview
The Streamline-Scope draws streamlines through a body's vector-valued field channel in Naiad
Studio's 3D viewport.
A body is admitted if it has a Field-Shape with the appropriate vector-valued field channel. The body
must also be listed in the "Show Bodies" parameter (see below).

General Scope Information


Scopes are Body Operators (BOPs) because they operate on bodies (they draw them in the 3D
viewport). Scopes are implemented as "Dummy BOPs" which means they are ignored by Naiad during
a solve and will never affect your simulations. It is thus safe to leave your scopes in your .ni files, even
for command-line solves. Scopes are only ever used by Naiad Studio.
Bodies are fed to scopes via feeds that you connect to plugs on BOPs in the Naiad Graph, just as you
would connect "regular" feeds between BOP plugs. Unlike "regular" feeds, however, the scope feeds

may connect to both input and output plugs.


If the current frame has live cached data (indicated by the green or gray band in the timeline) you will
immidiately see the cached bodies for that frame flowing to your scope. If the current frame falls
outside the live cache interval, Naiad Studio will attempt to load bodies from the EMP specified by the
plug's BOP's "EMP Cache" parameter, if such a parameter exists. This allows you to seamlessly
"scrub" through the results of your solve regardless if it is a live solve running in Naiad Studio or the
results of a command-line simulation that ran (or is currently running) on the farm or another machine.

Bodies Parameters
Show Bodies
This parameter is used to specify a white-space separated list of body-names which will be drawn
by this scope. The default argument of * is a wildcard representing all bodies fed to the scope. If
the current frame has access to the solve cache, you can right-click on this parameter to get a
context-menu of available body-names.

Transform Parameters
Translate
No description available.
Rotate
No description available.
Scale
No description available.

Channel Parameters
Channel
No description available.

Streamline Settings Parameters


Streamline Spacing
The uniform spacing between each streamline, expressed in world-space units.
Streamline Time
How long (in seconds) to run the streamline
Samples Per Streamline
The temporal sampling frequency of each streamline

Style Parameters
Head Color
The color of the streamlines at the head (origin)
Tail Color
The color of the streamlines at the tail

Inputs
scope-input

Bodies are fed through this input. Only bodies matching the "Field" signature are fed to the scope
(e.g. bodies that have a Field-Shape). Unlike "regular" inputs, scope inputs may connect to both
inputs and output plugs in the graph.

Tile-Scope
Overview
The Tile-Scope draws tiles in Naiad Studio's 3D viewport.
The tiles drawn by this scope come from the tile-layout of each admitted body. Each tile is drawn as a
wireframe box. All bodies have a tile-layout, so if it is listed in the "Show Bodies" parameter, the body
will be admitted (see below).

Scoping the Tile-Layout


Looking at the tile-layout is the closest thing in Naiad to looking at the fluid-domain box in other
commercial packages. A tile in Naiad represents an NxNxN grid of cells in which field-channels are
stored and computed, where N is the "Tile Size" on a body. The Naiad solver performs all Eulerian
(e.g. grid-based solves) on the tiles of the tile-layout. The tile-layout is automatically expanded by the
presence of fluids or whatever the solver is tracking, so simulations involving bodies with very many
tiles will solve slower, and consume more memory, than simulations of bodies with few tiles. This is
roughly equivalent to the difference between a very high-resolution fluid domain and a low-resolution
fluid-domain in other commercial packages. Being able to see the tiles of the bodies in your simulation
is a good way of gauging, for instance, why a solve is taking so long or using so much memory. It is
also useful to see "where" all the tiles are in space.

General Scope Information


Scopes are BodyOps because they operate on bodies (they draw them in the 3D viewport). Scopes are
implemented as "Dummy Ops" which means they are ignored by Naiad during a solve and will never
affect your simulations. It is thus safe to leave your scopes in your .ni files, even for command-line
solves. Scopes are only ever used by Naiad Studio.
Bodies are fed to scopes via feeds that you connect to plugs on Ops just as you would with "regular"
feeds in the Naiad Graph.
If the current frame has live cached data (indicated by the green or gray band in the timeline) you will
immidiately see the cached bodies for that frame flowing to your scope. If the current frame falls
outside the live cache interval, Naiad Studio will attempt to load bodies from the EMP specified by the
plug's Op's "EMP Cache" parameter, if such a parameter exists. This allows you to seamlessly "scrub"
through the results of your solve regardless if it is a live solve running in Naiad Studio or the results of
a command-line simulation that ran (or is currently running) on the farm or another machine.

Bodies Parameters
Show Bodies
This parameter is used to specify a white-space separated list of body-names which will be drawn
by this scope. The default argument of * is a wildcard representing all bodies fed to the scope. If
the current frame has access to the solve cache, you can right-click on this parameter to get a

context-menu of available body-names.

Style Parameters
Pixel Radius
The width (in pixels) of the wireframe outline of the tiles

Coarse Tiles Parameters


Coarse Tiles
Draw coarse tiles
Coarse Tile Color
The coarse tiles are drawn using this color

Fine Tiles Parameters


Fine Tiles Visibility
Controls the visibility of the fine tiles
Fine Tile Range Start
The start of the visible fine tile range
Fine Tile Range End
The end of the visible fine tile range
Fine Tile Color
The fine tiles are drawn using this color

Cells Parameters
Cells
Draw cells
Cell Color
The cells are drawn using this color
Cell Plane
The plane in which the cell grid is drawn

Inputs
scope-input
Bodies are fed through this input. Unlike "regular" inputs, scope inputs may connect to both
inputs and output plugs in the graph.

21- Field Ops Math


Field-Add
Overview
Evaluates to the sum of its two input fields, plus a constant term.
If either field is left unconnected, it takes on a default value of 0 0 0.
Scalar evaluations of this FieldOp causes only the X-component to be computed.

Add Settings Parameters


Constant Term
The constant term to add to the sum of field-a and field-b

Inputs
field-a
Left field of the add operation
field-b
Right field of the add operation

Outputs
fieldOp-output
Returns field-a + field+

Field-Dot
Overview
Evaluates to the dot product of its two input (vector) fields.
If either field is left unconnected, it takes on a default value of 1 1 1.

Inputs
field-a
Left vector field of the dot produc
field-b
Right vector field of the dot produc

Outputs
fieldOp-output
field-a dot field-

Field-Gradient
Overview
Converts the input scalar field to a gradient vector field. Typically used to create gradient fields from
distance-fields.

Inputs
scalar-input
The input scalar-valued field to calculate the gradient field from

Outputs
gradient-output
The resulting gradient vector field

Field-Max
Overview
Evaluates to the maximum of its two input fields.

Inputs
field-a
Left field of the mi
field-b
Right field of the mi

Outputs
fieldOp-output
max(field-a, field-b

Field-Min
Overview
Evaluates to the minumum of its two input fields.

Inputs
field-a
Left field of the mi
field-b
Right field of the mi

Outputs
fieldOp-output
min(field-a, field-b

Field-Multiply
Overview
Evaluates to the product of its two input fields.
If either field is left unconnected, it takes on a default value of 1 1 1.
Scalar evaluations of this FieldOp causes only the X-component to be computed.

Inputs
field-a
Left field of the multiplicatio
field-b
Right field of the multiplicatio

Outputs
fieldOp-output
The product of field-a * field-

Field-Nel
Overview
Evaluates the NEL expression.
If either field is left unconnected, it takes on a default value of 0 0 0.
Scalar evaluations of this FieldOp causes only the X-component to be computed.

Add Settings Parameters


Expression
The NEL expression to evaluat

Inputs
field-a
First of the two fields which may be referenced by the NEL expression

field-b
Second of the two fields which may be referenced by the NEL expression

Outputs
field-output
The result of the NEL expression evaluation

Field-Scale
Overview
Scales the input field by a constant value.

Scale Settings Parameters


Scaling
The amount to scale the input field by

Inputs
field-input
Input field to scale

Outputs
field-output
Scaled output field

22- Field Ops Processing


Field-Blur
Overview
Performs a gaussian blur on the input field.

Blur Settings Parameters


Blur Kernel Width
Defines the width of the Gaussian blur kernel in worldspace units
Blur Background Value
The value of the blurred field when sampled outside its limits

Inputs
field-input
Input field to be blurred

Outputs
field-output
The blurred output field

Field-Mask
Overview
Evaluates to an unsigned mask ranging from 0 to 1, given a distance field input.

Mask Settings Parameters


Mask Boundary Distance
Defines the distance value to map to the mask boundary
Mask Boundary Width
Defines the width of the mask boundary
Falloff Width
Defines how wide the mask falloff will be. Small values result in a sharper mask, whereas larger

values give a smoother mask boundary.


Mask Mapping
Determines how to map distance values to mask values, in relation to the "Mask Boundary
Distance". You have four choices:
1.
2.
3.
4.

"Interior" maps distances less than the boundary to 0.


"Exterior" maps distances greater than the boundary to 0.
"Boundary" maps only distances "Mask Boundary Width" units from the boundary to 0.
"Inverted Boundary" maps distances "Mask Boundary Width" units from the boundary to 1, and
all other distances to 0.

Inputs
distance-input
The input distance field

Outputs
mask-output
The resulting mask field

Field-Noise
Overview
Evaluates to a fractal noise function everywhere.

Noise Settings Parameters


Base Function
Determines if the base noise function used to evaluate each noise layer should be blocky or
smooth.
Signed Noise
Signed noise is ranges from -1 to 1, otherwise 0 to 1
Animated
Animates the base noise function over time
Animation Speed
How fast the animation moves (if animated)

Fractal Settings Parameters


Complexity
The number of layers (octaves) to sum for the final noise
Contrast
The contrast applied to each noise layer

Frequency
The frequency of each noise layer
Offset
The absolute noise-space offset to for all layers
Sub Frequency Scale
Scale the noise frequency of each successive layer by this amount
Sub Influence
Scale the noise amplitude of each successive layer by this amount
Sub Offset
Increment the noise-space offset by this vector, for each layer

Outputs
noise-output
Fractal noise field output

23- Field Ops Primitive


Field-Constant
Overview
Evaluates to a constant value.
Scalar evaluations of this FieldOp causes only the X-component to be computed.

Value Parameters
Constant
The constant value the field takes on everywhere

Outputs
constant-output
The output constant-valued field

Field-Distance-Sphere
Overview
Evaluates to the implicit distance field of a sphere primitive.

Sphere Parameters
Position
Worldspace center of the sphere
Radius
Worldspace radius of the sphere

Tile Layout Parameters


Cell Scale
Amount to scale the dimensions of the cells in the tile layout by. Note that this parameter does not
represent the actual worldspace dimensions of the cells, rather it uniformly scales them. To find
out the actual worldspace dimensions you have to multiply this parameter by the global parameter
"Master Cell Size".

Tile Size
The number of cells along each dimension of each tile in the volume

Outputs
distance-output
The resulting implicit sphere distance-fiel

Field-Noise
Overview
Evaluates to a fractal noise function everywhere.

Noise Settings Parameters


Base Function
Determines if the base noise function used to evaluate each noise layer should be blocky or
smooth.
Signed Noise
Signed noise is ranges from -1 to 1, otherwise 0 to 1
Animated
Animates the base noise function over time
Animation Speed
How fast the animation moves (if animated)

Fractal Settings Parameters


Complexity
The number of layers (octaves) to sum for the final noise
Contrast
The contrast applied to each noise layer
Frequency
The frequency of each noise layer
Offset
The absolute noise-space offset to for all layers
Sub Frequency Scale
Scale the noise frequency of each successive layer by this amount
Sub Influence
Scale the noise amplitude of each successive layer by this amount
Sub Offset
Increment the noise-space offset by this vector, for each layer

Outputs

noise-output
Fractal noise field output

24- Field Ops Distance


Field-Depth
Overview
Computes per-cell "depth" from the signed distance field passed in.
The "depth" of a distance field is defined (in Naiad) as the distance one must march along the
negative gradient of the distance field from the sample point to any exit point of the distance
field surface. The depth is only calculated near the surface or the interior of the distance field
-- in all other places it will be set to 0.

Settings Parameters
Depth Cutoff
The maximum depth computed; all depths deeper than this will be clamped to this value. (Note
that depths computed by this op are in world-space).
Supersampling
The number of depth samples taken to compute final depth

Inputs
field-input
Distance field input to calculate the depth o

Outputs
field-output
Resulting depth field

Field-Distance-Difference
Overview
Evaluates to the CSG difference of two distance fields A and B: A-B

Inputs
field-a
Left field of the mi
field-b
Right field of the mi

Outputs
fieldOp-output
min(field-a, field-b

Field-Distance-Intersection
Overview
Evaluates to the CSG intersection of two distance fields A and B.

Inputs
field-a
Left field of the mi
field-b
Right field of the mi

Outputs
fieldOp-output
min(field-a, field-b

Field-Distance-Sphere
Overview
Evaluates to the implicit distance field of a sphere primitive.

Sphere Parameters
Position
Worldspace center of the sphere
Radius
Worldspace radius of the sphere

Tile Layout Parameters


Cell Scale
Amount to scale the dimensions of the cells in the tile layout by. Note that this parameter does not
represent the actual worldspace dimensions of the cells, rather it uniformly scales them. To find
out the actual worldspace dimensions you have to multiply this parameter by the global parameter
"Master Cell Size".
Tile Size
The number of cells along each dimension of each tile in the volume

Outputs
distance-output
The resulting implicit sphere distance-fiel

Field-Distance-Union
Overview
Evaluates to the CSG union of two distance fields A and B.

Inputs
field-a
Left field of the mi
field-b
Right field of the mi

Outputs

fieldOp-output
min(field-a, field-b

Field-Mask
Overview
Evaluates to an unsigned mask ranging from 0 to 1, given a distance field input.

Mask Settings Parameters


Mask Boundary Distance
Defines the distance value to map to the mask boundary
Mask Boundary Width
Defines the width of the mask boundary
Falloff Width
Defines how wide the mask falloff will be. Small values result in a sharper mask, whereas larger
values give a smoother mask boundary.
Mask Mapping
Determines how to map distance values to mask values, in relation to the "Mask Boundary
Distance". You have four choices:
1.
2.
3.
4.

"Interior" maps distances less than the boundary to 0.


"Exterior" maps distances greater than the boundary to 0.
"Boundary" maps only distances "Mask Boundary Width" units from the boundary to 0.
"Inverted Boundary" maps distances "Mask Boundary Width" units from the boundary to 1, and
all other distances to 0.

Inputs
distance-input
The input distance field

Outputs
mask-output
The resulting mask field

Field-Redistance

Overview
Redistances the signed distance field passed in.

Why You May Care About This Op


Redistancing a distance-field is only necessary if the field in question has undergone a transformation
which does not preserve distance values, which is true of pretty much anything but a pure Field-Add
(e.g. shifting the surface inwards or outwards along the distance gradient).
In practice, however, most Field-Distance-XXX FieldOps will preserve distances locally around the
surface (or close enough) so if that's all you care about, you may not need to full redistance the field.
In cases where you do need accurate distances away from the surface, after having done something
complex to the field, you will need to use this FieldOp.

Redistance Settings Parameters


Redistance Interior
Redistances the signed distance in the interior of the interface
Redistance Exterior
Redistances the signed distance in the exterior of the interface

Inputs
field-input
Distance field input to redistanc

Outputs
field-output
Redistanced output fiel

25- Field Ops Channel


Field-Export
Overview
Exports the given Field-Channel from the admitted body into the FieldOp output.

Export Settings Parameters


Field Channel
The name of the Field-Channel to export from the body
Quality
When sampling the Field-Channel, this paramter specifies the order of accuracy in the sampling.

Inputs
body-input
A single body matching the Field signature is admitted here

Outputs
fieldOp-output
The exported field

Field-Particle-Splat
Overview
Converts the given Particle-Channel to a field, using the method specified by the value of the
"Splatting Method" parameter.

Splat Settings Parameters


Particle Channel
The name of the source Particle-Channel to convert to a field
Field Type
The type of field to output. Specifying a vector field requires that the source Particle-Channel is a
vector channel.

Field Background Value


The background (ambient) value of the field in regions where no particles exist.
Splatting Method
Compute the weighted average of all particle channel values bounded by each cell, else just
accumulate the particle channel values.
Extend Boundary
After the splatting, extend the values of any boundary cells into neighboring cells with no
particles. This can be useful when you don't want your field to fade to the background color at the
boundary of the particle region. One example of this would be splatting a particle color channel
into a field color channel. If 'Extend Boundary' was turned off, a halo would form around the
colored region since the adjacent cells would not have been updated by any particles and thus
store some constant background value.

Inputs
body-input
A single body matching the Particle signature is admitted here

Outputs
field-output
The converted field

26- Field Ops Nel


Field-Nel
Overview
Evaluates the NEL expression.
If either field is left unconnected, it takes on a default value of 0 0 0.
Scalar evaluations of this FieldOp causes only the X-component to be computed.

Add Settings Parameters


Expression
The NEL expression to evaluat

Inputs
field-a
First of the two fields which may be referenced by the NEL expression
field-b
Second of the two fields which may be referenced by the NEL expression

Outputs
field-output
The result of the NEL expression evaluation

27- Field Ops Particle


Field-Particle-Splat
Overview
Converts the given Particle-Channel to a field, using the method specified by the value of the
"Splatting Method" parameter.

Splat Settings Parameters


Particle Channel
The name of the source Particle-Channel to convert to a field
Field Type
The type of field to output. Specifying a vector field requires that the source Particle-Channel is a
vector channel.
Field Background Value
The background (ambient) value of the field in regions where no particles exist.
Splatting Method
Compute the weighted average of all particle channel values bounded by each cell, else just
accumulate the particle channel values.
Extend Boundary
After the splatting, extend the values of any boundary cells into neighboring cells with no
particles. This can be useful when you don't want your field to fade to the background color at the
boundary of the particle region. One example of this would be splatting a particle color channel
into a field color channel. If 'Extend Boundary' was turned off, a halo would form around the
colored region since the adjacent cells would not have been updated by any particles and thus
store some constant background value.

Inputs
body-input
A single body matching the Particle signature is admitted here

Outputs
field-output
The converted field

28- Field SCOPE


Field-Iso-Scope
No description available.

Iso-surface Parameters
Component
Which component field to displa
Iso Value
The distance value at which the iso-surface is extracted
Iso Lower-Band
How many cells (in the field) to render "inside" the surface
Iso Upper-Band
How many cells (in the field) to render "outside" the surface

Quality Parameters
Slice Count
Number of slices used to sample the 3D volume. A higher number of slices produces a more
accurate image, at the price of being slower to draw
Supersampling
Number of samples per field-cell in each dimension. It is uncommon to use a value other than
one.
Interactive Cell Scale
Used to compute the interactive cell-size used sampling the scoped field. If the field being scoped
has a tile-layout attached, this parameter scales the cell-size of that layout, otherwise the Master
Cell Size is scaled instead.

Material Parameters
Front Ambient
Front material ambient color
Front Diffuse
Front material diffuse color
Front Specular
Front material specular color
Front Shininess
Front material specular exponent
Back Ambient
Back material ambient color

Back Diffuse
Back material diffuse color
Back Specular
Back material specular color
Back Shininess
Back material specular exponent

Lighting Parameters
Light Position
Light source position in eye-space
Light Ambient
Light source ambient color
Light Diffuse
Light source diffuse color
Light Specular
Light source specular color

Transform Parameters
Translate
Clip-box translation
Rotate
Clip-box rotation
Scale
Clip-box scale

Guides Parameters
Display Cell Shadow
Controls whether or not a grid is drawn under each body, where each grid cell has the size defined
by the "Cell Size" parameter (see below).
Shadow Cell Size
Controls the size of each shadow cell: Body = use the body's own cell-size, Master = Use the
Master Cell Size.

Scope Data Output Parameters


Min Value
No description available.
Max Value
No description available.
Interactive Cell Size
No description available.

Inputs
scope-input

Field-Scalar-Scope
No description available.

Display Parameters
Component
Which component field to displa
Min Visible Value
The smallest value visible in the 3D viewpor
Max Visible Value
The largest value visible in the 3D viewpor
Normalized Range
If On, will normalize the color across the range given by Min-Max Visible Value.

Quality Parameters
Slice Count
Number of slices used to sample the 3D volume. A higher number of slices produces a more
accurate image, at the price of being slower to draw
Supersampling
Number of samples per field-cell in each dimension. It is uncommon to use a value other than
one.
Interactive Cell Scale
Used to compute the interactive cell-size used sampling the scoped field. If the field being scoped
has a tile-layout attached, this parameter scales the cell-size of that layout, otherwise the Master
Cell Size is scaled instead.

Transform Parameters
Translate
Clip-box translation
Rotate
Clip-box rotation
Scale
Clip-box scale

Guides Parameters
Display Cell Shadow
Controls whether or not a grid is drawn under each body, where each grid cell has the size defined
by the "Cell Size" parameter (see below).
Shadow Cell Size
Controls the size of each shadow cell: Body = use the body's own cell-size, Master = Use the
Master Cell Size.

Scope Data Output Parameters


Min Value
No description available.
Max Value
No description available.
Interactive Cell Size
No description available.

Inputs
scope-input
No description available.

Field-Streamline-Scope
No description available.

Streamline Settings Parameters


Streamline Spacing
The uniform spacing between each streamline, expressed in world-space units.
Streamline Time
How long (in seconds) to run the streamline
Samples Per Streamline
The temporal sampling frequency of each streamline

Quality Parameters
Interactive Cell Scale
Used to compute the interactive cell-size used sampling the scoped field. If the field being scoped
has a tile-layout attached, this parameter scales the cell-size of that layout, otherwise the Master
Cell Size is scaled instead.

Style Parameters
Head Color
The color of the streamlines at the head (origin)
Tail Color
The color of the streamlines at the tail

Transform Parameters
Translate

No description available.
Rotate
No description available.
Scale
No description available.

Guides Parameters
Display Cell Shadow
Controls whether or not a grid is drawn under each body, where each grid cell has the size defined
by the "Cell Size" parameter (see below).
Shadow Cell Size
Controls the size of each shadow cell: Body = use the body's own cell-size, Master = Use the
Master Cell Size.

Inputs
scope-input
No description available.

Field-Tile-Scope
No description available.

Style Parameters
Pixel Radius
The width (in pixels) of the wireframe outline of the tiles

Coarse Tiles Parameters


Coarse Tiles
Draw coarse tiles
Coarse Tile Color
The coarse tiles are drawn using this color

Fine Tiles Parameters


Fine Tiles Visibility
Controls the visibility of the fine tiles
Fine Tile Range Start
The start of the visible fine tile range
Fine Tile Range End
The end of the visible fine tile range
Fine Tile Color

The fine tiles are drawn using this color

Cells Parameters
Cells
Draw cells
Cell Color
The cells are drawn using this color
Cell Plane
The plane in which the cell grid is drawn

Inputs
scope-input
No description available.

Você também pode gostar