Thanks for dabbling. This should give me some things to kick around!! Looks like there will be some caffeine and late nights in my future.
I’m not remotely concerned about fps with 24 pixels, which gives me some freedom to implement different patterns in different coordinate systems, and if the pattern is non-cartesian just hardcode a second map structure within each pattern. It’s not terribly portable but this is a unique structure that will have non-portable patterns anyway. I can write a python script or something to calculate coordinate and just copy/paste a block structure into each pattern.
So going to higher pixel counts “solves” some of these issues but also just makes it a generic sphere. Which is still delightful. But tosses a bit of the unique geometry out the window.
I have two short term options to solve this for the next project - each face should have 5 pixels instead of one with interior 3d printed walls for isolation. Then I have 24x5 = 120 leds in a sphere. And each face of the pyramid is a unique color, instead of the entire pyramid.
Or, I can go for the pentagonal hexecontahedron, 60 faces, 1 led per face, or 5 led for face with pyramids and 60x5 = 300 led. This probably eliminates the possibility of portable and power unless I go with very low brightness, but maybe I want to do that anyway - who wants 300 fully lit LED in your face? It’s essentially the same tradeoff as higher density led strips. What you sometimes want is the smooth animation not the higher brightness.
I’ve only been fiddling with this code for 5 days and my wife just asked why the 3d printer isn’t busy making noise and what is the next structure going to be. She’s such a jerk sometimes.
EDIT: Incidentally, the 192 led sphere that Chris made here: 3D printed ball - Show and Tell - ElectroMage Forum shows the point at which higher density LED polyhedra start to look and behave like a sphere from a pattern perspective. I guess it’s somewhere between 100 and 200 leds. You can still see in Chris’ build that lines are choppy and low-res.