Maintaining surface area: Making a flag


Noob question. I want to make a realistic flag that looks like it’s flapping in the wind (not animated). As flag fabric doesn’t stretch, how does one ripple, bend, etc. a surface without changing it’s surface area?


Hi Ernst - you can get close by keeping track of the length of the edge and scaling (or ExtendSrf) accordingly -

FlagMaybe.3dm (46.3 KB)

Adjust the points on the wavy surface and adjust to keep the edge length (DimCurveLength, + History) close to 200.


Thanks Pascal but I’m trying to create something lot more dimensional and flowing. Something like this:

Yep, but you should be able to keep it close with the curve lengths and possibly a DimArea as well - then move points around as needed. There is no guarnatee any of it will behave like fabric - it will not, but you can probably get pretty close with the larger, simpler distortions and then add the smaller details with a bump map at render time.


Hi Ernst -
You could also look into simulating it with Kangaroo in Grasshopper:


Here’s a slightly updated version of the file in the link above to output a surface to make it easier to apply a texture, and an example of the baked result (17.8 KB)
flappingflag.3dm (277.2 KB)