Very neat! Only a few minor things:
I would have computed verts like this:
verts = Normalize /@ N[PolyhedronData[{"Dipyramid", 3}, "VertexCoordinates"]].RotationMatrix[-?/6, {0, 0, 1}]
(note the use of the inverse/transpose, since I'm post-multiplying instead of pre-multiplying)
- As I pointed out in one of your previous posts, if your are already using inexact numbers,
NullSpace[] will automatically return orthonormalized vectors (via SVD), so b = NullSpace[{#}] & /@ p suffices.
Otherwise, nicely done. :)