modo bubbble logo

Dynamics Solver


Home >> Layout & Simulation >> Dynamics Solver

back next

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', etc. If the Dynamics Solver item is ever accidentally deleted from the scene, users may add another with the menu bar command "Dynamics > Add Solver". With the item selected in the Items List viewport, a series of attributes can be modified in the 'Properties' panel-

Mesh Dynamics PanelEnable: This value can be toggled like an on/off switch. Enabled by default, users can disable this option to temporarily suspend the Dynamics simulation calculations.

Physics Rate (Hz): The 'Physics Rate' value 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 users 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 will help to eliminate these errors, however, keep in mind as the Rate increases, so do the number of calculations. Higher numbers offer more precise simulations at the expense of greater time to calculate. Note that in order to see the reuslts of the 'Physics Rate' users will need to do a full cached simulation, as both the realtime preview modes always default to a Physics Rate of one update per frame.

Gravity X/Y/Z: The Gravity X/Y/Z settings 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 same downward pull of gravity on earth at a 1:1 scale (meters per second).

Visualize--

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.

Debug Drawing Scale: Simply scales some of the debug drawing elements. Normally this will be the locators.

Advanced--

Body Update Frequency: This option 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 subframe 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 versus 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. Users can adjust this value, affecting all dynamic objects scene wide. Users can also override the 'Global Density' individually per item by setting the 'Mass Source' option in the items Dynamic properties to one of the 'Local' options and defining a value individually.

Scene Scale: Dynamic evaluations make certain assumptions in its 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 will run into issues with accuracy. Instead of scaling the target scene, it is possible to use the 'Scene Scale' option to scale the calculations internally, producing better (albeit slightly less accurate) results. The default value of 1m is equal to 100%. Changing the 'Scene Scale' size to 10cm scales the scene up by 10 times (1000%), useful when simulating very small items. Likewise, changing the 'Scene Scale' size to 10m 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. Users 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: The '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 will change; generally it is 48 frames (@ 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. The 'Global Linear Sleep Threshold' defines the lower threshold for putting these objects to sleep. Users may also override this value individually with the 'Linear' option found in the 'Dynamic' items properties.

Global Ang. Sleep Threshold: When object 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 (rotational) threshold for putting these objects to sleep. Users may also override this value individually with the 'Angular' option found in the 'Dynamic' items properties.

Friction Separate: When two objects slide against each other friction between the surfaces occurs. 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 'Use Warm Starting' is disabled the initial solution for the solver algorithm is set to zero for each frame. When 'Use Warm Starting' is 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 'Two Direction Friction' can help to reduce or eliminate these errors.

Randomize Order: Normally constraints and collisions are calculated in order. Enabling the 'Randomize Order' option causes the order objects are calculated 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.

Solver Iterations: This value determines the number of iterations between frames that the constraint solver uses to resolve collisions. Increasing this value will produce more accurate Constraint simulations, but at the expense of longer simulation calculation times.

 

Top

back next