I really enjoyed reading about your development process! I was thinking the entire way though that it was kind of a shame that most of the images were just making "hologram-like" pictures that we always see, but the last couple of pictures were more along the lines of the possibilities I was thinking of!
Have you considered adding some kind of depth support that would allow you to make "3D" images by moving not only left and right, but also back and forth?
That's an interesting idea! You can already do that by just moving back and forth, all you need is to project the image flat and know when to turn. I will try that next, thanks for mentioning it! Do you have any particular ideas on what would be cool to try?
Maybe you could have it beep in a certain pattern or pitch to cue you as to when you should be turning in a certain direction.
My first thought was that with something like this (https://www.stavros.io/posts/behold-ledonardo/wings-small.jp...), it would be cool to walk around the subject and have the "wings" actually furl AROUND them rather than simply in front of them, though that might take some choreography to make sure that your own shadow doesn't affect the image too much.
Another thing that I thought was that if you can also selectively turn on only portions of the bar, you could effectively create "windows" in the portrait as you did with the other set of wings (https://www.stavros.io/posts/behold-ledonardo/alexandra-smal...), which could work really well with something 3D-ish, where you can see through one part of the lights to a different background also generated by the lights.
Ahh, yes, these are great. You can easily do them now, they just take some choreography and specially crafted images. The shadow isn't much of a problem if you walk fast enough and aren't lit, since you're mostly behind the lit bar, which drowns you out anyway.
I'll play a bit with the window idea, feel free to follow me on Instagram at https://www.instagram.com/stavroskorok/ if you want to see the progress (I post all photography-related doings there).
Thanks, that's what I love about that project too! I'm trying to come up with more ideas like this but it's hard, I'm at least glad I had one this good.
Thanks, I was very satisfied with the one with the patterns, it really felt good to see that the project was capable of producing something of artistic value.
Thank you! I have, but that might be a bit overkill. Maybe a flexible handle would be nice, but the wobble isn't too bad when you're doing abstract patterns (it might even add to the aesthetic). I will try a flexible handle now that you mention it, though, it's a good idea.
Nice one Stavro!!! It's been some time since your last side-project, but this one is just great. Perfect bridge of technology, photography and art. Do you plan to share the code and BOM for Ledonardo?
It has, yes (at least the ones I posted). I can definitely open source the code if there's interest, I didn't initially just because there's a password committed in the firmware. The BOM isn't interesting at all, it's just a WeMos D1 mini with a microSD shield, and the LED strip is connected to that and powered by two 18650 batteries in parallel.
I'd love to see your code. In particular, I'd like to see what you did with "I could just directly assign the data I read from the SD card to the internal buffer of the LED library instance and display it."
Really great writeup and results! I did something similar but much simpler few years ago (https://hyperglitch.com/articles/lightstick) but instead of long exposure (as I didn't have the good camera) I recorded the video with webcam and reconstructed the final image from it so I didn't have to shoot in the dark. The octave script for image reconstruction is very basic (and the results are very lo-fi :)) but maybe you can use the same approach and with some more work make more usable results (or phone app :))
Oh wow, I guess I'm not as original as I thought :P That looks great, and you can get lots of long exposure apps for your phone so you don't have to use a script to reconstruct the image, have you tried those?
Didn't really thought of that :). But this was in 2015 and basically just a very lo-fi weekend project without any care about resolution or color reproduction (I saw pixelstick project and just wanted to see if I can make something similar :)) after which I used the LED strip for something else.
But I'm really glad you didn't know about it and made yours :) since you really put a lot of thought into the details about color reproduction, resolution and diffusion. It's a very fun thing to play with and anyone wanting to build something similar will now be able to find great resource of info and implementation details on your site.
Even Picasso did (purportedly) the first light paintings (manually of course) back in 1949, and I've been doing manual painting with various flashlights, LED lights, fire, sparklers, etc. since at least 2005, during which time I've seen many projects. You might want to check Vimeo and Youtube, there are tons of old artworks using LED strips, etc. One of the first inventions I saw was the Light Graffiti videos from LichtFaktor (https://www.lichtfaktor.com)... although their earlier stuff was all done manually as well.
In the end though it doesn't matter that you aren't original, it matters that you did it and possibly added something new (spending time thinking about resolution, color quality, etc).
Oh, yes, light painting is probably as old as the camera, but I think "painting" photorealistic images with a strip is different enough to count as an original idea.
I'm not very fussed about being the first anyway, it was just fun to think that I created something nobody else had before. Fun while it lasted, anyway :P
This has actually been being done for a decade at least, you can find instructions online for it, I had the same experience with just about every idea I had when I first joined my university maker space, not only had all my idea been done, half of them had been done specifically _by that makerspace_ just when they were picking fun projects to do off the internet.
The point is to make stuff and enjoy it, you're still an inventor. And the things you _do_ with your projects are half the fun, your photos are really fun and I wouldn't have thought of a lot of them.
Agreed, in the end I do it because it feels great to make things. I really love soldering and routing PCBs, for some reason, I should make more of those...
Nice. If you add some camera to the leds, using Aruco markers you can easily get the camera pose and adjust the led colors accordingly to draw a predefined image without needing a steady hand.
You probably can turn this into a phone light brush app if you use front camera and screen as a led (the torch usually don't change color), but it still has some challenges with respect to latency (in dark environment cheap camera get slow) and user-friendliness specially if it needs calibration.
As I mentioned latency is indeed an issue, but I don't think it matter that much. Your pixel will be offset by the movement during this 50ms (probably more) which will be a typically a few centimeters, so edges will get a little blurry but I'm not a light painter expert.
If it is really a problem, assume pose velocity from the previous frame positions and correct for latency and turn off the screen if acceleration sensor is greater than a value.
That's true, if you have a phone you can use the sensors on it to do dead reckoning in the interim. I'm not a mocap expert, but this seems very doable! It would be a great idea.
Reminds me of the Flaming Lips stage show where they a huge amount of flexible, LED strips as a backdrop going through all kinds of animations as the show progresses.
I built one of these to get more experience with FadeCandy (a small board that will drive 8 x 64 neopixels).
I ended up building a 64x64 (4096 or 4K) display that did 30FPS, you could drive it with all sorts of different things including scraping screen pixels or sending a webcam output to it.
It consumed a bunch of power (500W) and was a bit clunky but a friend rebuilt it and I think it made it to burning man this year (and came back too dusty to use).
This reminds me of the light project at the CN Tower. The tower has lights running up the sides, and a guy with a laptop programs colour sequences on it. Because of the motion, it becomes obvious these can include animations, so occasionally he actually generated photo-realisitic "slices". Someone came along and did something very similar to your project in order to expose the images in their entirety, which comes across almost identical to what you've done (minus that organic ribbon appeal you went for). In his case, the standard "moving colours" come out looking like simple flags, and of course the images look like whatever they are.
I think this artist was inspired by the workings of a photocopier, which the second person who wrote the software to decode and expose it clearly picked up on.
I'll update this later if I get to my desktop and can post a link to that project.
That's fantastic, I was wondering whether it was actually images or just randomly blinking LEDs that this effect read too much into until the RCMP image came up. Amazing.
I used to live on Queen's Quay and saw it pretty much every night. At first it was only the solid colours blinking and racing up and down the tower, but one day it was really obvious that there was a picture involved - it looked like the edge of the screen of a worn out VHS recording. A while later, this video was made, so finally my curiosity was satisfied.
This is really cool! I built something almost exactly like this, though we used the ESP32 instead. [1]
What I find interesting is that I never had an issue with dropped columns over network using the ESP32 as an AP. Did you connect the ESP8266 up to an existing network?
I didn't see a mention of how you designed the brushes in this write up, were they all just images on an SD? I experimented with a palette app to design the brushes (solids, gradients, images, manual) and to send the frames to the brush. Curious what your solution was!
This year I am adding a gyroscope to the device to experiment with 3D space and holographic content. Also trying different LED attachments (like a circular or matrix display) for different effects. There's a lot more to explore!
I'm happy to see this today, the denser version looks very nice!
Ooh, yours looks amazing as well! Yes, the ESP8266 was the AP and it was dropping (or maybe not displaying? I doubt that) packets. Maybe the ESP32 is just beefier, or maybe it's the second core (the ESP8266 probably had to put the wifi chip on hold while sending data to the LEDs).
The brushes were just images, yes. It's interesting that you'd ask that, because I didn't have a concept of a brush (it's all just images), whereas you do, since you use them :) In my case, I have a PNG with the pixels I want, and then select the minimum time step and duplicate the columns in the PNG as I want them, so I run through each PNG column to generate the "brush".
I really like how your example "fans out" by activating more LEDs in time, I should try that as well. I think you'd get much better results with some electrical tape as a diffuser (unless you like the stripes!) too.
Haha I've been so absorbed by the brush metaphor in my take I didn't think about what other terms to use. The fanning out is from a brush size slider in the app. My goal was to make it performance friendly for artists so the app has a bunch of real-time things like that.
You're probably right about the dropped packets, though it makes me concerned I'll eventually run into the same problem and my whole workflow depends on the network not sucking lol
Do you set your time step arbitrarily? I haven't implemented a solution for stabilizing the time step (until the gyroscope is added) and found it very difficult to get non-skewed results on images. Yours look really nice though, was that just patience and a steady hand?
I really want to improve the density on mine after seeing your results. For sure I'll work on better diffusion as well, we had one that blurred the results too much so we bailed on the idea but I think a denser strip and a tighter diffusion would be awesome.
If you want to discuss further, send me a message on Keybase (or something else, whatever is convenient for you).
The ESP32 is pretty beefy, can you not do things on-device? I wouldn't rely on the network after what I've seen, but I haven't tried the ESP32.
My time step is constant, I have a parameter for it but I rarely change it. It's mostly a steady hand, yeah.
Are you talking about horizontal or vertical density? Vertically, the 60 pixel per meter strip is the best you can do (there are some denser ones but need a lot of current), but a diffuser will make it look much better. Horizontally, you can get very fine resolution, up to the refresh rate of the strip.
Looks great! It actually reminds me of these LED staffs or POI that some spinners use. It's conceptually similar; you can get some pretty cool images from a long exposure where someone is spinning. However, the image is somewhat visible to the naked eye just from the speed at which these Poi are spun.
Yeah, POV poi, or LED Poi should be valid Google queries
I think some project an image based on their Angular velocity, others might just be timer-based. Here's a link to a product I've had my eyes on for a while (https://ignispixel.com/store/poi-pro/ignis-pixel-poi-256-hd) the video there should work.
I have to say, I really love the comments here, I post something I made and everyone chimes in with a bunch of interesting projects either they or someone else has made, or new ideas. They're both interesting to read/see and inspire me to work on new things, so I'd like to thank you all for making this comment section a joy to read.
Would be kind of cool if you could do it quick enough so that you could get the images with a normal shutter speed. That way bands could screw with people taking pictures of their concerts and make it look like there were crazy antics going on on stage.
Yes, I know the bicycle displays, they are quite cheap actually. But if you also move the display in the orthogonal direction, you can create a 3D-effect. This can't be done using a bicycle.
92 comments
[ 3.4 ms ] story [ 157 ms ] threadHave you considered adding some kind of depth support that would allow you to make "3D" images by moving not only left and right, but also back and forth?
My first thought was that with something like this (https://www.stavros.io/posts/behold-ledonardo/wings-small.jp...), it would be cool to walk around the subject and have the "wings" actually furl AROUND them rather than simply in front of them, though that might take some choreography to make sure that your own shadow doesn't affect the image too much.
Another thing that I thought was that if you can also selectively turn on only portions of the bar, you could effectively create "windows" in the portrait as you did with the other set of wings (https://www.stavros.io/posts/behold-ledonardo/alexandra-smal...), which could work really well with something 3D-ish, where you can see through one part of the lights to a different background also generated by the lights.
I'll play a bit with the window idea, feel free to follow me on Instagram at https://www.instagram.com/stavroskorok/ if you want to see the progress (I post all photography-related doings there).
In the end though it doesn't matter that you aren't original, it matters that you did it and possibly added something new (spending time thinking about resolution, color quality, etc).
I'm not very fussed about being the first anyway, it was just fun to think that I created something nobody else had before. Fun while it lasted, anyway :P
The point is to make stuff and enjoy it, you're still an inventor. And the things you _do_ with your projects are half the fun, your photos are really fun and I wouldn't have thought of a lot of them.
Kickstarter link: https://www.kickstarter.com/projects/bitbangerlabs/pixelstic... Pixelstick website: http://www.thepixelstick.com/ They also now make the ColorSpike: https://colorspike.com/
Regardless, your DIY solution looks really cool and well done! Props!
You probably can turn this into a phone light brush app if you use front camera and screen as a led (the torch usually don't change color), but it still has some challenges with respect to latency (in dark environment cheap camera get slow) and user-friendliness specially if it needs calibration.
If it is really a problem, assume pose velocity from the previous frame positions and correct for latency and turn off the screen if acceleration sensor is greater than a value.
I ended up building a 64x64 (4096 or 4K) display that did 30FPS, you could drive it with all sorts of different things including scraping screen pixels or sending a webcam output to it.
It consumed a bunch of power (500W) and was a bit clunky but a friend rebuilt it and I think it made it to burning man this year (and came back too dusty to use).
And the name is brilliant... LEDonardo (giggles).
I think this artist was inspired by the workings of a photocopier, which the second person who wrote the software to decode and expose it clearly picked up on.
I'll update this later if I get to my desktop and can post a link to that project.
Have you thought of also doing video with it, via stop frame animation, although that could be very time consuming!
But make the patterns animated, so for example with https://www.stavros.io/posts/behold-ledonardo/maria-small.jp... you could have the light appear to rotate around the lady.
I imagine it'd be extremely slow work, creating enough photos though!
What I find interesting is that I never had an issue with dropped columns over network using the ESP32 as an AP. Did you connect the ESP8266 up to an existing network?
I didn't see a mention of how you designed the brushes in this write up, were they all just images on an SD? I experimented with a palette app to design the brushes (solids, gradients, images, manual) and to send the frames to the brush. Curious what your solution was!
This year I am adding a gyroscope to the device to experiment with 3D space and holographic content. Also trying different LED attachments (like a circular or matrix display) for different effects. There's a lot more to explore!
I'm happy to see this today, the denser version looks very nice!
[1] https://twitter.com/JeffScript/status/1178446997507977216?s=...
The brushes were just images, yes. It's interesting that you'd ask that, because I didn't have a concept of a brush (it's all just images), whereas you do, since you use them :) In my case, I have a PNG with the pixels I want, and then select the minimum time step and duplicate the columns in the PNG as I want them, so I run through each PNG column to generate the "brush".
I really like how your example "fans out" by activating more LEDs in time, I should try that as well. I think you'd get much better results with some electrical tape as a diffuser (unless you like the stripes!) too.
You're probably right about the dropped packets, though it makes me concerned I'll eventually run into the same problem and my whole workflow depends on the network not sucking lol
Do you set your time step arbitrarily? I haven't implemented a solution for stabilizing the time step (until the gyroscope is added) and found it very difficult to get non-skewed results on images. Yours look really nice though, was that just patience and a steady hand?
I really want to improve the density on mine after seeing your results. For sure I'll work on better diffusion as well, we had one that blurred the results too much so we bailed on the idea but I think a denser strip and a tighter diffusion would be awesome.
The ESP32 is pretty beefy, can you not do things on-device? I wouldn't rely on the network after what I've seen, but I haven't tried the ESP32.
My time step is constant, I have a parameter for it but I rarely change it. It's mostly a steady hand, yeah.
Are you talking about horizontal or vertical density? Vertically, the 60 pixel per meter strip is the best you can do (there are some denser ones but need a lot of current), but a diffuser will make it look much better. Horizontally, you can get very fine resolution, up to the refresh rate of the strip.
https://youtu.be/4N2XH1Gx8dQ
I think some project an image based on their Angular velocity, others might just be timer-based. Here's a link to a product I've had my eyes on for a while (https://ignispixel.com/store/poi-pro/ignis-pixel-poi-256-hd) the video there should work.
Very cool. This reminded me of the bike-mounted dot-matrix printer. Similar concept: light vs ink. https://www.wired.com/2004/08/cops-put-brakes-on-bike-protes...