Just the visualization part using ParametricPlot
:
recamanSequencePlot1 = ParametricPlot[
Evaluate[Map[RotationTransform[Pi/4] @
{Mean @ # + (#[[2]] - #[[1]])/2 Cos[t], (#[[2]] - #[[1]])/2 Sin[t]} &,
Partition[#, 2, 1]]],
{t, 0, -Pi},
AspectRatio -> Automatic, Axes -> False, ImageSize -> Large] &;
Using AccidentalFourierTransform's f
to generate a sequence of length k
:
k = 30;
list = Table[f[n], {n, 0, k}];
recamanSequencePlot1 @ list

With k = 100
we get

To get the fillings we can use two-parameter form of ParametricPlot
:
recamanSequencePlot2 = ParametricPlot[
Evaluate[Map[RotationTransform[Pi/4] @
{Mean @ # + (#[[2]] - #[[1]])/2 Cos[t] r, (#[[2]] - #[[1]])/2 Sin[t] r} &,
Partition[#, 2, 1]]],
{t, 0, -Pi}, {r, 0, 1},
AspectRatio -> Automatic, Axes -> False, Mesh -> None, PlotStyle ->
Opacity[.2], BoundaryStyle -> None] &;
Show[recamanSequencePlot1[list], recamanSequencePlot2[list]]

In the pictures above the increases in the sequence are shown below the diagonal and decreases above the diagonal to distinguish them visually. Change the first argument of ParametricPlot
to
Evaluate[Module[{k = 1}, Map[RotationTransform[Pi/4] @
{Mean @ # +(k=-k)Abs[#[[2]] - #[[1]]]/2 Cos[ t],k Abs[#[[2]] - #[[1]]]/2 Sin[ t]} &,
Partition[#, 2, 1]]]]
to replicate the picture in OP:

... and variations using BSplineCurve
:
Graphics[{ColorData[97][RandomInteger[{1, Length@list}]], AbsoluteThickness[4],
BSplineCurve[#]} &@{{#, 0}, {#, Subtract@##}, {#2, Subtract @ ##}, {#2, 0}} & @@@
Partition[list, 2, 1], ImageSize -> Large]

Graphics[{ColorData[97][RandomInteger[{1, Length @ list}]], AbsoluteThickness[4],
BSplineCurve[#, SplineDegree -> 1]} & @
{{#, 0}, {Mean@{##}, 1/2 Subtract@##}, {#2, 0}} & @@@ Partition[list, 2, 1]]

ListAnimate[Table[
Graphics[{Hue[#[[2, 2]]/100], Opacity[.75], AbsoluteThickness[1],
BSplineCurve[#, SplineDegree -> 1]} &@{{#, 0}, {Mean@{##}, 1/2 Subtract@##}, {#2, 0}} &
@@@ Partition[list[[;; t]], 2, 1],
ImageSize -> Large,
PlotRange -> {{0, 250}, {-50, 50}}], {t, 2, 100}]]
