Mathematica code:

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}, {iPi, Pi/2 + iPi}]}, 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 + rx2x/X, ry1 + ry2/2(1 + Sin[2 Pi (fy/Y - t)]), x, y, ID[[1 + vy, 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}]