Hello

f0 to f5 must be normalized before averaging them to get v0Normal.

Even if the points are aligned on x and z axes, the triangles have generally differents areas, so the norms of f0 to f5 are generally not the same.

( according to the cross product properties, the norm of f0 is 2x the area of the triangle (v0,v1,v2) )

f0=normalize(crossProduct(v1-v0,v2-v0)) . . . v0Normal=(f0+f1+f2+f3+f4+f5)/6

should work better

I noticed a confusion between your formulas and your scheme, for example according to your scheme f0 should be the normal of the triangle (v0,v1,v**6**), not (v0,v1,v**2**). Hoping this is just wrong typo ?