def twisted expr t of p =
 rotated angle direction arctime t of p of p
           shifted point arctime t of p of p
enddef;
vardef rope expr c =
 save s, w, hemp, n, a, b, A;
 color hemp; hemp = 1/256 (192, 149, 82);
 w = -1; n = -1; A = arclength c; s = A/floor(A/2);
 path a[];
 for t=0 step s until A + 1: a[incr n] =
   (0,+w) twisted t-3/2s of c .. (0,+w) twisted t-1/2s of c ..
   (0,-w) twisted t+1/2s of c .. (0,-w) twisted t+3/2s of c;
 endfor
 image(for i=1 upto n:
   path b; b = buildcycle(a[i-1], reverse a[i]);
   fill b withcolor 1/2[white, hemp];
   draw b withpen pencircle scaled 1/8;
 endfor)
enddef;