This was really fun. Here’s what I came up with.
I’ll post the code in the library at the end of the week.