import org.openrndr.application import org.openrndr.color.ColorRGBa import org.openrndr.draw.LineJoin import org.openrndr.extensions.SingleScreenshot import org.openrndr.extra.noise.simplex import org.openrndr.shape.contour fun main() = application { configure { width = 720 height = 720 } program { extend { drawer.stroke = null drawer.fill = ColorRGBa.PINK drawer.lineJoin = LineJoin.ROUND for (y in 0..height step 20) { val c = contour { moveTo(0.0, 0.0) for (x in 0..width step 40) { val cx = simplex(y, x * 0.1 + seconds) * 10.0 + x val cy = simplex(y + 3000, x * 0.1 + seconds) * 20.0 val px = simplex(y + 8000, x * 0.1 + seconds) * 10.0 + x val py = simplex(y + 6000, x * 0.1 + seconds) * 20.0 continueTo(cx, cy, px, py) } } val points = c.equidistantPositions(50) drawer.circles(points, 10.0) drawer.translate(0.0, 20.0) } } } }