My first attempt at a spiral matrix.

My first attempt at a spiral matrix. I’ve been playing around with noise, trying to make different fire and lava lamp patterns. Source code: GitHub - evilgeniuslabs/torch: Cylindrical light art display.

It’s a 4 meter strip of 60/m WS2812B wrapped around a section of 3" PVC pipe, which just barely fits snugly inside a small IKEA KVARNÅ table lamp. Driven with a Teensy 3.1 and FastLED (of course). Controlled with an IR remote.

I’m going to try 2.5" PVC pipe next, as I’d like a little more height and more distance between the LEDs and the frosted glass, for more diffusion.

I didn’t take any assembly pictures, but will if/when I rebuild it with 2.5" pipe. Here are a few pics of the top: https://photos.google.com/share/AF1QipP10i3p6ngU2zrfVbwQHlsc68rfRAVI8byL_gsA3-lCb29SXobR0kGaSPTYOgUcUw?key=OFNMVDRnblVXTm1ueHJqM05VdFJXRGJ4NWNQalFn
http://www.youtube.com/watch?v=UvmhVLCMRTs

I like all the different animations you made for it. A bit more distance to the diffuser will definitely improve it even more… Well done !!!

Awesome work! Agree with @JP_Roy distance the LEDs from the diffusion material a bit and maybe even turn down their brightness

So cool @Jason_Coon !! Can’t wait to see the next version!

A great animation collection! Just a curious question: How does the backside of the torch look like? Do you mirror the animations or is there a discontinuity at the line where the right side of the xy mapping meets the left end?

Great build - and really nice animations!

Thanks, everyone! I definitely agree, it needs more space for diffusion, that’s next on my to do list. Stefan, for the noise, fire, and wave patterns, I’m using non-serpentine XY mapping. There’s a “seam” at the back where the left and right edges of the virtual matrix wrap around and meet. Other patterns, such as sinelon, just treat it as the 1D strip that it really is, physically.

One of the fire patterns is a slightly modified version of MessageTorch, which really inspired me for this build: https://github.com/plan44/messagetorch

I know the problem with the seam. My thoughts were the following: on a cylinder I can only see the half of the surface. So I rendered only half of the perimeter and mirrored the result onto the other half. Result: the seam disappears and looks like a simple caleidoscope instead. From the “right” viewing point (basically now we have 2 of them) it looks exactely as in your video. From other viewing positions one can see a part of the original and a part of the mirrored picture. The seam disappeared (and it saved calculation time).

Cool idea! I’ll have to try that out now, thanks! I may try adding it as an option, and map one of the buttons on the IR remote to toggle it on/off. I also plan to try getting your noise smearing working on it.

To be honest, while watching the video I waited for it. :slight_smile:

Something I’ve done on circular led layouts: if you have (say) 10 pixels in a circle, declare NUM_LEDS to be a few more, say, 13. Render all your animations into the array of 13 CRGBs.

The, just before calling show(), blend the “extra” CRGBs onto the low-numbered end of the LED array, like this(ish)

nblend( leds[0], leds[10], 192);
nblend( leds[1], leds[11], 128);
nblend( leds[2], leds[12], 64);

Basically, you’re overlapping the ends of the strip and blending them together. Definitely helps hide the seam, better for some animations than others.

I think Jason should use Marks concept because my one works only with an even number of leds arround the circle. But Jason has 17.

Very nice and interesting! what is the power of the project?

@Antonio_Valenti It has a theoretical max draw of 14.4A. I’m just using a 5V 10A power supply, which isn’t quite enough to run it at full brightness, all white. So I just avoid doing that. :slight_smile:

@Stefan_Petrick , I’ve been trying, but can’t seem to get NoiseSmearing working on this matrix. Have you ever tried running it on your 16x16 matrix? Here’s my (non-functional) attempt: https://gist.github.com/jasoncoon/5f8044404aa621b2b8e9

No, I haven’t tried it on something exept 32x32. I remember my code was horrible, full of magic numbers and hard coded parameters. Last week I tried to understand what I was doing there and was lucky to find my own explanation in the SmartMatrix community. I think the code needs a complete refactoring to be universal usable. I might do that one day but I better don’t announce anything that might not happen.

No worries, I’ll keep hacking away at it, and let you know if I make any progress. :slight_smile: