@Jason Moungey that's a disco stick if I've ever seen one!
Either way I am in love with it
@Steve Pomeroy :)))))
Once you do your transforms, you can step through the physical pixels you have, pull out their coordinates of interest, and feed that into your generation algorithm
I'm loving these explainer gifs!
I definitely recommend perusing some old math texts, maybe Khan Academy or something...it really helps! And I do love my Python and matplotlib!
@Dan Maloney are we still saving HackChat transcripts?
@Garrett Mace what did you end up using to make these explainer gifs? good stuff
What software are you using to simulate your end result?
Most of the patterns on that LED Nonagon are very simple. I have it run through the pixels and feed coordinates to generator classes. The core algorithm for many patterns is a oneliner
1
CRGB render(pixel_info pix) {
2
int8_t color = (int32_t)(pix.r/12*(int32_t)(sin16(angle))/256) + pix.angle*256/PI*1;
3
CRGB ret_color;
4
ret_color = ColorFromPalette(palette, color+hue, 255);
5
return ret_color;
6
}
Ben: I'm rendering them in Matplotlib, frame by frame, from within jupyter notebook
reynolds: I usually dev actual patterns on the device itself. However, there are some great FastLED simulator projects on github
I know hackaday posted one pretty recently?
I would like to figure out how to feed LED algorithms directly into Blender and render the results in EEvee
In any case....if you precalculate the math, use a "shader" style approach to generating physical-space patterns, you might forget the actual complexity looks like this:
That would be slick, and thanks I will have a look around on github for some simulators
Do you do most of your project mockups/renders in Blender?
😱
Steve: I've done a few, but definitely not most. Lots of pencil sketches, and some guesstimations
Gotcha. I've been trying to figure out a good workflow for LED-based sim there. Sounds like Eevee? :-)
You can build the thing, and then measure where the pixels are, or where a strip starts and ends and what the pixel spacing is
🤯 Incredible images! Maybe a chicken and egg question, but did you have the mathematics background when you started doing animations or did it evolve from these projects?
Eevee is a graphics-card based render option in newest Blender releases, it's a lot faster
LqqkOut I graduated as an EE with pretty heavy math along the way, but that was almost 20 years ago. Knowing where to look helped (hence this hack chat) but I did have to relearn a lot
Any other questions about the above projects, approaches to LED mapping, how to even use this, or random thoughts about the state of LED tech today?
https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API/Matrix_math_for_the_web
I found this bit to be really good at explaining transformation matrix math:That looks pretty good! I'm thinking about switching to Javascript (as in your link) because I think it'll be a bit more performant, easier to share, interactive
https://www.falstad.com/mathphysics.html
I mean look at all this cool stuff:(hold for later if it's coming up!) Any lessons-learned or tips re: power and power distribution? I imagine these can be pretty hungry
Yes
are you using normal vectors for LED orientations in your 3d animations as well? (I've been using them to simulate artificial light sources, where the LEDs simulate reflective surfaces)
I don't have more loaded into the chat cannon, so we're well into freeform chat now
LqqkOut: I stick with 48V or lower distribution, and point-of-load DC-DC converters for large projects
Each node in that ceiling project needed to handle up to 400 watts
More of a hardware question. The link someone posted for the ceiling LED project mentioned "custom connectors". With the huge range of connectors available, why would it have to be something custom? And how does one get custom connectors made?
https://www.tangibleinteraction.com/artworks/summit
summit
Garibaldi Mountain is one of the greatest natural beauties in British Columbia, towering majestically above the small town of Squamish. Every time you drive by or see it in the distance, the extraordinary view of the impressively peaked ridge inherently steals your breath away.
Read this on summit | Tangible Interaction
brainsmoke: I haven't needed to worry about normal vectors yet, but on that summit project they were very important. We had the three sides of the sticks modeled, and wanted self-shadowing effects so we needed to know what direction each LED pointed
The person who set that up was a data scientist, I definitely recommend getting one on the team if you have a similar scale of problem!
Any thoughts on MicroPython on the microcontrollers you use?
Dan: The custom connectors were mostly to handle the long strips we were using, the default connectors were not strong enough or high enough current for a semi-industrial application. So custom was mostly "hey Ray Wu, can you put these on instead" and he said yeah
grcornwe: Loving MicroPython. I haven't used it for a high-update-rate LED application yet, but for small info display type projects it's so nice to not dig deep into C to handle network comms, text processing etc
One of the things I've heard people talk about in terms of pixel mapping is the idea of using a network of smarter pixel drivers + more parametric control signals instead of raw pixel data. Have you explored that at all?
Thanks, I've been struggling with a higher-update-rate application, drove me back to C :)
The micropython and circuitpython implementations have high speed pixel drivers under the hood. Might be cool to do a similar approach with a lookup table and shader kernels written in C
I've written a jitter-hiding driver for micropython, to hide garbage collection cycles :-)
(I imagine the idea of JPEG-like frames being sent to a controller instead of raw pixels.)
Steve: Sort of a game of life approach? Rules-based pattern generation? I haven't done that but see great things on twitter with interchangeable modules
That is a fourth approach to the problem though. I know that Paul does demos with a rectangular array from a Teensy, and a computer pipes pixel data to it over USB. However, you could do the heavy processing on the computer and send pre-mapped data to pixel chains or strings
Are most of your projects for specific clients or are they personal projects? If clients, do you get to design collaboratively or is it more prescriptive?
There are a lot of commercial applications that do this, mostly with DMX but some Artnet
LqqkOut: It's definitely more personal projects these days, or no-money projects (collab with Burning Man sculptor etc)
[thank you for all of the answers, I wish the chat had response icons to show the love]
Maybe someday
It'll be next to the edit button
haha
good stuff thanks,
If it's all right, I'm going to grab some lunch. If you'd like to continue discussion over the next few days, or have questions for many other experienced LED artists and coders, hop over to the LED Art Ongoing/Weekly Chat
Indeed, thanks so much!
https://hackaday.io/messages/room/289684
Public chat for LED Art Ongoing/Weekly Chat | Hackaday.io
Participate in the public chat for LED Art Ongoing/Weekly Chat!
I'll try to spend some more time in there too!
👍
Thank you all for a great discussion and great questions!
Sounds goos Garrett, we're almost at the end of the hour anyway.
*good
Great chat Garrett, and thanks for linking to the LED Art Chat group!
Thanks so much for dropping by today, interesting stuff. I never thought there's be so much math involved, but it makes sense once you think about it.
Thanks for inviting me, Dan. Was a lot of fun!
https://github.com/felselva/mathc - seems a good mix of simple, capable, and fast
favorite c matrix math library? I've picked up@Garrett Mace and everyone!
ThanksThank you Garrett!
You bet. And thanks all for turning out today with great questions.
Ben: I'm doing the math in Python so that I don't have to do it in C :) Uh, eventually will probably need that though. Thanks for the link!
Next week we'll be talking with Cory Collins about Art with Technology:
https://hackaday.io/event/179425-art-with-technology-hack-chat
Art with Technology Hack Chat
Cory Collins will host the Hack Chat on Wednesday, June 16 at noon Pacific. Time zones got you down? Try our handy time zone converter. As hackers, we naturally see the beauty of technology.
Transcript for today's chat coming right up...
thanks - I only caught little parts of this - looking forward to reading the transcript later tonight
Smae
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.