I should have given this project a different name. It is called Animus because when I started writing this code, I was trying to simulate some of the effects of the Assassins Creed memory interface, called Animus. Somehow, I got distracted and ended up making a snake. One turned into two, two turned into fifty, and suddenly this project was an exercise in learning how to make solid bodies (like snakes) keep from intersecting each other while still maintaining a natural movement.
Magnetism to the rescue, yet again. I gave each node along the snakes body its own magnetic force. Each node repels other nodes. It now is possible for a snake to tie itself in a knot, but it generally will not self-intersect.
Eventually, I stuck a couple dozen snakes in the water, attached their heads to each other, added a sine-based undulation force, and voila! Reasonably ugly jellyfish. They may be ugly, but they are audio responsive.
Published by: Robert Hodgin