Created mostly as a byproduct of teaching myself new tools in Fusion360.
I use the little ws2811 12mm pixels for these:
https://smile.amazon.com/Diffused-Digital-Pixels-Lights-Addressable/dp/B00B4UKG2W?sa-no-redirect=1 - mine fit perfectly, but you might print one to verify fit with your printer before printing a big batch of these.
They assemble with zipties at the midpoint of each side and can be used to create a relatively sturdy mesh. I'm just using some small clear zipties I had laying around.(1mmx2.5mmx100mm) but I could have gotten away with much shorter ones. I trimmed a lot of ziptie plastic into the trash.
I'm adding a model for a combined version that I'm currently printing for Flipside. I'm digging a hexagonal infill at around 20% on this, but you're going to have to experiment with slicer settings. I've printed this with 4 brands of "white" PLA and all 4 have different translucency, different color shift, etc. It's very difficult to colormatch cheap PLA. You've been warned.
I'm just driving them from an arduino nano with about a dozen patterns I wrote using the excellent FastLED library. I just use the nano reset button to advance the pattern. I've also attached the box I stuck my nano in.
Careful about going too low on infill. One of my earlier attempts at 10% was far too weak on the ziptie mounts. If I had a slicer that supported different infill by area, I'd probably do 5-10% inside the lens and 50-60% in the ziptie mounts, but alas- I settled on 20% personally.
Also, I had some trouble getting them off the bed at first. Spritzing the bed with isopropyl helped a lot. Anytime there's a large flat area like this and it's hanging on tight and you want to get it off without ruining it, isopropyl is your friend.
Not much to say, I printed these, picked them up, and started using them.
I did want to congratulate my Prusa on printing 19 of the 20 despite one of the middle objects failing shortly after starting the print. I woke up to find it almost done and not really caring that one of the objects had come free from the bed and was making a mess of itself. Never seen a bed full of parts work fine after a failure on one of them, especially not that early in a print.
There's no good reason you couldn't make these tesselate in some other shape or size. 19 makes a regular hexagon about 20cm (8") across.
The easy version of the code is up here:
It's super simple. You just connect a 5V source to your nano and your lights (don't forget to tie the grounds together) and connect the light data pin to digital 3. No further circuitry needed. You might need to tweak the color order of your LEDs at the top of the arduino sketch. I started from the center pixel as  on the strand and spiraled out from there, which matters to your sketch if you run my code (it determines where the various sub-hexagons are through a manual map). If you don't see random 7-hex hexagons forming in the sectionals() pattern, check your wiring against my mapping diagram (map.png attached). If you just came back having built this before, it's not you, it's me. I rewired my panels for easier reach because I got some LEDs in with shorter wires and the original mapping was too much of a stretch.
This sketch also uses the reset button on the arduino to advance the pattern.
I have some more complex stuff going on in:
https://github.com/bobiam/hexalenses/blob/master/hexalenses.ino - but it'll require 4 buttons wired into your circuit and it's a little more frustrating to work with.
Fusion 360 - I was mostly just poking around in some tutorials and made this.
Here's the model if you want to poke at it. I'm really just learning Fusion360, so tips are super appreciated in the comments if you see something I've done that's way out of whack/could have been easier some other way/etc. Seriously, feel free to even say "Hey, you should look into fritzlflinging" or whatever if there's a Fusion360 way of doing something I'm missing out on. I'm happy to go watch more tutorial videos. There's just so much in this app that I'm sometimes overwhelmed trying to figure out what to learn next.