Miarmy Crowd Simulation Documentation (English)

Violated Fix Joint Error by Projection

After Miarmy 3.5, we introduced a very useful tool for fixing the separation of joint when some dynamic simulation.

Projection Introduction

Under stressful conditions, PhysX dynamics solver may not be able to accurately enforce the joint constraints specified by the joint. PhysX provides kinematic projection which tries to bring violated constraints back into alignment even when the solver fails.

Projection is not a physical process and does not preserve momentum or respect collision geometry. It is best avoided if practical, but can be useful in improving simulation quality where joint separation results in unacceptable artifacts.

 

By default projection is enabled in Miarmy and set to value 0.1, 

If the joint separates by more than this distance along its locked degrees of freedom, the solver will move the bodies to close the distance.

But please notice the known issues:

  1. Setting a very small tolerance may result in simulation jitter or other artifacts.
  2. Sometimes it is not possible to project (for example when the joints form a cycle).

Example

For example, we need a fast moving object collide agents, like the below picture:

 

Sometimes when kinematic object moving too fast and there will be joint separation error occur. like the picture below, the simulation become very unstable.

Older version of Miarmy we can only rise the "sub step" for fixing this problem, but after Miarmy 3.2.1, we can use "projection" to fix this:

 

This is the result we set the projection 0.1 and sub step 1.

 

Basefount Technology