Concept
This project explores how small particles in nature respond to invisible forces in their environment. I was inspired by drifting pollen, spores, and algae suspended in water. These natural elements do not move randomly. They respond to forces such as gravity, air currents, and nearby bodies.
Using the attractor and mover structure introduced in class, I reinterpreted the system as an ecological field. The attractors function as environmental centers of influence. The movers behave like pollen particles that continuously respond to these forces. Instead of presenting a physics demonstration, the system is used to generate an evolving visual pattern.
The visual accumulation of trails transforms the physical simulation into a generative design.
Code Highlight
One section I am particularly proud of is the gravitational force calculation inside the attractor. This formula controls how each particle responds to distance and mass, and it was important to balance it so that movement felt stable but still dynamic.
This part connects directly to the force and acceleration principles explored in class.
let force = p5.Vector.sub(this.pos, mover.pos); let distance = constrain(force.mag(), 20, 250); force.normalize(); let strength = (this.G * this.mass * mover.mass) / (distance * distance); force.mult(strength); return force;