created with p5.js
Click to Enlarge
Based on Daniel Shiffman's Perlin Noise Gif Loop Tutorial, this animation creates a perfect loop, despite being based on random numbers, using a two-dimensional Perlin Noise field.
It uses a three-dimensional Perlin Noise field, 2 dimensions to create a seamless loop and the third dimension to differentiate the different circles.
Inspired by Noise GIF Loops Coding Challenge.