the algorithm so far:
- select 3 vertices
- draw a triangle between them
- for all vertex pairs (non-triangle vertices):
-- draw a line between them
-- if line intersects with triangle plane, red
-- otherwise, green
if the line is red the two vertices are on other sides of the
triangle plane, and this triangle can't be a face, because we
want the polyhedron to be convex
to demo: press 9, press g, press space; press 9 over and over
strange behaviour with velocity.mag()
sometimes it is unbounded, sometimes it remains bounded
the issue is `project_onto_plane` mutates its first argument
(1) mutating fn yyyynnnn
(2) call fn yynnyynn
(3) use fn retval ynynynyn
(1) & (2) yynnnnnn
[(1) & (2)] | (3) yyynynyn
bounded? yy-nyn-n
the case that we want is
(1) yes
(2) yes
(3) no
or this one
(1) no
(2) yes
(3) yes