I just did this too!
I made it for a friend as a gift, and didn’t take good pictures, sorry.
I used 12 radials (6 x 1m diameter strips @ 144/m density). With 864 pixels, a V3, and the pro expander, I’m getting 30-55 FPS. The $70 fan that was in stock locally rotates at 50-140 RPM depending on its speed setting; on high speed I’m getting ~17 distinct “slice” segments. On medium speed, ~90RPM, I get ~26 arcs/revolution (14 degree resolution), and this seems ideal for 12 radials. On high, it also oscillates a bit too much such that pixels aren’t a circle (to @zranger1’s point). On low speed, 50 RPM, it doesn’t shake at all, but the arcs don’t connect to be visually continuous.
I powered it with a LiPo because that was simpler than figuring out how to mechanically set up the $50 slip ring I bought. I can enthusiastically recommend these channels and essentially-a-ND-filter lenses for a project like this. This is a great $16 lightweight buck converter - Up to 20A @5V, about the size of a pack of gum.
I’ve also been in touch with Christopher, because Paraluna was my inspiration for this gift for my friend (we were at BM 2018 together).
My takeaways:
- Half the pixels is twice the frame rate; twice the arc resolution. Consider 60/m strips over 144/m.
- 12 radials with a ceiling fan is a good starting point at medium speed (90 RPM)
- Something to try in the future for PoV is multiple Pixelblaze sync’d with the sync feature. In this way you can scale framerate, and thus the minimum outer radial arc resolution, with linear cost. I think Ben uses an NTP-like protocol for sub-ms sync precision.
Here’s my code that adapted most Pixelblaze default patterns to be either radial-symmetric or spin-RPM aware. I’m happy to share these ~40 adapted patterns, but please note I was in a rush and it wasn’t intended for posting publicly, so the comments are sparse.
When I get to take more proper pictures, I’ll post them.