Very cool. 5-fold symmetry on the PCB to use up the board allowance is particularly neat.
A trick that poor hobbyists learn early on is to make pads a little larger than necessary for SMT parts so you've got somewhere to wick solder onto. Neopixels (5050 LEDs) are reasonable to hand-solder since the pads extend up the sides of the package, but you can also do QFNs with a bit of practice by placing a big via to get to the central pad from underneath.
Love how the 5 PCBs slot into each other to form the final shape.
With respect to the assembly: do yourself a massive favor and let the PCB fab also assemble the LEDs. With a simple bill of materials like this it will add very little cost, it saves you a _lot_ of time, and it might also reduce the chance of component damage from adding too much heat or from accidental ESD strikes. (I don’t know how much these Neopixels can handle, though.)
I'll bet there's some creative board layout so that the relevant controller IC and supporting passives can be soldered onto the back of one of the 5, then have solder jumpers or some such to actually connect it into the circuit. That way, you're not adding miles of unused trace to an active bus.
Of course, having a 5x PCB fab, but 4x+1 assembly would probably double the cost for a single turn of the device.
I would love to hear more about the process of making 5-fold symmetry work for board layout. That sounds maddening to get right.
As long as you can design the outline as a vector file somewhere else, it's easy enough to import as a board outline and then lay out on top of it. I also get the lure of assembly these days, but I would hand-solder a board like this for a one-off art project. Call me old fashioned, but I'm confident enough with soldering that I'd estimate a couple of hours to assemble and I like buying domestic which is less economical than the JLPCB special. If people started to ask for kits though...
I think your idea is pretty sound if you connect all but one of the boards in a ring and use a jumper for the control section.
I could go either way on hand-soldering a single assembly. But doing this more than once would be torturous.
I can only go so many days carefully monitoring diet and minimizing stimulant intake to minimize associated tremors. And I don't have rework microscope, so my eyes would definitely suffer.
author here, good digging! I added the MIT license.
Getting 5-fold symmetry to work was tricky, but the repo you found has the processing sketch where I figured it out. I basically took the point generation process I described and rotated it upon itself 5 times. I tested this with different radial symmetry numbers actually, and 5 also happened to look the best and also was convenient for manufacturing the PCBs.
Then I had AI add the ability to rotate a bounding rectangle for one 'quintant' around the shape, and found the division of cells which minimized the area, since PCB cost scales with that.
Friend, if you can find one, get yourself a Fadecandy board. Maybe not that easy since it's technically discontinued. The dithering gives the smoothest / sexiest fading possible.
I had this concern at first, but using a glue stick seemed fine. The gluing doesn't have to be extensive either, since the paper gets clamped between the plastic parts when I screw it together.
I took the very thin 3D printed cell outline shape, a grey screenshot in my post, and used it to trace the mulberry paper. Then cut and glued paper onto the bottom of that cell outline, and screwed the outline plate into the main assembly.
This is by far one of the biggest areas where I could improve the design. I'm not happy with how fragile it is. The good thing about using just paper screwed from the top is it's thin enough to prevent light bleeding between cells.
The geometry is really beautiful and the 3D print work and Led placement is also really good. Thanks for sharing the project, it's inspiring. I too have a sense of enjoyment from pulsating LEDs. I'm not so interested in the audio component though, I always struggle to link the audio to the lights.
that's really cool and somewhat burries the lead IMO that embedded rust wasmi runtime & loading 3rd part displays us a very powerful pattern. I hadn't seen fuel before but metering loading and frame time makes sense, better that arbitrary timeouts.
Phyllotaxis spirals (derived from the golden angle) make such an elegant coordinate space for radial audio visualization because they avoid the density distortion of concentric circular rings.
The trickiest part in these builds is usually balancing transient response with temporal smoothing so the LEDs don't devolve into jittery noise during busy frequency passages. Curious if you're doing per-bin decay filters on the FFT or handling dynamic gain normalization upstream?
I'm still not perfectly happy with the audio response, tbh. But it mostly suffices.
I experimented with both approaches, and landed on mixing the band energy normalized by global energy vs. per-bin max energy, with a very arbitrary coefficient that seems to work. I also keep a few copies of the levels per band with different rates of decay, so I can add features in the sketches which should be sensitive to transients, vs. features which can rely on slower rates of change.
Not at all an expert in any of this and it was a lot of trial and error, still lots of room for improvement.
I understand it was inspired by https://en.wikipedia.org/wiki/Phyllotaxis, but arrangement on leaves serves the purpose of growth in a specific niche. The pattern arises because naturally leaves serve to capture light - see the images on wikipedia there. Phyllo means green. The LEDs used here do not really tap into any of that, and the name is also a misnomer. That's not good.
I disagree with sibling comments. You are correct to express the confounding implications of a word choice. And they have only detracted from the point you make.
Of course the design is cool and beautiful, but it is not the thing it is called here.
The pattern in OP's project can be called phyllotaxis. This is supported by the link you provide which gives even looser examples that are still described as "exhibiting phyllotaxis". A lot of words refer to nature if you look into semantics, not surprising if you consider the amount of beautiful and useful patterns it gives us.
Very cool. 5-fold symmetry on the PCB to use up the board allowance is particularly neat.
A trick that poor hobbyists learn early on is to make pads a little larger than necessary for SMT parts so you've got somewhere to wick solder onto. Neopixels (5050 LEDs) are reasonable to hand-solder since the pads extend up the sides of the package, but you can also do QFNs with a bit of practice by placing a big via to get to the central pad from underneath.
Kicad has options for hand solder footprints on some components.
Always good to think about if you can get an iron on there during design...not only pad size but component orientation/location.
At times the difference between "easy to rework" and "impossible to rework without removing other components" can be just a 90deg rotation.
Love how the 5 PCBs slot into each other to form the final shape.
With respect to the assembly: do yourself a massive favor and let the PCB fab also assemble the LEDs. With a simple bill of materials like this it will add very little cost, it saves you a _lot_ of time, and it might also reduce the chance of component damage from adding too much heat or from accidental ESD strikes. (I don’t know how much these Neopixels can handle, though.)
> do yourself a massive favor and let the PCB fab also assemble the LEDs
From the article:
What's next? ...using PCB assembly...
I don't agree with this. The board and components are trivial to hand solder.
I'll bet there's some creative board layout so that the relevant controller IC and supporting passives can be soldered onto the back of one of the 5, then have solder jumpers or some such to actually connect it into the circuit. That way, you're not adding miles of unused trace to an active bus.
Of course, having a 5x PCB fab, but 4x+1 assembly would probably double the cost for a single turn of the device.
I would love to hear more about the process of making 5-fold symmetry work for board layout. That sounds maddening to get right.
As long as you can design the outline as a vector file somewhere else, it's easy enough to import as a board outline and then lay out on top of it. I also get the lure of assembly these days, but I would hand-solder a board like this for a one-off art project. Call me old fashioned, but I'm confident enough with soldering that I'd estimate a couple of hours to assemble and I like buying domestic which is less economical than the JLPCB special. If people started to ask for kits though...
I think your idea is pretty sound if you connect all but one of the boards in a ring and use a jumper for the control section.
I could go either way on hand-soldering a single assembly. But doing this more than once would be torturous.
I can only go so many days carefully monitoring diet and minimizing stimulant intake to minimize associated tremors. And I don't have rework microscope, so my eyes would definitely suffer.
Kicad can import dxf and svg files directly now. So you can use that on your "edge cuts" layer to make the PCB shape very easily.
Also works for artwork.
Cool! Remarkably similar to Voria Labs who produce a product called Lumanoi https://voria.com/
Perhaps an example of convergent evolution? :)
The common element appears to be the use of a Voronoi tessellation to map a field of scattered points (LED locations) to cells.
https://en.wikipedia.org/wiki/Voronoi_diagram
I see only a very slight superficial resemblence and non of the inner works are related at all.
Where do you see similarities?
its an organic looking cellular light sculpture for walls
Well...
I bought one of those some time ago.
Might interest the HN crowd...
https://www.evilgeniuslabs.org/one-inch-fibonacci128
Because I desperately want to make my own (and maybe modify it a bit to fit my own hardware biases), I found the repo for the hardware:
https://github.com/jagnat/fib_quintant_minimizer
It would be really neat if the author could put the relevant licensing stuff on there.
(but mainly, I want to hear about how they accomplished 5-fold symmetry!)
author here, good digging! I added the MIT license.
Getting 5-fold symmetry to work was tricky, but the repo you found has the processing sketch where I figured it out. I basically took the point generation process I described and rotated it upon itself 5 times. I tested this with different radial symmetry numbers actually, and 5 also happened to look the best and also was convenient for manufacturing the PCBs.
Then I had AI add the ability to rotate a bounding rectangle for one 'quintant' around the shape, and found the division of cells which minimized the area, since PCB cost scales with that.
Friend, if you can find one, get yourself a Fadecandy board. Maybe not that easy since it's technically discontinued. The dithering gives the smoothest / sexiest fading possible.
if you can manufacture the board on both sides you can probably alternate top/bottom and panel rows with no waste in a straight line.
Neat trick to use mulberry paper under a clear printed part. I wonder if you could simulate stained glass like that.
I find it's pretty easy to come up with lighting projects like this, but to make it actually look high quality with a good finish is quite hard.
Cool. CadQuery is perfect fit for such organic modeling. I wonder if there is anything similar for pcb design.
This kind of audio visualization reminds me of the old Windows Media Player. I enjoyed watching it back when I was a kid.
Too bad. Software audio visualization's no longer common. But hey your hardware visualization's better than software! :D
Always wanted to build something like this. The way the sound drives the phyllotaxis patterns is truly mesmerizing.
I would love to know how the paper used as diffusor was fixed to the 3d model
same, this would seem to be tricky especially since you don't want the glue to wick into the paper as it would mean non-uniform light transmission.
I had this concern at first, but using a glue stick seemed fine. The gluing doesn't have to be extensive either, since the paper gets clamped between the plastic parts when I screw it together.
Thank you very much for the explanation! Would it be too much to ask for a close up photo? Your work is really impressive
I took the very thin 3D printed cell outline shape, a grey screenshot in my post, and used it to trace the mulberry paper. Then cut and glued paper onto the bottom of that cell outline, and screwed the outline plate into the main assembly.
This is by far one of the biggest areas where I could improve the design. I'm not happy with how fragile it is. The good thing about using just paper screwed from the top is it's thin enough to prevent light bleeding between cells.
The geometry is really beautiful and the 3D print work and Led placement is also really good. Thanks for sharing the project, it's inspiring. I too have a sense of enjoyment from pulsating LEDs. I'm not so interested in the audio component though, I always struggle to link the audio to the lights.
WLED on that would be awesome. Pop an esp32 and make a 2d map
Seeing this makes me want to dust off my ESP32 and some addressable LEDs. Always wanted to build something similar.
Very cool!! Love that it takes uploaded Wasm sketches, so people can contribute to it by writing their own patterns for it!
Insanely cool and very well built! Natural patterns are a great basis for visuals
that's really cool and somewhat burries the lead IMO that embedded rust wasmi runtime & loading 3rd part displays us a very powerful pattern. I hadn't seen fuel before but metering loading and frame time makes sense, better that arbitrary timeouts.
Excellent choice in music for the demonstration.
https://music.apple.com/us/album/neon-pattern-drum/134973653...
very nice+ I have a project on my "will i ever start this" list for putting this onto a sphere with integrated IMU/acc
Love it! I'm currently learning electronics (again, did some in high school) and this kind of project is really inspiring.
Thank you for sharing the build process.
Nice work. Love to see some vintage HN content
this is dope. something I've always wanted to do.
You could make millions selling these to audiophiles.
very inspiring. it's nice to see how an idea evolves from a though to a product / installation.
This is brilliant
very cool!
Phyllotaxis spirals (derived from the golden angle) make such an elegant coordinate space for radial audio visualization because they avoid the density distortion of concentric circular rings.
The trickiest part in these builds is usually balancing transient response with temporal smoothing so the LEDs don't devolve into jittery noise during busy frequency passages. Curious if you're doing per-bin decay filters on the FFT or handling dynamic gain normalization upstream?
I'm still not perfectly happy with the audio response, tbh. But it mostly suffices.
I experimented with both approaches, and landed on mixing the band energy normalized by global energy vs. per-bin max energy, with a very arbitrary coefficient that seems to work. I also keep a few copies of the levels per band with different rates of decay, so I can add features in the sketches which should be sensitive to transients, vs. features which can rely on slower rates of change.
Not at all an expert in any of this and it was a lot of trial and error, still lots of room for improvement.
I don't like the word phyllotaxis.
I understand it was inspired by https://en.wikipedia.org/wiki/Phyllotaxis, but arrangement on leaves serves the purpose of growth in a specific niche. The pattern arises because naturally leaves serve to capture light - see the images on wikipedia there. Phyllo means green. The LEDs used here do not really tap into any of that, and the name is also a misnomer. That's not good.
There is no worse form of bikeshedding than naming pedantry.
Agreed. All variable names should be single-letters as the Greek Gods intended :D
I disagree with sibling comments. You are correct to express the confounding implications of a word choice. And they have only detracted from the point you make.
Of course the design is cool and beautiful, but it is not the thing it is called here.
The pattern in OP's project can be called phyllotaxis. This is supported by the link you provide which gives even looser examples that are still described as "exhibiting phyllotaxis". A lot of words refer to nature if you look into semantics, not surprising if you consider the amount of beautiful and useful patterns it gives us.