Presets
Playback
Scene
Fabric
Air and gravity
Layers
Model check
The science
What is modelled
The sheet is a grid of point masses joined by three families of distance links: structural links to the four neighbours (they stop the fabric from stretching), shear links along the diagonals (they stop it from skewing) and bend links two particles apart (they resist folding; weak for silk, strong for card). Each particle carries the mass m = σ W H / n of its patch of fabric, where σ is the areal density in kg/m². The integrator is position-based Verlet, the standard method of real-time cloth (Jakobsen 2001; Müller et al. 2007).
Equations
- Verlet step:
xn+1 = xn + (xn - xn-1) e-c Δt + a Δt², witha = g + Fair/m. Four to six sub-steps of 1/240 s are taken per frame. - Link projection: every link of rest length
L0and current lengthLmoves its two ends byk (L - L0)/2along the link, repeated 8 times per sub-step. The fibres therefore stretch a few per cent under a heavy hang; the readout shows the actual stretch. - Air load on each triangle of area
Aand unit normaln:F = -½ ρ Cn A (vrel·n)|vrel·n| nwithρ = 1.2 kg/m³,Cn = 1.2(a flat plate across the flow), plus a skin-friction force-½ ρ Cf A |vt| vtalong the sheet. A pressure of½ ρ v²at 10 m/s is 60 Pa, which is why a 150 g/m² flag (1.5 N/m² of weight) streams out almost horizontally. - Contact with a sphere, a table top, a rail or the floor pushes a particle out by the penetration depth
d; friction removes at mostμ dof the slip during that step (Coulomb friction in position form: tangential impulse ≤ μ × normal impulse). - Cloth-on-cloth: particles of non-neighbouring parts of the sheet are kept at least 0.7 grid spacings apart with a spatial hash, so folds stack instead of passing through each other.
Checks run in this page
- Free fall without air: the centre of mass must follow
y0 - ½ g t²and the loose sheet must not deform (it falls as one body). - Terminal speed of a flat plate: balancing weight against drag,
½ ρ Cn A v² = σ A g, givesvt = √(2 σ g / (ρ Cn)); the coarse stiff plate must settle within 2 % of it. - Catenary: a 1 m chain hanging between supports 0.8 m apart must sag by
a(cosh(D/2a) - 1), whereasolvesL = 2a sinh(D/2a). The same solver relaxes the chain with damping; the result is compared with the closed form. - Live: the longest fibre of the sheet you are watching must stay within 15 % of its rest length.
Honest simplifications
- Real fabric has a distinct weave: warp and weft stiffness differ, and it resists shear nonlinearly (Kawabata tests). Here all fibre directions share the same stiffness slider.
- Particle-based contact: a sheet cannot catch on an edge thinner than the grid spacing (4 cm at the default size), so the towel rail is thicker than a real one.
- A finely meshed loose sheet falling through air flutters and tumbles, as real paper does; the terminal-speed check therefore uses a coarse stiff plate where the force law can be isolated.
- The air is a uniform stream with a gust pattern and some cross-flow turbulence. The cloth does not disturb the flow (no wake, no added mass), so billowing is qualitatively right but not a CFD result.
- Pins are perfectly rigid; the fabric never tears.
Simulation, objects and textures were made for this page: the room and props are Blender-built meshes with baked PBR textures, the cloth is simulated live in your browser.