Claude AUTRET's profile

Blender Cloth Simulations


B L E N D E R  -  C L O T H


Here's a few R&D projects I made recently, trying to find the answer to specific simulation problems in Blender, liek combining rigid bodies and cloth, cloth and fire, combining soft bodies or multiple cloth simulation interacting with each other.
Things that might get obsolete soon with the new Geometry Nodes simulation tools, but meanwhile it might provide an answer to some situations.
All of these are made with the Cloth physics modifier, which although it needs some tweaking to find the right values is very robust and work in many ways: with some pressure or internal springs you can simulate soft or rigid bodies with it.
I'll try to detail the settings below, and will provide the project files for each of the video.
All those are made in Blender 3.5, but nothing specific is used so even though you get a warning everything should work fine.

All the videos below and above are rendered with Cycles in AgX color space, and the viewport renders with DuBlast.
Music in the video abode is from Leonell Cassio, other sounds come from Soundly.


__________________________________________



B A S I C  W R A P

Here is a pretty basic one: 3 spheres acting as soft bodies, being wrapped by some platic film. The resulting flickering in the end is expected, as I keep applying pressure and turbulence to the simulation after the wrap. Keyframing all those forces to zero would keep it stable.


Each sphere has a cloth modifier, and a collision one on top. The order is important, as if you put the collision modifier first, it will collide with the base form of the mesh, not the one deformed by the simulation.
The outer wrap has a negative pressure to make it wrap around the 3 spheres, and as it didn't has enough force to really squish them together I addded a simple force field with another negative value.


__________________________________________



Z I P P E R

A bit more advanced, using an animated vertex group to pin the cloth, and some fancy pressure/sewing to create the base shape.
The main problem with this one is that if you want a deformation on the part that is pinned, you need to fake it with either a displace or a shape key.


This one uses Geometry Nodes so you'll need at least Blender 3.3 to get everything working, although the main cloth simulation will work in older versions.
It's basically done in 3 parts :
- from frame 1 to 50 there's sewing and pressure, creating the bumps and main shape.
- a pin group, combined with a VertexWeightProximity modifier "zips"and "unzips" the cloth
- a Geometry Nodes modifier to instance teh zipper teeth on a vertex group, and another to instance the stitches on two others.


__________________________________________



L A Y E R S

I thought this one could be done with a single object, but if you want different thicknesses you have to have multiple layers with cloth and collision modifiers. The most important is to match the outer thickness of the collision modifier with the object collision distance of the cloth modifier, otherwise the objects will interpenetrate each other and break the simulation.


The setup consists in simple planes with some subdivisions, a cloth modifier, a collision modifer with the same outer thickness as the cloth modifier collision distance, a solidify modifier with also the same value and an offset of zero, and a subdivision on top to smooth it all.
I also added a few force fields to compress the planes together, and control the overall shape.

You can then choose to apply a different material on the sides of your objects through the solidify, and can simulate different materials on each plane by playing with the physical properties of the cloth.

>> PROJECT FILE << (without cloth simulation, you'll have to cache it as it was too heavy)


__________________________________________



R I G I D  B O D I E S  I N T E R A C T I O N

Blender uses separate simulations for rigid bodies, soft bodies and cloth, so making them interact often results in strange results or seems outright impossible.
The simplest way, that might feel a bit hacky but is pretty fast to setup, is to make a low poly proxy of the objects you want to interact with the cloth within the cloth object itself, and use vertex parenting to parent the real object to its proxy.
For the proxy to react like a rigid body, just give it its own vertex group, and use this group for internal springs.
The proxy will be hidden on render by simply giving him a fully transparent material.

You can see part of the last proxy bending (like cloth, so kind of expected) in the end of the video below, it's not a problem for this project, but you can always fix it by adding more geometry I guess.



To resume my setup pour this one was :
- a plane with a cloth modifier
- quickly model low poly versions of every object
- join them with the cloth plane
- select an object, in edit mode select 3 vertices of the proxy and ctrl+P to parent the final object to vertex
- to prevent the proxy deformation and have in act as a rigid body, put it in a vertex group, and use this group for the "internal springs".
- add a transparent material to the proxy objects.

Some objects seem to retain their shape better using the vertex group for "pressure" instead of springs, with a custom volume of 1, and a very low fluid density to prevent volume change of the object; but complex object strangely repel each other with this setup, I haven't dug enough to find out why.

__________________________________________



R I G I D  B O D I E S  I N T E R A C T I O N  V 2

Almost the same setup as previously, but with an added animation, a few pins on the cloth object hooked to empties drag it around, spin it, and you can see everything also applies to the fake rigid body.



- a plane with a cloth modifier
- quickly model a low poly version of the TV
- join it with the cloth plane
- select the TV, in edit mode select 3 vertices of the proxy and parent to vertex
- to prevent the proxy deformation and have in act as a rigid body, put it in a vertex group, and use this group for the "internal springs".
- add a transparent material to the proxy part of the cloth.
- add a few vertex to a group used for pinning the shape, hook those vertices to empty, and animate the empties as you like.


__________________________________________



C L O T H  &  F I R E

This is the most complex one, that kept crashing while trying to overlay fire and cloth simulations, so I had to add one more step with an alembic export.
I made the very simple simulation of cloth in the wind, added the explode modifier to create the particles and the second cloth simulation, exported it in alembic, and then created the fire.
It uses a mostly procedural setup, with a vertex weight controlling the explode modifier, the cloth simulation of the particles and the fire crawling upwards. The only downside is the need to reexport the alembic sequence if you make change to the cloth.
There's also a small problem problem is the flames stopping abruptly whe the particles come out of the smoke domain, whcih could be fixed by enlarging it.



- an object (here an alembic sequence) with an explode modifier
- a VertexWeightProximity modifier that controls the pin group of a cloth simulation, so the particles gradually fly away
- a fire/smoke domain, where the flame apparition is controlled by the same vertex group
- a turbulence field and some wind



__________________________________________


Blender Cloth Simulations
Published:

Owner

Blender Cloth Simulations

Published: