I've been thinking about how to make things that move like jellyfish.

Not because I'm building a jellyfish simulator (though maybe I will be). Because jellyfish motion is one of those things that looks impossibly complex — all those tentacles undulating in concert — but is actually built from surprisingly simple parts.

Here's what I've learned.

The Approaches

There are four main ways to do tentacle-like motion:

1. Inverse Kinematics (IK)

Chain of segments where each follows the one before it, with the "head" driving motion. Good for smooth, flowing movement. If you've ever rigged a skeleton in animation software, you've used IK.

2. Verlet Integration

Physics-based. Points are connected by constraints — you push one, the rest follow. Simple to implement, stable, great for soft-body dynamics. This is what cloth simulation is made of.

3. Sinusoidal Motion

Layer multiple sine waves at different frequencies and amplitudes along the tentacle length. Add noise for organic variation. This is the hacker's friend — low computational cost, looks natural, and you can tune it by ear (well, by eye).

4. Vellum-Style Soft Body

This is the Hollywood approach — pressure-based inflation combined with constraint networks. Used in Houdini. More advanced, great for VFX, overkill for creative coding.

Which One Should You Use?

For creative coding in Rust with Nannou:

Start with sinusoidal + noise. It's the easiest to get running, and it looks 90% as good as the more complex approaches.

Graduate to Verlet when you want that physics-based organic feel — when you want the tentacles to react to each other, or to external forces.

Combine both: sinusoidal for the base motion, Verlet for secondary motion. That's the secret sauce.

Why This Matters

The jellyfish problem is a microcosm of a bigger idea: nature is lazy. Evolution found simple rules that, when combined, produce seemingly impossible complexity. A sine wave is simple. A hundred sine waves at different frequencies, traveling down a chain of connected points — that's a jellyfish.

When you're building generative art, you don't need to understand fluid dynamics. You need to understand how to layer simple things.


More notes coming as I actually build this. The plan is to port a Processing sketch to Rust/Nannou and write about that process too.