Simulation

//UP Simulation
UP Simulation 2017-10-11T16:09:14+00:00

Running a Simulation

UP has 2 modes for creating  simulations. The Preview mode renders a fast but rough approximation using Opengl. It does not create any LightWave geometry. The Bake mode produces a new LightWave fluid mesh at each new frame.  Bake mode tends to slow down as the simulation progresses as more and more geometry is created.

This parameter sets the amount of time the physics solver will go forward during each frame. The default setting is 1/30 of a second or 0.0333. Increasing this value will make the simulation appear faster and you may need increase Substeps and/or Iterations to remove collision detection errors.

Run starts the simulation

Step advances the simulation one frame a time

Pause stops the simulation

Reset brings the simulation back to frame 0 and resets the physics state to it’s initial startup state.

Simulation Parameters

The simulation Time step is divided into a number of sub-steps set by this parameter.  Each sub-step performs collision detection and computes Iterations number of solver passes that determine how the simulation particles behave.  Increasing sub-steps can produce a more accurate simulation by reducing the amount of collision failures but also has a performance cost and can make the simulation appear stiffer. You should strive to keep this parameter as low as possible.

Flex solves a particle behavior effect, like fluids, in an iterative fashion.  This parameter set the number of iterations the solver performs during each sub-step.  The number of iterations affects the overall stiffness of the effect and for performance reasons should be set as low as possible to achieve the desired effect.

The overall stiffness of the simulation is dependent on the number of Iterations, the Time step, and the number of Substeps.

This parameter sets the maximum interaction radius for particles. Particles that are closer than this value can effect one another in ways determined by other parameters in the simulation.  Using a smaller radius can add more detail to the simulation but comes with a performance hit and often requires more sub-steps to avoid collision artifacts.

Particle size can be time animated using it’s E button.

This parameter sets the distance that particles will try to maintain from the surface of Kinematic bodies and should be set above 0.0.  A good starting point is to set it to 1/2 your Particle size setting.

Collision distance can be time animated using the E button.

This parameter determines how strongly particles stick to the solid surfaces they hit.  Values above 0 will make fluids stick to and slide down the surfaces.  There is no upper limit to the values you can use.

Adhesion can be time animated using the E button

This parameter sets the coefficient of dynamic friction. Dynamic friction is the force that reduces the speed at which particles slide across Kinematic bodies.

Dynamic friction can be time animated using it’s E button.

Flex provides 2 mores for fine-tuning the convergence speed of the solver. You can use this option to improve performance and reduce Iterations.

Local Mode

This mode is the most robust but is slower and can require more iterations to appear stiff.  To improve performance in this mode you can set Relax factor  values above 1.0. But use with care since larger values can blow up the simulation.

Global Mode

This mode can be faster than the local mode, but may fail in difficult cases. In this mode the Relax factor should be set to values in the range of 0.25-0.5

This parameter fine-tunes the Relaxation mode.

In Local mode values over 1.0 can be used. In Global mode, values in the range of 0.25-0.5 should be used.

This parameter expands the particle radius during collision detection with other particle to help reduce the chance of missing collisions. Increasing this value can cause a performance hit so you should keep it as low as possible and only use it if you’re having collision detection errors. This parameter is added to the Particle size setting so you should use values that are a small percentage of  Particle size. For example, if your Particle size is .1 then you might use a Particle margin of .005 or smaller.

This parameter can be time animated using it’s E button

This parameter expands the particle radius during collision detection against Kinematic bodies to help reduce the chance of missing collisions. Increasing this value can cause a performance hit so you should keep it as low as possible and only use it if you’re having collision detection errors.  A good rule of thumb is to set this value to a small percentage of the Collision distance parameter.

Kinematic margin can be time animated using it’s E button

This parameter applies a viscous drag force that’s proportional and opposite to a particle’s velocity.  This acts like air-resistance that causes the particles to come to rest more quickly.

Damping can be time animated using it’s E button

This parameter causes particles to slow down and lose energy when they come into contact with each other. You can use it to make piles of particles.

Dissipation can be time animated using it’s E button.

This parameter sets the coefficient of static friction. Static friction is the force between two surfaces that prevents those surfaces from sliding or slipping across each other.

Static friction can be time animated using it’s E button.

This parameter sets coefficient of restitution(elasticity) used when colliding against Kinematic bodies. Particle collisions are always inelastic.

Restitution can be time animated using it’s E button.

This parameter sets the threshold for putting particles to sleep. Particles with a velocity less than this value will be become static.

Sleep threshold can be time animated using it’s E button.

This parameter will artificially decrease the mass of particles based on height from a fixed reference point, this makes stacks and piles converge faster.

Shock propagation can be time animated using it’s E button.

Fluid rest distance is the distance fluid particles are spaced at the rest density and must be in the range (0, radius]. For fluids this should generally be 50-70% of the radius setting.  For Rigid bodies this can be the same as the particle radius. This gui value represents a percentage that’s multiplied by the radius setting to compute the fluid rest distance in Flex. So normal values should be in the range of  0.5  to 0.7 for fluids and 1.0 for Rigids.