GeoGebra Menger Sponge in a tweet:

A1 = {Polygon((0, 0), (9, 0), 4)}

A2 = Join(Zip(Join(Sequence({Polygon(Point(A, t), Point(A, t + 1 / 12), 4), 
        Polygon(Point(A, t + 1 / 12), Point(A, t + 1 / 6), 4)}, t, 0, 3 / 4, 1 / 4)), A, A1))

B2 = Join({Zip(Polygon((2Vertex(A, 1) + Vertex(A, 3)) / 3, 
        (2Vertex(A, 2) + Vertex(A, 4)) / 3, 4), A, A1)})

Copy row 2 into row 3, row 4 . . .

A1: {Polygon[(0, 0), (9, 0), 4]}
A2 = Join(Zip[Join[Sequence[{Polygon[Point[A, t], Point[A, t + 1 / 12], 4], Polygon[Point[A, t + 1 / 12], Point[A, t + 1 / 6], 4]}, t, 0, 3 / 4, 1 / 4]], A, A1])
B2 = Join({Zip[Polygon[((2 * Vertex[A, 1]) + Vertex[A, 3]) / 3, ((2 * Vertex[A, 2]) + Vertex[A, 4]) / 3, 4], A, A1]})
A3 = Join(Zip[Join[Sequence[{Polygon[Point[A, t], Point[A, t + 1 / 12], 4], Polygon[Point[A, t + 1 / 12], Point[A, t + 1 / 6], 4]}, t, 0, 3 / 4, 1 / 4]], A, A2])
B3 = Join({Zip[Polygon[((2 * Vertex[A, 1]) + Vertex[A, 3]) / 3, ((2 * Vertex[A, 2]) + Vertex[A, 4]) / 3, 4], A, A2]})
A4 = Join(Zip[Join[Sequence[{Polygon[Point[A, t], Point[A, t + 1 / 12], 4], Polygon[Point[A, t + 1 / 12], Point[A, t + 1 / 6], 4]}, t, 0, 3 / 4, 1 / 4]], A, A3])
B4 = Join({Zip[Polygon[((2 * Vertex[A, 1]) + Vertex[A, 3]) / 3, ((2 * Vertex[A, 2]) + Vertex[A, 4]) / 3, 4], A, A3]})