applications.collages.collageAlgebra:
{
  ntColour = const(.8),

  tip = const(8.66),
  displace = const(.7),

  triangle = { filledPolygon((0,0),(10,0),(5, #tip)) },
  sample-outline = { polygon((0,0),(10,0),(5, #tip)) },
  sample-filled = { filledPolygon((0,0),(10,0),(5, #tip))[#ntColour,#ntColour,#ntColour] },
  sample = #sample-filled + #sample-outline,
  S = #triangle,
  
  bubble = { closedCurve((0,0) right (4,-4),
                         (10,0) right (-3,5),
                         (8, #tip) left (10,0)) },
  
  f1 = map((0,0) -> (0,0), (10,0) -> (5,0), (5, #tip) -> (2.5, #tip / 2) ),
  f2 = map((0,0) -> (5,0), (10,0) -> (10,0), (5, #tip) -> (7.5, #tip / 2) ),
  f3 = map((0,0) -> (2.5,#tip / 2), (10,0) -> (7.5, #tip / 2), (5, #tip) -> (5, #tip) ),
  F = < f1, f2, f3 >,
  
  g1 = map((0,0) -> (0,0), (10,0) -> (5,0),
           (5, #tip) -> (2.5 + #displace * cos(30), #tip / 2 - #displace * sin(30)) ),
  g2 = map((0,0) -> (5,0), (10,0) -> (10,0), (5, #tip) -> (7.5, #tip / 2) ),
  g3 = map((0,0) -> (2.5 + #displace * cos(30), #tip / 2 - #displace * sin(30) ),(10,0) -> (7.5, #tip / 2), 
           (5, #tip) -> (5, #tip) ),
  G = < g1, g2, g3 >,
  
  h1 = map((0,0) -> (0,0), (10,0) -> (5,0),
           (5, #tip) -> (2.5 - #displace * cos(30), #tip / 2 + #displace * sin(30)) ),
  h2 = map((0,0) -> (5,0), (10,0) -> (10,0), (5, #tip) -> (7.5, #tip / 2) ),
  h3 = map((0,0) -> (2.5 - #displace * cos(30), #tip / 2 + #displace * sin(30) ), (10,0) -> (7.5, #tip / 2),
           (5, #tip) -> (5, #tip) ),
  H = < h1, h2, h3 >,
  
  i1 = map((0,0) -> (0,0), (10,0) -> (5,0), (5, #tip) -> (2.5, #tip / 2) ),
  i2 = map((0,0) -> (5,0), (10,0) -> (10,0),
           (5, #tip) -> (7.5 - #displace * cos(30), #tip / 2 - #displace * sin(30)) ),
  i3 = map((0,0) -> (2.5, #tip / 2), (10,0) -> (7.5 - #displace * cos(30), #tip / 2 - #displace * sin(30)),
           (5, #tip) -> (5, #tip) ),
  I = < i1, i2, i3 >,
  
  j1 = map((0,0) -> (0,0), (10,0) -> (5,0), (5, #tip) -> (2.5, #tip / 2) ),
  j2 = map((0,0) -> (5,0), (10,0) -> (10,0),
           (5, #tip) -> (7.5 + #displace * cos(30), #tip / 2 + #displace * sin(30)) ),
  j3 = map((0,0) -> (2.5, #tip / 2), (10,0) -> (7.5 + #displace * cos(30), #tip / 2 + #displace * sin(30)),
           (5, #tip) -> (5, #tip) ),
  J = < j1, j2, j3 >,
  
  k1 = map((0,0) -> (0,0), (10,0) -> (5,#displace), (5, #tip) -> (2.5, #tip / 2) ),
  k2 = map((0,0) -> (5,#displace), (10,0) -> (10,0), (5, #tip) -> (7.5, #tip / 2) ),
  k3 = map((0,0) -> (2.5,#tip / 2), (10,0) -> (7.5, #tip / 2), (5, #tip) -> (5, #tip) ),
  K = < k1, k2, k3 >,
  
  l1 = map((0,0) -> (0,0), (10,0) -> (5,- #displace), (5, #tip) -> (2.5, #tip / 2) ),
  l2 = map((0,0) -> (5,- #displace), (10,0) -> (10,0), (5, #tip) -> (7.5, #tip / 2) ),
  l3 = map((0,0) -> (2.5,#tip / 2), (10,0) -> (7.5, #tip / 2), (5, #tip) -> (5, #tip) ),
  L = < l1, l2, l3 >
  
}
