Tailored Cloth

This tutorial outlines the recommended workflow for setting up a garment using the Tailored cloth model (in the Advanced cloth mode).


Tailored cloth model only works with triangle geometry!

Let’s first take a step back and think about why there is a need for the Tailored model in certain scenarios. Virtual garment design tools allow to create panels from patterns and stitch them together into garments. Those garments are created in 3D space and draped on an avatar. The image below shows such a stitched and draped garment, as well as the panels from which it was made.


Dress and pattern in a virtual garment design tool.

During the assembly, the original flat 2D panels undergo several transformations. First, each single panel is triangulated. This does not happen independently as edges from different panels that are marked to be stitched together need to have the same segmentation, i.e. number of points and edges. Unfortunately, most tools do not impose equality in length, therefore a long panel edge may be stitched together with a short panel edge, as long as they both consist of the same number of subsections. When stitching those patterns together, the segments of the triangles of the larger panels have to be compressed. That transformation also propagates to adjacent triangles. Below is shown a comparison of the upper skirt layer in stitched and in flat pose. Although the triangles are all sized equally in the pattern, the triangles on the upper edge have been strongly compressed in the stitched version, compared to the lower triangles.


Draped upper skirt layer.


Flat pattern for the upper skirt layer.

In addition to the compression by stitching, almost all triangles undergo an extension in some way as gravitational forces stretch the cloth under its own weight. The sum of these and other transformations (e.g. bending, etc.) leads to a draped geometry which still has the same number of segments and triangles as the original pattern, but their sizes and shapes are deformed.

Directly using this mesh as a simulation mesh (in Standard mode or Advanced mode with the Face-Segment-Crease cloth model), means that the Carbon solver will use the deformed geometry as the reference mesh and will try to converge to this state. The big disadvantage of this straight-forward approach is that the dress contains baked-in folds and creases which are very prevalent in the simulation. Secondly, as Carbon also applies gravity, the previously draped dress (design tool drape) is draped again (re-drape with Carbon). These issues can make it hard to achieve a desired look.

All of these problems can be solved using the Tailored cloth model. The Carbon UVs To Points node extracts the original triangulated 2D patterns that the virtual garment design tool has baked into the draped cloth’s uv coordinates. Passing the flat patterns as reference geometry into a Carbon Cloth in Tailored mode ensures that the original metrics are preserved. All folds and deformations stored in the start pose are then literally overwritten and the simulation result reflects a single draping process from flat panels.

More extensive information about all features and advantages of using Tailored Cloth is given in the user guide Tailored Cloth.

Designing and Importing a Garment

Garment Design And Import explains how to import garments created in virtual garment design tools into Houdini for usage in Carbon. Additionally, it provides information about best practices for designing garments from a technical point of view.

Tailored Cloth Model

After having successfully imported the dress, it is easy and fast to set up the Tailored cloth model. Attach a Numerion Carbon Reference Pose node to the Carbon UVs To Points node and a Numerion Carbon Start Pose node to the Color node.


Complete dress geometry setup.

Now create a simple DOP Network where the avatar is set as a collider. In the Carbon Cloth, switch to the Advanced cloth setup mode and pick Tailored as cloth model. Use the Numerion Carbon Reference Pose node as reference pose and Numerion Carbon Start Pose node as start pose.


Final setup.

Once the structural setup is completed, the Carbon Cloth parameters need to be adapted. The common practices and order of steps can be found in the Avatar Cloth Setup Tutorial.

Now, there is one last step in the setup, which is not necessary for all garments. If a garment has been designed under real-life constraints, their setup is complete, but a large number of virtual garments do not fall in this category. Such garments contain impossible stitchings.

Garment Design And Import explains how cases of undesirable stitching, as seen below, can occur frequently when using common virtual garment design tools. Looking at the screenshot, the lengths of the two highlighted edges are very different: 1007.35mm compared to 372.48mm, but are stitched together nevertheless, however they may not simulate as desired.


Comparing edge lengths.

This special case needs manual handling in the Carbon Cloth node. The automatic stretching and shrinkage of edge lengths is not incorporated into the uvs used for the Carbon Tailored cloth model. Running the simulation with the current settings will lead to contradicting constraints in the physics engine, which can manifest as e.g. bulges, visual popping, geometry corruption, etc.

It therefore is necessary to manually handle the mismatch. The recommended wayvis to paint the Stretch Equilibrium on the reference geometry. For introductory information about attribute painting, please refer to Painted Attribute Maps. In this case, use the approach that shrinks the larger edges of each pair by painting the Stretch Equilibrium as this will preserve the ruffled look. Set the base value of Stretch Equilibrium to 1 and the painted attribute range to -1. First, ensure that the paint map only contains 0 values. Then change only those regions where actual shrinking needs to happen. For the case above, the larger edge needs to shrink to a factor 372.48 / 1007.35 = 0.37 (rounded to 2 digits) of its reference length. As the base value is 1 and the range value is -1, painting 1 - 0.37 = 0.63 achieves the desired shrinkage:

Value = Base + Range * Painted Attribute, i.e. Value = 1 + (-1) * 0.63 = 0.37.

Repeat this process for all edges that need special handling. Once all edges are painted correctly, it is recommended to apply smoothing on the paint map. The final paint map can be seen in the image below.


Final paint map of the Stretch Equilibrium.


Visualization of the paint map on the avatar.


In order for the paint map to have the desired effect, make sure to allow for Stretch and Surface Compression/Extension.