You are here: Simulation > Dynamics Overview > Dynamics Solver

Dynamics Solver

When any item in the scene is defined as either an Active Rigid Body, Passive Rigid Body or Soft Body, a dynamics solver item is added automatically to the scene in the Items list. Only a single instance of the solver item is ever necessary in a scene, as it controls all the global parameters of the simulation, such as time steps, gravity, and so on. If the dynamics solver item is ever accidentally deleted from the scene, you may add another from the menu bar, clicking Dynamics > Add Solver. With the item selected in the Items viewport, a series of attributes can be modified in the Properties panel.

Mesh Dynamics Panel

Option

Description

Enable

Enabled by default, you can disable this option to temporarily suspend the Dynamics simulation calculations.

Physics Rate (Hz)

Represents the rate at which the dynamic evaluations occur during a second of scene time (regardless of the FPS setting). At a FPS rate of 30, the default Physics Rate of 60 provides for 2 calculation steps per frame. Even though you only see the results of a simulation at each whole frame step, there can still be a lot of movement happening between frames, especially with fast moving objects. If objects appear to intersect or are moving through each other, increasing this value helps to eliminate these errors, however, as the rate increases, so does the number of calculations. Higher numbers offer more precise simulations at the expense of greater time to calculate.

NOTE:  To see the results of the Physics Rate, you need to do a full cached simulation, as both real-time preview modes always default to a physics rate of one update per frame.

Gravity X/Y/Z

Control the direction and magnitude of gravity. Gravity is a world force value that affects everything in the scene. The default value of -9.81 simulates the downward pull of gravity on Earth at a 1:1 scale (meters per second).

Visualize

Locators

When enabled, draws the center and centers of mass of dynamic objects.

Constraints

When enabled, draws constraints.

Debug Drawing

Draws the internal representation of what the dynamics simulator actually sees. It can be overwhelming to see in complex scenes especially, but can be useful for troubleshooting simulations that don't act as expected.

Locator Scale

Scales the locator drawing.

Advanced

Body Update Frequency

Determines how often dynamics collects channel and deformations data to update its internal representations for each dynamic item in the scene.

Sim Start: Internal representation is updated only once at the simulation start.

Every Frame: Internal representation is updated at each whole frame value.

Every Tick: Internal representation is updated at each Step, producing sub-frame accurate movements, but creating a large amount of additional overhead which may greatly slow down the simulation of the scene.

Global Density

Density is the measure of the amount of matter in any given volume. In Modo, geometric objects are technically hollow, and therefore have no density, but if objects were simulated this way, they would just blow away like paper shells. Providing a density value for dynamic objects increases the realism of a simulation. Like metal, as opposed to wood, different materials have different densities, affecting their weight, and therefore the way they move when simulated. The Global Density option determines the density of dynamic objects globally in the scene. You can adjust this value, affecting all dynamic objects scene-wide. You can also override the Global Density individually per item by setting the Mass Source option in the item's dynamic properties to one of the Local options and defining a value individually.

Scene Scale

Dynamic evaluations make certain assumptions in their calculations, assuming items to be in roughly real world scale, between the size of a grape up to the size of a van. Simulating items within this range produces the most realistic results, with the ideal size being around 1m in size. Items scaled outside of this range run into issues with accuracy. Instead of scaling the target scene, you can use the Scene Scale option to scale the calculations internally, producing better, but slightly less accurate results. The default value of 1 m is equal to 100%. Changing the Scene Scale size to 10 cm scales the scene up by 10 times (1000%), which useful when simulating very small items. Likewise, changing the Scene Scale size to 10 m scales everything down by a factor of 10 (10%), helpful when simulating very large items.

Time Scale

Generally, a simulation moves items in time, based on real world values of simulated forces. You can use the Time Scale option to globally adjust the speed at which a simulation runs simulating slow-motion or super-speed effects when the value is lowered or raised, respectively.

Global Deactivation Time

Defines how long a dynamic object must be below the Linear or Angular threshold before being put to sleep. The default value is two seconds, so depending on the frame rate of the scene, the default value changes; generally it is 48 frames (at 24fps).

Global Lin. Sleep Threshold

When objects in a Dynamics simulation stop moving, they are put into a sleeping state, so that motion values don't have to be calculated for every object at every frame. This setting defines the lower threshold for putting these objects to sleep. You can override this value individually with the Linear option found in the Dynamic Item's properties.

Global Ang. Sleep Threshold

When objects in a dynamics simulation stop rotating, they are put into a sleeping state so that motion values don't have to be calculated for every object at every frame. This option defines the lower global angular threshold for putting these objects to sleep. You can override this value individually with the Angular option found in the Dynamic Item's properties.

Friction Separate

When two objects slide against each other, friction occurs between the surfaces. When enabled, this option forces dynamics to calculate friction between two object separately. This can produce a more accurate simulation, but with a hit to performance.

Use Warm Starting

Dynamics utilizes an iterative algorithm where each iteration is based on the solution of previous iteration. If this option is disabled, the initial solution for the solver algorithm is set to zero for each frame. When enabled, each new iteration uses the last solution of the previous frame. This improves convergence towards a better solution, especially regarding dynamics's stacking stability.

Two Direction Friction

If two objects surfaces are sliding parallel against each other for more than a few frames, errors can be introduced, enabling this option reduces or eliminates these errors.

Randomize Order

Normally, constraints and collisions are calculated in order. Enabling this option calculates the order objects to be randomized. When enabled, this option can aid in the stacking stability of dynamics simulations. It has a very small performance cost which is why it is disabled by default.

Resting Contact Restitution Threshold

By default, dynamics implements a mechanism for resting contacts to improve stability, by setting the restitution to zero. It compares the contact lifetime using a threshold to determine resting contact.

Split Impulse

By default, dynamics solves positional constraints and velocity constraints coupled together. This works well in many cases, but the error reduction of position coupled to velocity introduces extra energy (noticeable as bounce). Instead of coupled positional and velocity constraint solving, the two can be solved separately using the Split Impulse option. This means that recovering from deep penetrations doesn't add any velocity.

Split Impulse Penetration Threshold

This sets the penetration threshold.

Split Impulse ERP

The Error Reduction Parameter used if a deep penetration happens.

Solver Iterations

Determines the number of iterations between frames that the constraint solver uses to resolve collisions. Increasing this value produces more accurate constraint simulations, but at the expense of longer simulation calculation times.