Spirograph (Blender Geometry-Nodes)
Blender geometry-nodes setup for spirograph simulation.
A spirograph is a drawing tool that produces geometric patterns based on mathematical roulette curves. This setup is inspired by this drawing tool and simulates the behavior of curves interacting with each other and leaving a trail. Instead of using existing equations, we simply simulate the behavior, my translating and rotating curves.
Disclaimer: this setup requires to play around with nodes and parameters yourself, and doesn't provide a fully polished interface for all possible spirograph configurations. You will need to get your hands dirty and experiment, while leveraging the utilities already provided.
This setup has been tested with Blender >=4.0.
For any inquiries or feedback, feel free to reach out on Twitter.
Summary
The Spirograph node-tree is the entry-point setup, just apply it to any object (as it doesn't use the input geometry at all, and instead starts from a new single point). You can then control the resulting material and curve profile radius. Sim Sub Steps allows to control the "speed" of the animation, the higher this number the more simulation steps will be executed at each frame.
From here, the Spirograph Setup node-tree is the one to play around with to obtain different results. The idea is that at each step we traverse a curve and sample the current position to leave a trail. This operation can be chained, moving curves along curves sequentially, and then sampling the last curve point to build the trail of the spirograph. You can chain multiple circles together (see Circles group) or combine circles and lines. For each you can customize parameters like Period or Translation to obtain different effects, especially when leveraging a Repeat Zone.