Trying out constraints and destruction by ripping this shed apart. I modelled the shed somewhat realistically and the constraints were placed in realistic areas where nails might go. You can really see all the unresolved issues if you look closely but I ran out of time on this one so don't look too closely.
Everything was done in Houdini and rendered with Arnold. I initially set up the render with Mantra but it took 10x longer than Arnold (possibly because I don't know how to use Mantra yet).
Read on for highlights on my experience switching from 3DS Max to Houdini.
Why I switched to Houdini in 2017 (from 3DS Max)
This destruction project was meant to test a more complex setup that's more difficult than following tutorials. I wanted something that would bring more challenges and troubleshooting so I could learn faster. I started 3D using mainly 3DS Max with the occasional trip into Maya. Houdini is unlike either of those software packages and feels completely different to work with. It has many of the same tools and general workflow but the thought process is very different. The word "procedural" is used all over to describe Houdini and anyone coming from 3DS Max can tell you that's a perfect description.
I'll explain more about the workflow advantages that I'm noticing in Houdini from an FX/dynamics point of view but I'm not suggesting that 3DS Max isn't fully capable. I've had the pleasure of working with some of the best 3DS Max artists and technical minds and those people could make anything in Max. But it's also helpful to have many tools working for us and to work as efficiently as possible.
My favorite tool in 3DS Max is the pflow data operator or "Advanced Data Manipulation" tool which is a node based form of visual programming for particle flow. I also enjoy using similar node based solutions like Thinking Particles or Thinkbox Genome. I find the node based workflow to be clear and intuitive to me in most cases. Unfortunately, in 3DS Max those tools are only available in the particle context with the exception of Thinkbox Genome, which acts as a modifier on a per-geometry basis. For me, the unavailability of node based processing in other areas of 3D often resulted in converting geometry to particles just so I could make use of those tools which created a "middle man" situation as well as required some babysitting of the geometry to be sure the UVs came through or data channels weren't disrupted. Alternatively, there is now the Max Creation Graph which seems to be Autodesk's answer to this visual programming trend and allows some of this control over geometry but I've used MCG very little and it also seems to run as a modifier on a single piece of geometry.
While using 3DS Max, the fact that I wasn't really able to use visual programming for modeling or shading didn't bother me because I didn't know better. Once I started learning Houdini that changed because most of Houdini is node based and it has a useful tool called VOPs that are fantastic.
VOPs are the node based visual programming equivalent in Houdini and I find them to be intuitive and robust. VOPs do not run on a per geometry basis like modifiers do; they run on input so you can push almost anything through! Even better, VOPs connect all over the pipeline (modeling, fx, shading). In 3DS Max terms, this is like having a very capable and robust modifier that can equally apply to any geometry, shaders, or particles in your scene. And inside that modifier is a data operator! That is a BIG reason why I've been enjoy Houdini so much. You can run a VOP over geometry to distort it and then connect that to any property of a shader procedurally. That is powerful and is often not possible in 3DS Max without external plugins and even with external plugins, they're often riddled with limitations. Often the solution in 3DS Max is a workaround to the limitations and many technically imaginative artists can manage just fine. It may require baking some elements out or pulling some cheap tricks but lots of the same operations can be done. It's the more complex scenarios that back you into a corner in 3DS Max. How about connecting geometry's velocity information on a per-poly basis to a shader's refractivity, translucency, or opacity. I can't think of a way to do that in 3DS Max off the top of my head (at least not without some serious scripting). There probably is a solution but it may get complicated and I doubt that it would be very procedural. However, this type of control is natural in Houdini.
3DS Max Data Operator
The almighty Wrangle
A flagship example of power comes in the ability to use both the Wrangle SOP and the Python SOP in Houdini. For those who may not know, Wrangle is used to write code into the node workflow which is basically like writing your own nodes... super easily. These can be written in Houdini's VEX language, which Side Effects claims performs close to compiled C or C++ code. There is also a Python node for writing in our beloved Python but this may perform slower than VEX. This ability to write nodes was perhaps the most useful part of this project because you can easily just drop in a wrangle node anywhere in your workflow and process, loop through, or modify properties or attributes. If you don't find the node you want you can simply write it yourself!
This tool can't be over stated and I have an example of how this helps new users. When I began this destruction project, I barely knew the nodes available in SOPs but I learned about the wrangle very early on thanks to my friend Daniel Soo, who was a constant source of peer pressure to learn Houdini but also a great resource for my learning. Knowing that the wrangle exists and having experience in scripting made it so I could begin writing nodes before even knowing the available pre-made nodes. I was able to write VEX to set color before I knew there was a "color" sop and I wrote some VEX to modify an attribute name before I knew there was an "attribute rename" sop. These tasks aren't difficult and the VEX is not complicated but it's an example of the ability to pick up the software and go.
Even while writing this article, I'm working on another project with particles and since I don't know if a pre-existing node exists for this, I just wrote some VEX to remap a particle's color based on both it's age and it's speed combined with just 3 lines of VEX. Again, not a complicated thing to do but the fact that you can just drop a node and write, is freedom.
The Houdini Community
The biggest and most helpful resource for me in Houdini is the huge and helpful community. There are many people that are very active on forums and almost always willing to share ideas, tests, and even project files to learn from. Most of what I've learned in the past months have been thanks to this great community of people on the odforce and Side Effects forums.