Modify the code in DisplayNormals. py to calculate and use the median of each triangle like this:
...
for $t$ in range $(0$, len(self.triangles), 3$)$ :
vertex1 $=$ self.vertices [self.triangles [t]]
vertex2 $=$ self.vertices [self.triangles $[t+1]]$
vertex3 = self.vertices [self.triangles [t + 2]]
$\mathrm{p}=$ pygame.Vector3(vertex1[0] - vertex2[0],
vertex1[1] - vertex2[1],
vertex1[2] - vertex2[2])
$q=$ pygame. $\operatorname{vector3}($ vertex $2[0]$ - vertex3 [0],
vertex2[1] - vertex3[1],
vertex2[2] - vertex3[2])
norm = cross_product $(p, q)$
\# find median
midpoint $=$ vertex $3+q * 0.5$
$\mathrm{v}=($ midpoint - vertex 1$) * 2 / 3$
centroid $=$ vertex $1+v$
self.normals.append ((centroid, centroid + norm))