Optionally run controllers in a separate thread
At present the simulationManager runs controllers (including virtual coupling objects), collision detection, collision handling and solvers in a sequential fashion. For a scene where the solvers take more time the object controllers are called at a low frame rate leading to objects not responsive to the user movements. One option is to run the each controller in a separate module.
Whether the controllers are run in a separate thread within scene manager or a separate module they need to be synchronized for collision detection, handling and computation of forces.