dynamic scaling based on framerate

a bit chunky right now but seems to work. pushing for broader testing.
(THIS IS GREAT!)