\documentclass[border=5mm]{standalone}
\usepackage{luamplib}
\begin{document}
\mplibtextextlabel{enable}
\begin{mplibcode}
beginfig(1);
  drawoptions(withpen pencircle scaled 1/4 withcolor 1/4);
    path s[]; s0 = unitsquare; 
    fill s0 withcolor 1/2[2/3 blue, white]; draw s0;
    numeric a, b, t, n; a = 1; b = 1; n = 11;
    for i = 1 upto n:
      t := b; b := b + a; a := t;  % Fibonacci sequence
      s[i] = unitsquare scaled a;
      s[i] := s[i] shifted (point i of s[i-1] - point i-1 of s[i]);
      fill s[i] withcolor (1/2 + i/32)[2/3 blue, white];
      draw s[i];
    endfor
    % cross hairs
    for i = n-1 upto n:
      draw point i-2 of s[i-2] -- point i of s[i];
    endfor
  drawoptions();
  % Draw the spiral as a red arrow
  drawarrow origin for i=0 upto n: .. point i of s[i] endfor 
    withcolor 2/3 red;
  % show the Fibonacci sizes for the larger boxes
  for i = 5 upto n:
    label(TEX(decimal arclength subpath (0, 1) of s[i])
      scaled 0.8 rotated angle point n of s[n], center s[i]);
  endfor
  % Rotate the whole picture to show off the spiral
  currentpicture := currentpicture rotated - angle point n of s[n]; 
endfig;
\end{mplibcode}
\end{document}

