anchor.diff:  
           let sg = 
               scene |> ASet.mapM ( getLodRepr viewTrafo perspective ) 
  -            //|> Sg.geometrySet IndexedGeometryMode.PointList attributeTypes
  -            |> ASet.map Sg.ofIndexedGeometry |> Sg.set
  +            |> Sg.geometrySet IndexedGeometryMode.PointList attributeTypes
  +            //|> ASet.map Sg.ofIndexedGeometry |> Sg.set
   
   
           let final =
  
positive.code: 
          let viewTrafo = DefaultCameraController.control win.Mouse win.Keyboard win.Time view
  
          let rand = Random()
          let randomPoints (bounds : Box3d) pointCount =
              let randomV3f() = V3d(rand.NextDouble(), rand.NextDouble(), rand.NextDouble()) * bounds.Size + bounds.Min |> V3f.op_Explicit
              let randomColor() = C4b(rand.NextDouble(), rand.NextDouble(), rand.NextDouble(), 1.0)
  
              IndexedGeometry(
                  Mode = IndexedGeometryMode.PointList,
                  IndexArray = Array.init pointCount id,
                  IndexedAttributes = 
                      SymDict.ofList [
                           DefaultSemantic.Positions, Array.init pointCount (fun _ -> randomV3f()) :> Array
  
negative.code: 
          let scene = 
              aset {
                  for x in 0 .. 20 do
                      for y in 0 .. 20 do
                          for z in 0 .. 20 do
                              let bounds = Box3d.FromMinAndSize(V3d(x,y,z), V3d.III)
                              yield { bounds = bounds; levels = 3; createLevel = fun level -> randomPoints bounds level ((1 <<< level)*5) }
              }
  
          let getLodRepr (vt : IMod<CameraView>) (proj : IMod<Frustum>) (g : Geometry) : IMod<IndexedGeometry> =
              let mutable current = None
              adaptive  {
                  let! vt = vt
                  let level = 
                      match V3d.Distance(g.bounds.GetClosestPointOn vt.Location, vt.Location) with
                      | v when v < 4.0 -> 0
                      | v when v < 10.0 -> 0
                      | v when v < 20.0 -> 0
                      | _ -> 0
                  match current with 
                   | Some (oldLevel,g) when oldLevel = level -> 
                      return g
                   | _ -> 
                      //printfn "%A" level
                      let g = g.createLevel level
                      current <- Some (level,g)
                      return g
  