applications.collages.collageAlgebra:
{
  delta = const(1/5),
  ntColour1 = const(.8),
  ntColour2 = const(.6),
   
  
  tri-outline = { polygon((-10,0),(10,0),(0,sqrt(3)*10)) },
  tri-bg = { filledPolygon((-10,0),(10,0),(0,sqrt(3)*10))[#ntColour1] },
  tri-inner = { filledPolygon((-0,0),(10,0),(0,sqrt(3)*10))[1] },
  shrink = scale(.8) . translate(0,2/sqrt(3)),
  TRI = #tri-bg + #tri-outline + #tri-inner transformed by shrink,
  tri2-bg = { filledPolygon((-10,0),(10,0),(0,sqrt(3)*10))[#ntColour1] },
  tri2-inner = { filledPolygon((-0,0),(10,0),(0,sqrt(3)*10))[#ntColour2] },
  TRI2 = #tri2-bg + #tri-outline + #tri2-inner transformed by shrink,
  sq-outline = { polygon((-10,-10),(10,-10),(10,10),(-10,10)) },
  sq-bg = { filledPolygon((-10,-10),(10,-10),(10,10),(-10,10))[#ntColour1] },
  sq-inner = { filledPolygon((0,-10),(10,-10),(10,0),(0,0))[#ntColour2] },
  sq-shrink = scale(.8),
  SQ = #sq-bg + #sq-outline + #sq-inner transformed by sq-shrink,
  
  tri = { filledPolygon((-10,0),(10,0),(0,10 * sqrt(3)))<1/2,1/2,1/2> },
  tri2 = { filledPolygon((-10,0),(10,0),(0,10 * sqrt(3)))<1/2,1/2,1/2> },
  sq = { filledPolygon((-10,-10),(10,-10),(10,10),(-10,10))<1/2,1/2,1/2> },
  
  t01 = similarity((-10,0) -> (0,0), (0,10 * sqrt(3)) -> (-10,0)),
  t02 = similarity((10,0) -> (0,0), (0,10 * sqrt(3)) -> (10,0)),
  t03 = scale(1/2) . translate(0,5 * sqrt(3)),
  t04 = similarity((10,0) -> (-5,5 * sqrt(3)), (-10,0) -> (5,5 * sqrt(3))),
  T0 = <t01,t02,t03,t04>,

  t11 = scale(1/2),
  t12 = scale(1/2) . translate(0,5 * sqrt(3)),
  t13 = map((-10,-10) -> (-10,0), (10,-10) -> (-5,0), (-10,10) -> (-5,5 * sqrt(3))),
  t14 = map((-10,-10) -> (10,0), (10,-10) -> (5,0), (-10,10) -> (5,5 * sqrt(3))),
  T1 = <t11,t12,t13,t14>,
  
  p1 = scale(1/2) . translate(-5,-5),
  p2 = scale(1/2) . translate(5,-5),
  p3 = scale(1/2) . translate(-5,5),
  p4 = scale(1/2) . translate(5,5),
  P = <p1,p2,p3,p4>,
  
  col = colourOperation(r||#delta:0,b||#delta:1),
  
  colT11 = colourOperation(r|1/2:1-#delta,b|1/2:#delta),
  colT12 = colourOperation(r|1/2:1,b|1/2:0),
  
  colP1 = colourOperation(r|1/2:0,b|1/2:1),
  colP2 = colourOperation(r|1/2:(1-#delta) / 2,b|1/2:(1+#delta) / 2),
  colP3 = colourOperation(r|1/2:1/2,b|1/2:1/2),
  colP4 = colourOperation(r|1/2:1 - #delta / 2,b|1/2:#delta / 2)
}
