modo bubbble logo

recoil Solver

Home >> Rigging & Animation >> recoil Dynamics >> recoil Solver

back next
comment balloon Comments (1) RSS Icon
0/5 (0 votes)

When any item in the scene is defined as either an 'Active Rigid Body' or a 'Passive Rigid Body', a recoil 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', 'Start Frame', etc. If the recoil Solver item is ever accidentally deleted from the scene, users may add another with the menu bar command "recoil > Add Solver" or by using the 'Add Items' function of the 'Items' list, LMB+click to open the menu and select the "Other > recoil" option. With the item selected in the 'Items' list viewport, a series of attributes can be modified in the 'Properties' panel using the standard modo control conventions.

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 recoil dynamics simulation calculations.

Start Time: Expressed as a whole frame value, the dynamics simulation will begin to calculate from this point forward. Users may change this value to offset the calculations of a dynamic simulation to a later point in an animated sequence.

Steps: The 'Steps' value represents the subframes recoil calculates between frames. 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 Steps value increases, so do the number of calculations. Higher numbers offer more precise simulations at the expense of greater time to calculate.

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).

Air Density: The 'Air Density' option defines a global drag for 'Soft Body' items. The greater the value, the greater the drag.


Debug Drawing: Draws the internal representation of what the recoil 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.


Body Update Frequency: This option determines how often recoil collects Channel and Deformations data to update its internal representations each dynamic item in the scene-
Begin- Internal representation is updated only once at the simulation start.
Per Frame- Internal representation is updated at each whole frame value.
Per 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.

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 Lin. Sleep Threshold: When objects in a recoil 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 recoil 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.

Global CFM: CFM stands for 'Constraint Force Mixing' and is a tweaking value for Constraints. CFM adds some small value to the main diagonal of the constraint matrix, to avoid degenerative matrices. Basically it helps to resolve instability in a Constraints calculations, in effect softening the constraint solution.

Global ERP: ERP stands for 'Error Reduction Parameter'. When applying CFM, ERP defines the rate at which the errors are reduced.

Use SIMD: The 'SIMD' option is a parallel computing optimization used when calculating recoil dynamics, enabled by default.

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

Use Warm Starting: recoil 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 recoil's stacking stability.

Friction Warm Starting: The 'Friction Warm Starting' option is basically the same concept as the 'Use Warm Starting' option above, but affects the calculations of friction between objects.

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 recoil simulations. It has a very small performance cost which is why it is disabled by default.

Resting Contact Restitution Threshold: By default, recoil 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, recoil 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.

Frame Skip Limit: When 'Play Real Time' is enabled, modo maintains the playback framerate by skipping frames if necessary. The 'Frame Skip Limit' determines the biggest jump that there can be before recoil will stop trying to calculate the simulation. If this number is really large, modo may appear to hang while recoil tried to catch up.

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.


comment balloon Comments (1) RSS Icon

stunnedmullet June 25, 2012 at 2:08 PM

Adding a recoil solver seems to have disappeared from the Add Items->Other menu. The only way is to add it using the recoil menu Add Solver option.
I'm using 601 SP2 on WinXP if that's any help.


back next