@alessandrolai I think it could be achieved without venturing into implementation.
It's super rough (I threw it together in the last 5–10 minutes), but here's a write-up that hopefully explains enough of it. It's concept I was going to explore anyway.