RotatingTriangle

eventually I imagine this code will be factored out to some kind of
engine class, but at 44 lines, there’s no point now.