top of page

This is the web version of a simple demo program I use to explain the basic core Nucleus solver I wrote in the warm fall of 2005 in Toronto. Back in 2003, my employer (Alias) asked me to create a new cloth solver in MAYA. We needed to replace a third-party solver that customers were unhappy with. I wrote many research prototypes and decided to start simple to understand the challenges. I created this little demo to explore integration schemes. Maya had a soft body explicit solver that would often fail and the aforementioned implicit solver, which was too damped in non-natural directions of the cloth, as if the cloth were immersed in a dense liquid. A natural solution is to combine these two techniques to strike a balance between instability and excessive damping. Welcome to symplectic solvers. The idea is to go implicit on velocity and explicit on positions. This is the type of integration used in Nucleus. You can see these integration techniques in the demo program. The symplectic method is not unconditionally stable; try typing in a time step larger than 2 and you will see what I mean.

The symplectic solver is also full of surprises. Try typing in a time step of 1.0. What you get is a tilted hexagon. With a time step of sqrt{2.0}​, you get a quadrilateral. Of course, I wanted to know if one could compute the time step that allows for the creation of an arbitrary n-gon. It turns out this is doable by computing eigenvalues and eigenvectors. The derivation is in my Nucleus paper below.

I gave an invited talk about Nucleus in Costa Mesa, California, at an IEEE applied science conference in 2007 and demonstrated this demo. Gilbert Strang was in the audience and appreciated the demo so much that it appeared on the cover of one of his books titled "Computational Science and Engineering." He sent me a free copy. In the hotel lobby, Cleve Moler, the founder of MATLAB, showed me that he had done exactly the same math to compute the time step for an arbitrary n-gon in the sixties.

On my publication page, you can find more details in a paper on the Nucleus solver.

©2018-2026 by Jos Stam.

bottom of page