anchor.diff:                          rnd.NextDouble() * 10.0 - 5.0,
                           rnd.NextDouble() * 10.0 - 5.0 )
               let trafo = Trafo3d.Scale 0.1 * Trafo3d.Translation pos
  -            let ig = Primitives.unitCone (rnd.Next(10, 2000))
  +            let ig = Primitives.unitCone (rnd.Next(1000, 50000))
               geometries.Add (ig, trafo) |> ignore
   
           for i in 0 .. 10 do
  
positive.code:                 
          )
  
          let geometriesLazy = 
              geometries |> ASet.map (fun (ig, trafo) -> ig
                                                          |> AdaptiveGeometry.ofIndexedGeometry [Sem.Hugo, Mod.constant trafo :> IMod ]
                                                          |> pool.Add)
  
          // initial evaluation
          ASet.toArray geometriesLazy |> ignore
  
negative.code:     open FShade
      module Sem =
          let Hugo = Symbol.Create "Hugo"
          let HugoN = Symbol.Create "HugoN"
  
      type HugoVertex = 
          {
              [<Semantic("Hugo")>] mt : M44d
              [<Semantic("HugoN")>] nt : M33d
              [<Position>] p : V4d
              [<Normal>] n : V3d
          }
  
      let hugoShade (v : HugoVertex) =
          vertex {
              return { v 
                  with 
                      p = v.mt * v.p 
                      n = v.nt * v.n
              }
          }
  
  