SIMAPCK is a 3D multibody dynamics engine for users to easily simulate and visualize the assembled mechanism. The finished implementation is entirely written in Java using graphics library Java3D and math library Colt. The development blog can be seen in simulator.

This project was started with a Java port of a popular physics engine Open Dynamics Engine (ODE), which is written in C/C++. The Russell Smith LCP solver and an iterative Gauss-Seidel solver were implemented. Currently, the physics involving hinge joint, slider joint, and contact joint can be successfully simulated. More joint types are planned to be implemented.

More features other than ODE are also included. A new solver using Baraff linear-time Lagrange method was added. GJK method was used to handle collision detection for generic convex objects. DEEP and contact manifold were implemented to evaluate penetration depth. Furthermore, a complex object that is composed of a hierarchy of convex objects is designed to represent a generic meshed object.

The near-future plan for this project is to simulate flexible bodies, to add an efficient iterative sparse LCP solver, and to include more stable and accurate time integration schemes.