Frequently Asked Questions

How to make the simulation work in a different space than in world space?

The Houdini DOP Network object node can have its own transform or take a parent object. This transform will then be reversely applied to the input geometries used during the simulation, effectively making the simulation happening in the new specified space.

Try the $SIMCARBONTOOL_PATH/documentation/_downloads/faq_spatial_comp.hip file for a comprehensive example involving composition of two simulations using Goal Posing.

Can two different resistance values be specified for compression and extension?

Carbon uses its own proprietary cloth models and have its own performance requirements that do not allow separate resistance values for compression and extension.

However the Stretch Equilibrium parameter can be used to force more extension resistance than compression resistance by alteration of the elongation.

Small variations in the Stretch Equilibrium, such as a value of 0.95, should make the extension looks stiffer than the compression, even under a reasonably small number of iterations.

What to do in order to make the simulated cloths look less rubbery?

There are 2 main parameter groups that need to be looked at: Stretch and Bend.

Adding a certain degree of angular plasticity, which allows to preserve creases, to a cloth removes the rubbery look in most cases.

A rubbery feel is often also caused by a bad setting of the Stretch Compression/Extension. These two parameters are hard limits and therefore are not physical. They exist to help decrease the simulation times so that in most cases it is not necessary to raise the Simulation Iterations.

Without enough leeway, the stretch limits tend to prevent bending in a snappy kind of way, making the cloth behave like a rubbery material.

This could also mask a bad setting of the Stretch Stiffness and give an unrealistically low expectation of the Simulation Iterations which could also exacerbate the rubbery behavior.

This is why it is recommended to start setting up the cloth with these two limits disabled (by setting very low compression and very high extension values) in order to find the correct physical setup. Once this is done, then the limits can be re-adjusted to values that do not seem to affect the physicality of the simulation. Finally the simulation times can be sped up by dropping the number of Simulation Iterations to a sensible value.

How to prevent the simulation to be unstable when over-constrained?

There is a difference between solvability and stability. When a system is over-constrained it is not solvable. And since there is no solution to a non solvable problem, then it is very difficult to define its stability.

What is expected from the simulation is to find a close solution despite the fact that the system has no solution. This is about robustness and can be achieved in 2 ways:

  • Hope that the simulation does not blow up with the current conditions and try to patch it up afterwards (untangling).
  • Change the initial problem so a solution can exist (contact filtering).

Sadly in both cases, since the given problem admits no solution, any solution provided by correction or alteration can produce unexpected results.

There is currently no untangling algorithm, but contact filtering has been implemented to specifically help with the over-constrained collision issues. To enable it, simply set a non zero Collider Filtering Gap.

How can I change the folders that Houdini searches when looking for custom plugins like SIM_CarbonTool?

To change the folders that Houdini searches when looking for custom plugins, use the HOUDINI_DSO_PATH environment variable.

For example, if you want Houdini to search /usr/local/lib for your custom plugins, then set HOUDINI_DSO_PATH to /usr/local/lib. You can use the ‘:’ character (‘;’ on Windows) to separate multiple paths. Additionally, you can use the ‘@’ character to refer to expansion of the HOUDINI_PATH environment variable.