anchor.diff:  
       let inline isNan (v : V3f) = 
           v.X.IsNaN() || v.Y.IsNaN() || v.Z.IsNaN()
  -
  -    let inline triangleIsNan (t:Triangle3d) =
  -        t.P0.AnyNaN || t.P1.AnyNaN || t.P2.AnyNaN
   
       let createIndex (vi : Matrix<V3f>) =
           let dx = vi.Info.DX
  
positive.code:             positions.Data |> Array.map (fun x ->  x.ToV3d() |> matrix.TransformPos)
  
          let invalidIndices = getInvalidIndices data
          let index = computeIndexArray (positions.Size.XY.ToV2i()) true (Set.ofList invalidIndices)
                
          let triangles =             
              index 
                  |> Seq.map(fun x -> data.[x])
                  |> Seq.chunkBySize 3
                  |> Seq.map(fun x -> Triangle3d(x))
                  |> Seq.filter(fun x -> triangleIsNan x |> not) |> Seq.toArray
  
          triangles
  
  
negative.code:       indexArray |> Array.concat
  
      let getInvalidIndices (positions : V3d[]) =
        positions |> Array.mapi (fun i x -> if x.AnyNaN then Some i else None) |> Array.choose id
      
      // load triangles from aaraFile and transform them with matrix
      let loadTrianglesFromFile (aaraFile : string) (matrix : M44d) =
  