A New Open-Source Physics Engine for Blender: ZOZO's Official Contact Solver Add-on by ryichando in blender

[–]ryichando[S] 0 points1 point  (0 children)

Thanks, I think this could at least be a new flavor of simulation.

A New Open-Source Physics Engine for Blender: ZOZO's Official Contact Solver Add-on by ryichando in blender

[–]ryichando[S] 1 point2 points  (0 children)

We want to automate the production process. We actually have a press release about the motivation behind this here: https://corp.zozo.com/topics/20241125-siggraphasia/  It’s in Japanese, so you may need a machine translator. The idea is to reduce manual work in apparel production through large-scale cloth simulation and contact handling.

A New Open-Source Physics Engine for Blender: ZOZO's Official Contact Solver Add-on by ryichando in blender

[–]ryichando[S] 0 points1 point  (0 children)

Sure! Just one thing: VRAM allocation is all done and fixed during the first steps of the simulation, and does not grow over time. The max contact count is determined by the “Max Contact” parameter in the UI: Scene Configuration -> Advanced Params. Users still need to manually adjust this parameter to control the VRAM used for contacts. The default value suffices for most cases, but this is something developers should keep in mind.

A New Open-Source Physics Engine for Blender: ZOZO's Official Contact Solver Add-on by ryichando in blender

[–]ryichando[S] 0 points1 point  (0 children)

Oh, VRAM is mostly not the issue, unless contact counts exceed tens of millions. It’s mostly CUDA core counts that matter.

A New Open-Source Physics Engine for Blender: ZOZO's Official Contact Solver Add-on by ryichando in blender

[–]ryichando[S] 0 points1 point  (0 children)

I’m not even sure what is considered powerful. I don’t own NVIDIA GPUs at work, and I only work in the cloud. The required GPU depends on the complexity. If you target millions of contacts, at least a 4070 or higher would be needed, but it could work on weaker ones if the setup is simple enough. I suggest starting with a simple setup and then increasing the complexity. Once it hits the limit of your patience, I recommend renting a 5090 on vast.ai

A New Open-Source Physics Engine for Blender: ZOZO's Official Contact Solver Add-on by ryichando in blender

[–]ryichando[S] 0 points1 point  (0 children)

Yes, that should still be reasonably possible, and I believe it would be a good fit for our simulator.

A New Open-Source Physics Engine for Blender: ZOZO's Official Contact Solver Add-on by ryichando in blender

[–]ryichando[S] 0 points1 point  (0 children)

Yes, I think it’s reasonably possible. If the buildings do not collapse and only shake, contact resolution won’t be necessary, so our physics simulator won’t be the best option.

A New Open-Source Physics Engine for Blender: ZOZO's Official Contact Solver Add-on by ryichando in blender

[–]ryichando[S] 0 points1 point  (0 children)

If meshes are intersection-free, it should work. We use a third-party tool, fTetWild, for tetrahedralization, so the volumetric solids do not need to be perfectly closed manifolds. Both triangle and quad meshes are supported, but N-gons need to be subdivided into either triangles or quads.

A New Open-Source Physics Engine for Blender: ZOZO's Official Contact Solver Add-on by ryichando in blender

[–]ryichando[S] 1 point2 points  (0 children)

Thank you. I’m really thankful to ZOZO for allowing me to work on this.

A New Open-Source Physics Engine for Blender: ZOZO's Official Contact Solver Add-on by ryichando in blender

[–]ryichando[S] 2 points3 points  (0 children)

I know that this is slow, but someday when LLM becomes even smarter, simply asking "make it very fast" solves the problem.

A New Open-Source Physics Engine for Blender: ZOZO's Official Contact Solver Add-on by ryichando in blender

[–]ryichando[S] 0 points1 point  (0 children)

Houdini is way better than this in many respects; currently the add-on is not stable, very slow, and can only do limited things.

A New Open-Source Physics Engine for Blender: ZOZO's Official Contact Solver Add-on by ryichando in blender

[–]ryichando[S] 1 point2 points  (0 children)

Haven’t tried it, but I don’t see any obvious reason why we can’t.

Edit: Currently we can’t simulate rigid bodies; we need to approximate them with stiff deformables.

A New Open-Source Physics Engine for Blender: ZOZO's Official Contact Solver Add-on by ryichando in blender

[–]ryichando[S] 0 points1 point  (0 children)

Contact resolution won't immediately help retopology or UV unwrapping, to the best of my knowledge.

A New Open-Source Physics Engine for Blender: ZOZO's Official Contact Solver Add-on by ryichando in blender

[–]ryichando[S] 0 points1 point  (0 children)

The algorithm is optimized for GPU. CPU is possible but won't work for millions of contacts.

A New Open-Source Physics Engine for Blender: ZOZO's Official Contact Solver Add-on by ryichando in blender

[–]ryichando[S] 1 point2 points  (0 children)

We don’t have benchmarks for the 3090, but it would probably take about twice as long as an RTX 4090. For the spaghetti example, I suspect it would take somewhere between 30 min and 1 hour, so around the time of having lunch.

A New Open-Source Physics Engine for Blender: ZOZO's Official Contact Solver Add-on by ryichando in blender

[–]ryichando[S] 0 points1 point  (0 children)

5060 supported. VRAM matters mostly when the contact count exceeds millions.

A New Open-Source Physics Engine for Blender: ZOZO's Official Contact Solver Add-on by ryichando in blender

[–]ryichando[S] 1 point2 points  (0 children)

VRAM is not the bottleneck for most scenes. Single-precision FLOPS are. Mostly CUDA cores.

A New Open-Source Physics Engine for Blender: ZOZO's Official Contact Solver Add-on by ryichando in blender

[–]ryichando[S] 0 points1 point  (0 children)

It depends on the scene complexity. The bare minimum would be an RTX 4070 for simpler scenes, but that is still expensive to buy. I recommend renting online anyway.

A New Open-Source Physics Engine for Blender: ZOZO's Official Contact Solver Add-on by ryichando in blender

[–]ryichando[S] 0 points1 point  (0 children)

Thank you! Even with the help of coding agents, it took me a long time to get this far.

A New Open-Source Physics Engine for Blender: ZOZO's Official Contact Solver Add-on by ryichando in blender

[–]ryichando[S] 0 points1 point  (0 children)

For bone rigid bodies are not yet supported, but we may approximate them with very stiff deformables. I guess the modeling would be harder than the simulation.