experiments with PShapes, beginContour(), quadraticVertex() textures, offScreenBuffers, nested graphics layers, feedback loops, etc.
From Rune's book:
While we can draw most shapes with vertex(), quadraticVertex(), and bezierVertex(), these functions won't allow us to create shapes with holes. In P5.js, a hole is called a contour, and you can draw shapes with contours using the beginContour() and endContour() functions. In essence, the beginContour() function instructs P5 that you are starting a new shape that will be subtracted from your main shape. Like beginShape(), you use the vertex functions to draw your contour, and use endContour() to end the contour.
- Shiffman - Custom Shapes - p5.js Tutorial
- Rune's Programming Design Systems
- Centripetal Catmull–Rom spline
- A Brief History of Graphics
- Making efficient Platonic and Archimedean Shapes in a Kaleidoscope - vid by 'Stand-Up Maths'
- Deltoidal Kaleidoscopes - Nadal (2022) Bridges Conference
- Josep Rey Nadal, listing from the Bridges Conf
- Github - creatingSymmetries
- Further Hyperbolic Kaleidoscopes
- Geometry of Kaleidoscopes with Periodic Images
- Variations on the Hyperbolic Kaleidoscope
- Elliptic Kaleidoscopes
- Combinations of Mirror Symmetries
- How to Program Fast Kaleidoscopes
- A Hyperbolic Kaleidoscope
- Apollonian gasket as a spherical fractal with tetrahedral symmetry
- Regular polygons as kaleidoscopes