Hello
This is a little feedback concerning Featherstone-based simulation.
In btMultiBodyDynamicsWorld::solveConstraints(btContactSolverInfo& solverInfo) there is a call to clearForcesAndTorques() for each multibody. Because of this, the pre-tick callback in class btDynamicsWorld cannot be used to set custom control forces/torques.
The solution I'm working with is to add a callback member to class btMultibody which gets called right before stepVelocities().
Cheers