Mosaics
Inspired by Jean-Baptiste Etienne
from https://www.geogebra.org/m/bru68suz
Script
w = Slider(0, 1, 0.01, 1, 150, false, true, false, false)
h = Slider(0, 1, 0.01, 1, 150, false, true, false, false)
n = Slider(1, 10, 1, 1, 150, false, true, false, false)
Ln = 2...n
PointsN = Zip(Zip( (i + RandomUniform(0, w), j + RandomUniform(0, h) ), i, Ln ), j, Ln )
PolyN = Zip( Zip( Polygon( Element(PointsN, i, j), Element(PointsN, i, j+1), Element(PointsN, i+1, j+1), Element(PointsN, i+1, j) ), i, Ln ), j, Ln )
CN = Zip( Zip( Centroid( Element(PolyN, i, j) ), i, Ln ), j, Ln )
s = Slider(1, 8, 1, 1, 150, false, true, false, false)
Ls = 1...(s-1)
Mosaic = Zip( Zip( Zip(Dilate(Element(PolyN, i, j), k/s, Element(CN, j, i)), k, Ls), i, Ln), j, Ln )