Every strand is a chain of six point masses anchored to a conducting scalp. Charge Qtotal spreads evenly over the strands and, along each strand, evenly over its segments — exactly what happens on a real conductor, where like charges push apart until they are as far from each other as the geometry allows (electrostatic equilibrium).
Each pair of segments on different strands repels with the real inverse-square law:
F = k · Q1 · Q2 / r² (directed along the line joining them)
That force is summed over every cross-strand pair, every frame — not a canned "flare" animation. Two more real forces complete the model per segment:
- Gravity — pulls every free segment down, which is why low-charge hair still sags.
- Bending stiffness — a restoring force that resists kinking away from the strand's own previous direction, standing in for a real hair fiber's flexural rigidity.
As Qtotal rises, the repulsion term grows relative to gravity and stiffness, and the strands splay outward and stand up — the same reason your hair rises near a charged Van de Graaff dome. Grounding (the discharge button, or bringing the probe close) drains Qtotal toward zero and gravity wins again.