Can we cleanly and efficiently detect changes in commands? I think so. Is it the most robust, centralized, and future-proof place to do detection? I think so. Will some users also want higher-level coarse-grained checks that can fully eliminate the render loop in niche cases? I think so.
Ok, that definitely sounds worth investigating.
To my way of thinking, though, stopping the render loop entirely is pretty valuable, and we should do it whenever we can. Obviously there will be a lot of cases where we can’t. I’m guessing that’s what you meant by niche - it’ll be rare-ish that can fully stop it?
I also want to try dynamically adjusting the frame rate in the cases where we do need to render. When interacting with the globe we want a smooth 60 FPS. Otherwise, we can probably get away with 30. With a real-time clock, 5-10 might be plenty for most applications.