 
   # Splits the object into 2^16 vert chunks and returns the chunks
   split: () => # TODO: since each object's verts are 1:1 with indices at this point we can use monolithic subarrays here
-    console.log "splitting"
+    #console.log "splitting"
     bytesPerMesh = Math.pow(2,16) # is this even in bytes!?
     bytesPerMesh -= bytesPerMesh % 9 # Rounding the bytes per mesh down to the nearest face
 

    # Adds a face's vertices and normals to the mesh at the given index
    addFace = (face, mesh, index) -> for attr in ['vertices', 'normals']
      mesh[attr][index+j*3+k] = face[attr][j][k] for j in [0..2] for k in [0..2]
      

    # Expanding (duplicating) the normals and verts so that there is a 1:1 of verts to indices
    # This allows us to modify the normals on a per-face basis in edges and makes mesh spliting trivial

          crossProduct = cross cross(n[i], d), n[i]
          ( magnitude(d) * crossProduct[j] / magnitude(crossProduct) for j in [0..2] )
        midVerts.push v01 = hermiteSpline(0.5, v, t, fIndex)
        # TODO: these normals are probably only aproximately correct.
        # What is the proper way to calculate these??
        midNormals.push n01 = ( (n[1][i] + n[0][i])/2 for i in [0..2] )

      newFaces = for i in [0..2] # calculating the outer subdivided faces
        vertices: [ midVerts[i], midVerts[ j = (i+2)%3 ], face.vertices[i] ]
