First, as a general rule, I’m using AI as a tool to compensate for my complete lack of any reasonable math skills and/or being much too lazy to actually dig in and write the code myself and I keep it on a pretty tight leash based on a carefully researched and designed plan.
This isn’t really a softbody simulator (not at least without tetrahedral meshes which would probably require some surgery to BMesh) but a way to define the surface properties of meshes – under deformation, in collisions, etc… Sort of a shape-key replacement where you tell the mesh what it can and can’t do under external (or internal by way of the force nodes) disturbances.
My idea is you rig your mesh and then weight paint – or whatever is used now, been a long while since I’ve used Blender – the bony parts, the stretchy parts, the bouncy parts and use these to constrain the mesh in a ‘natural’ way to simulate whatever’s underneath the mesh like a muscle and skeletal system in a character. And, something which I think is kind of cool, you can also use the “Shape Constraint” to define things like dragon scales, the scales themselves keep their shape while the areas around them deform to adhere to the pose. Haven’t actually debugged that one yet so…
As to the bake vs. not bake, I wasn’t sure about that but we (me and the daffy robots) just did what the existing Simulation Zone does by plugging into the baking system while also using the Lazy Function to cache state across the frames like the Repeat zone uses. This could (probably) be made to run the constraint solver on each update and not bake the results but, dunno?
So… not a full program simulation but the building blocks of different constraint types to do a sort of “ghetto physics” on the meshes for whatever artistic reason. Ironically, it should also be able do a reasonable hair dynamics.
Oh, and the “existing library” is just Eigen, that’s what does all the heavy lifting and it’s doing some sort of zero-copy matrix thing, allegedly, for efficiency. The solver was surprisingly easy to implement using Eigen’s built-in functionality. Plus, adding new constraint types is trivial, I just started with the ones from the paper which would work without converting to tetrahedral meshes.
Our AI overlords say “The most pragmatic path forward would probably be to engage with their existing XPBD work rather than trying to introduce a competing solver architecture” so, who knows?
–edit–
I did some more interrogation of the daffy robot and this is a more concise description of (one of) the intended use cases:
How This Would Work
Your pipeline would be:
- Armature deforms the mesh (standard skinning/deformation)
- PD simulation “fixes” the artifacts using constraints:
- Stretch constraints prevent unnatural stretching from skinning
- Bending constraints smooth out creases
- Volume/area constraints prevent collapsing
- Collision constraints prevent self-intersection
This approach gives you physically-based shape keys that automatically work for any pose - exactly what the paper’s “generality” criterion was designed for. You’re not doing full cloth simulation, you’re using PD as an intelligent smoothing/correction filter on top of traditional rigging.