Mathematica code:

Tile[k_, rx_, ry_, x_, y_, r_] :=
Table[
Translate[
Rotate[
{AbsoluteThickness[k],
Circle[{i, i}, {rx, ry}, {i*Pi, Pi/2 + i*Pi}]},
r, {.5, .5}],
{x, y}],
{i, 0, 1, 1}]

rr[Q_] := (SeedRandom[Q]; RandomReal[])

GCOS[k_, rx1_, rx2_, ry1_, ry2_, X_, Y_, Q_, t_] :=
 Graphics[
Table[
Tile[k,
 .75 + .25 Cos[2 Pi*Mod[rx1 + rx2*x/X + t, 1]],
 .75 + .25 Cos[2 Pi*Mod[ry1 + ry2*y/Y + t, 1]],
 x, y, Floor[3*rr[Q*x*y]] Pi/2],
{x, 1, X, 1}, {y, 1, Y, 1}],
ImageSize -> 500, PlotRange -> {{1, X + 1}, {1, Y + 1}}]

Manipulate[
GCOS[2, .5, .5, .5, .5, 30, 42, 4, t],
{t, .05, 1, .05}]

Mathematica code:

ID = ImageData[
Binarize[Rasterize[
Import["Erwin.jpg"],
RasterSize -> 100], .7],
DataReversed -> True]

Tile[k_, rx_, ry_, x_, y_, r_] :=
Table[
Translate[
Rotate[
{AbsoluteThickness[k],
Circle[{i, i}, {rx, ry}, {i*Pi, Pi/2 + i*Pi}]},
r, {.5, .5}],
{x, y}],
{i, 0, 1, 1}]

Parquet[IS_, X_, Y_, u_, v_, k_, rx1_, rx2_, ry1_, ry2_, f_, t_] :=
Graphics[
Table[
Tile[
k,
rx1 + rx2*x/X,
ry1 + ry2/2*(1 + Sin[2 Pi (f*y/Y - t)]),
x, y,
ID[[1 + v*y, 1 + u*x]] Pi/2],
{x, 3, X, 1}, {y, 5, Y, 1}],
ImageSize -> IS, PlotRange -> {{3, X + 1}, {5, Y + 1}}]

Manipulate[
Parquet[500, 56, 60, 2, 2, 2, .5, 0, 0, .5, .5, t],
{t, 0, 17/18, 1/18}]

The new issue of DIY is out now!

Features cover stars Fall Out Boy talking about their hiatus, as well as FIDLAR taking over the UK, Peace in Brighton, The Flaming Lips’ Wayne Coyne being suitably strange, and much, much more…

Read on DIY, find one free at your local stockist, or order direct online.