Audiences notice cloth only when it is missing. Footsteps put a character on the ground; cloth movement gives them a body. It is also hard to source, because you need a specific garment moving at a specific speed, and no library indexes that. Generating it lets you match the costume.
Every clip shows the exact prompt that produced it. The render script reads its prompts from the same file as this page. Copy one, change a word and generate your own.
person shifting in a cotton jacket, soft fabric friction with seams stretching, very close mic, quiet room
leather jacket flexing as someone turns, taut creaking with a dry grain, very close mic
metal zip pulled quickly up a jacket, rapid buzzing teeth engaging with a stop at the top, close mic, dry
heavy woollen cape swept around, broad low fabric whoosh with a settling drape, medium room
bedsheet flapping on a washing line in a breeze, sharp fabric cracks with a continuous flutter, outdoor garden
leather armour straps tightened and buckled, creaking leather with metal buckle clicks, close mic
hiking backpack shifted on shoulders, nylon straps sliding with buckles knocking, close mic, outdoor
heavy curtains drawn across a rail, fabric sliding with rings clicking along metal, medium room
damp towel snapped hard through the air, sharp cracking whip with an airy tail, tiled room
canvas tent walls buffeting in strong wind, deep fabric booming with rope creaks, outdoor, seamless loop
These models respond to physical description. Name the material, the action and the space.
person shifting in a cotton jacket, soft fabric friction with seams stretching, very close mic, quiet room
"Person shifting" gives the model a body to move. "Fabric rustle" alone gives it a texture with nobody inside it.
leather jacket flexing as someone turns, taut creaking with a dry grain, very close mic
Leather creaks where cotton rustles. "Taut" and "grain" push the result away from cotton, the model's default fabric.
heavy woollen cape swept around, broad low fabric whoosh with a settling drape, medium room
"Settling drape" adds the tail that makes heavy fabric sound heavy. Without it a cape sounds like a tea towel.
canvas tent walls buffeting in strong wind, deep fabric booming with rope creaks, outdoor, seamless loop
Large fabric under wind load booms at low frequencies. "Booming" finds that register instead of the surface rustle.
"Cotton" on its own tells the model very little; "a cotton jacket" tells it a lot, because a jacket implies seams, a lining, a size and a person wearing it. The same goes for canvas and a tent, leather and a leather jacket, wool and a cape. For cloth, naming the object almost always works better than naming the material, because garments are what the training data contains.
Static fabric makes no sound. Every prompt here has a verb with an arc: shifting, flexing, swept, pulled, drawn, snapped. If a cloth generation comes back as a formless hiss, the prompt probably described a state instead of an action. Add a direction (up, across, around) and an endpoint ("with a stop at the top", "with a settling drape") to get an event you can cut to picture.
What makes clothing foley identifiable is usually the zip, the buckle, the curtain ring or the strap. These are small metallic events on top of a broadband bed. Calling them out individually ("metal buckle clicks", "rings clicking along metal") gives you something that cuts through a mix. A cloth layer with no hardware tends to disappear once music comes in.
The models run on your machine, which changes the cost, the privacy and what you can automate.
Weights are fetched once. After that, generation, the library and the API all work with the network off. Everything lives in one SQLite file and one folder of WAVs under ~/.soundbox, and nothing is uploaded.
Soundbox runs an MCP server in the same process, with tools for generating and listing sounds. Generated files come back as absolute paths, so an agent can copy them into a project.
Every model's terms are shown before you download it, and non-commercial weights need an explicit confirmation. Soundbox is MIT. The licence of the model that made a sound governs what you may do with it.
claude mcp add --transport http soundbox http://127.0.0.1:17494/mcpcurl -X POST http://127.0.0.1:17494/api/generate \
-H 'Content-Type: application/json' \
-d '{"model":"audiocpp-stable-audio-3-sfx","prompt":"8-bit coin pickup blip","duration_s":1}'