PcoWSkbVqDnWTu_dm2ix
We use cookies on this site to enhance your user experience

Introducing LDL Decomposition

Introducing LDL Decomposition

Author: chefdeletat
We’ve shipped a new update to dramatically improve the behavior of models that use constraints.


At our recent developer conference, we shared a preview of all the cool and exciting new features coming soon to Roblox. Among them, attendees got a sneak peek at our updated PGS Physics Solver which significantly improves the stability and fidelity of systems using mechanical joints such as Hinge, Ball, Prismatic, etc. For all developers and creators, we’re proud to announce that this update is now live and automatically takes effect with any model that uses constraints — no extra work required!

Using a special matrix technique known as LDL decomposition, we’re able to improve the convergence of the PGS solver. The LDL version of the solver reduces errors in the solution that would normally lead to instability. As a result, we observe much improved behavior with larger, more complex machines and mechanisms, models with high mass ratios and velocities, and over-constrained or inconsistently constrained systems. All of these complex and tricky simulations are now able to run much more smoothly and reliably with the LDL enhancement to the PGS solver.

Let’s look at a very basic model that demonstrates profoundly better behavior using LDL. In the model shown in the video below, there is a simple door connected to a motor at the top and a hinge at the bottom. As expected, everything works great as long as the hinge and motor axes are along the same line. However, if the two axes are misaligned, the original PGS solver would have difficulty providing smooth, expected motion for the door.

In the next video, we can see a comparison with the same model running after the introduction of LDL. This simple model demonstrates how the updated solver will be able to handle subtle and hard-to-detect modeling errors, such as constraint misalignment, that would previously cause unpredictable and undesired motion.


Check out the video below to watch even more examples of LDL in action. In all of the models provided, you can see the improved motion that LDL provides.

Thanks to your feedback; we’re continuing to help developers and creators make physically-simulated Roblox environments better, more realistic, and more immersive.

Stay tuned for more exciting news on the blog!