ferro Get the template

Real-time ferrofluid ยท WebGL2

Ferro.

A pool of liquid magnet that reaches for your hand. Bring the pointer close and it grows thorns. Hold, and it climbs into a crown. Let go, and it melts back into a mirror.

A glossy black pool of ferrofluid on a dark stage, risen into a crown of sharp spikes that catch white studio light

Keyboard: arrow keys move the magnet, hold Space to power it, S splashes, P pulses the field, R starts over.

Field at surface0.0mT
Spikes up0
Peak height5.0mm
Frame rate0fps

How a liquid grows thorns

01

A field with a threshold

Every spike site reads the magnet's field where it sits. Below the critical field, 9 mT here, surface tension wins and the pool stays glassy flat. Above it, the spike rises with the square root of the extra field, the same shape the real instability takes.

02

Sunflower packing

The sites sit on a golden-angle spiral, which packs them in the near-hexagonal pattern real ferrofluid settles into. Each one is a damped spring, so spikes overshoot, lean toward the magnet and jiggle as they melt.

03

A mirror you can't buy

The surface is rebuilt on the graphics card every frame, one point per pixel of a dense grid, and lit only by reflections of a studio drawn in code: overhead softbox, tall strips, one warm accent. That is where the knife-edge highlights come from.

Questions

Why does the fluid grow spikes?

A ferrofluid is oil full of tiny magnetic particles. In a strong enough field the flat surface becomes unstable and breaks into a regular pattern of peaks, because peaks let the field lines pass through more fluid. The simulation keeps a critical field: below it the pool stays flat, above it every spike rises with the square root of the extra field.

Are the readings real?

Yes. Field strength is computed from the magnet model at every spike and the highest value is shown. Spike count is the number of spikes taller than about 1.4 mm, peak height is the tallest point of the pool in millimetres, and frames per second is measured in your browser.

Does it work on a phone?

Yes. It runs on WebGL2, which every current phone and desktop browser supports. It uses a lighter surface grid on small screens, lowers its own resolution when frames run long and stops drawing when it is off screen.

Can I use Ferro on my own website?

Yes. Ferro is a website template from Apex Flow Digital. You get this page, the engine source and one config file for the colours, the magnet strength and the spike pattern. Upload the folder to any static host.