applications.collages.collageAlgebra:
attributes r,g,b,force,rdest,bdest;
{
  c = const(.175),
  
  background = { filledPolygon((-8,-58),(58,-58),(58,36),(-8,36))[.8] },
  
  part = {filledCurve((-5,0) left (2,0) right (2,0),
                             (0,-5) left (0,2) right (0,2),
                             (5,0) left (-2,0) right (-2,0),
                             (0,5) left (0,-2) right (0,-2))
           <r,g,b; g=.6,rdest=1>},
  S = #part,
  A = #part,
  
  rot = rotate(135),
  init = <#background transformed by rot,rot>,
  
  f1 = translate(0,5) . scale(.8,.85) . rotate(-14) . translate(0,5),
  f2 = translate(5,0) . scale(.9) . rotate(-14) . translate(5,0),
  F = <#part,f1,f2>,
  G = <#part,f1>,
  
  col1 = colourOperation(force|#c: 1),
  col2 = colourOperation(g|#c / 2:0, rdest|#c / 2:.5, bdest|#c / 2:1),
  set = colourOperation(r|val(force):val(rdest), g|val(force):0,b|val(force):val(bdest))
}
