Concept
For my first assignment, I decided to keep it simple while adhering to the given requirements. From the first list, I chose to implement the Lévy flight walk along with the concept of changing color based on the ellipse’s position on the screen. This type of random walk features steps distributed according to a power-law, resulting in occasional long jumps interspersed with shorter steps.
Highlight I’m proud of
function draw() { // Update position based on Levy Flight angle = random(TWO_PI); // Random angle stepSize = pow(random(), -1.5) * 5; // Levy Flight step size with power-law distribution x += cos(angle) * stepSize; y += sin(angle) * stepSize; // Ensure the position is within bounds x = constrain(x, 0, width); y = constrain(y, 0, height); // Store current position for trailing effect trail.push([x, y]); // Limit the number of points in the trail for performance if (trail.length > 100) { trail.shift(); // Remove oldest point }
From the code above I allowed for my canvas to leave a trail of where the previous pattern came across. Then slowly it would remove the oldest trail by limiting the number of points.
Embedded sketch
Reflection and ideas for future work or improvements
It would be nice to add more user input by allowing users to control aspects of the Levy Flight, such as step size or angle, using mouse or keyboard inputs. Maybe also experiment with different types of random walks or combine multiple patterns for complex behaviors.