In my mind there is a grand trinity of powerful 3D functions that all 3D programs should possess: Hair, Fluids, and Cloth. In Blender, cloth simulation was possible only through either animated displacement maps or softbodies, until now.
Todd Koeckeritz (zaz) and Daniel Genrich (genscher) have developed cloth simulation for Blender. The wiki contains current releases for Windows and Linux, and there is already a Window’s build by paprmh that includes the latest cloth release. Zaz was kind enough to answer a few questions I had about the cloth project:
Are you and Genscher the only ones working on this?
Genscher and I are the only people who have written code so far for the cloth modifier/simulator… Matt Ebb is reviewing our User Interface and I’m awaiting comments from him which will cause changes. Ton will be taking his time to review our implementation and how well it fits into the code. There are probably a few other blender developers affected by this as well.
Is your cloth definitely going to be in the next Blender release?
When the question is asked with those words, the only answer I can give is “No.” By this I mean that I can’t definitively say that the cloth simulator/modifier will make it into the next blender release. There are some issues Genscher and I need to resolve with our implementation and the code must be blessed by Ton and others first. Genscher and I expect that we’ll resolve the remaining issues soon and it sounds like we’ll make it in, but I’d rather have it slip to a future release and be done right than rush it out the door.
How do you think your cloth matches up with others, for example, Syflex?
I haven’t looked at any commercial packages at all. I run linux, I don’t own Maya or any of the other blender commercial competitors, so its hard to even look at these if I wanted too. While I wouldn’t mind looking at other cloth packages, doing so is a two edged sword. The obvious benefit from looking at other packages is to see what their feature set is, how the user interacts with it and how well they perform (speed and quality). The most obvious shortfall of doing this is very nearly the same as you can paint yourself into a corner feature wise, put on blinders UI wise, etc. In smaller projects like this, especially non-profit projects, I prefer to go where the project takes me and once there or close to the goal, look back at the competition.
What was your reasoning behind using Provot’s cloth algorithm?
Provot was chosen when we started the project because I had the code written already from two years ago when I was working on cloth as a python module. So, we’ve started with that. However, the few semi-unique characteristics of the Provot paper referenced in the wiki page are being replaced now with a similar process from another paper. So, in some ways Provot is gone, or will be in the next release. However, the nice feature described by Provot in section 5 of his paper, deals with eliminating the super-elastic/rubbery effect that some cloth simulators exhibit. That was my reason for choosing the paper two+ years ago.
Will you continue to develop the cloth separate from Blender so even after the next version of Blender is released (with or without cloth), users can still go to the wiki and put cloth in Blender?
Well, if we don’t make the next release, while we’re working on it outside of bf-blender’s main CVS code base, I’d expect to continue to release patches periodically until its finally integrated into the main bf-blender code base. I do hope that Genscher and I will continue to have time to improve the cloth implementation though. There are a lot of ideas we have and others have had that won’t make it into the initial release.
Any final thoughts?
Users need to understand that the currently released patch is definitely not finished. It was released mainly for Ton and Bjornmose to begin their review of the code. Currently the collision response is pretty bad and that’s the main task Genscher and I have ahead of us, making that meet user expectations. If users are expecting something that works great out of the box, they should wait a week or two or maybe a bit longer. If users want to see where we’re headed and don’t mind beating their heads against a few walls, they should try out the binaries and/or patches available.
So go out there and try it. I found the papers that were linked to in the wiki a great read. For those of you that are interested in the science behind 3D cloth simulation, definitely take a look. And as all great projects should have a name I’m going to throw one out there for this project: “Zencloth” (zaz + gen = Zen). Has a nice ring to it doesn’t it?