I'm trying to write some code to manipulate .STL ASCII files, and I'm trying to fully understand the file format. From what I've seen, the content of the "facet normal" line of each triangle has no effect on the triangle drawn. It also does not have any effect on which side of the triangle is considered the "outside", which is done by reversing the order of the vertices.
This triangle
facet normal 1 1 1
outer loop
vertex -1 1 1
vertex 1 -1 1
vertex 1 1 -1
endloop
endfacet
is identical to this triangle
facet normal -1 -1 -1
outer loop
vertex -1 1 1
vertex 1 -1 1
vertex 1 1 -1
endloop
endfacet
which is also identical to this triangle.
facet normal 1 0 0
outer loop
vertex -1 1 1
vertex 1 -1 1
vertex 1 1 -1
endloop
endfacet
Given that having an explicit normal vector is redundant information mathematically, and that it's not even used in the drawing of the solid anyway, why is it in the file format? And if it's used for something, what is it for?
EDIT: I should add that I'm opening these files in Autodesk Meshmixer.