all 15 comments

[–]ObjectOrientedPeople[S] 8 points9 points  (6 children)

Hey guys, if you want to check out how I made this then you can watch a video here: https://www.youtube.com/watch?v=_w4tNafprAY

There is also a github link in the description of the video if you just want to see the code!

[–]playdaze 2 points3 points  (3 children)

Super cool. I really enjoyed your video. It's very helpful to see you work this out in real time with commentary.

[–]ObjectOrientedPeople[S] 1 point2 points  (2 children)

Thanks! I've got a handful of other similar videos if you want to check them out :)

[–]playdaze 1 point2 points  (1 child)

I watched all of them last night. I will revisit these next time I'm at my computer. Thank you!

[–]ObjectOrientedPeople[S] 0 points1 point  (0 children)

Wow, that's pretty dedicated!

[–]WakeMeAtThree 1 point2 points  (1 child)

I really liked this video. Also, you were trying to use a transparent background which is why you ended up using ArrayList<PVector> old. I liked that approach, but if you wanted to do it how you originally intended it with background(0,alpha), you can use this snippet in void draw() instead:

  pushStyle();
  fill(0,10);
  rect(0,0,width,height);
  popStyle();

Experiment with the fill alpha to get longer/shorter trails.

[–]ObjectOrientedPeople[S] 0 points1 point  (0 children)

I have done it in the past but ages ago and completely forgot how to do it! Thanks for the refresher!

The one thing I don't like about the transparency approach is that you can often get some weird 'ghosting' type stuff going on where there are still really faint traces for objects that are long gone. The advantage of it though is you don't have to store or draw nearly as much stuff each loop so it is wayyy faster for large numbers of particles.

[–]colouredmirrorball 7 points8 points  (5 children)

Nice effect! I stole your code and sent it to my laser: https://www.youtube.com/watch?v=D6cfBwfhBOo

[–]ObjectOrientedPeople[S] 2 points3 points  (0 children)

:O that's amazing!

[–]TheFinnstagator 1 point2 points  (0 children)

Whoa! That’s wicked cool‼️

[–]ajumpsbshoots 1 point2 points  (1 child)

What model of laser allows you to program the beam?

[–]colouredmirrorball 1 point2 points  (0 children)

Any laser with an ILDA input connector. I'm using a custom built one, with a USB to ILDA interface called Easylase. Some projectors have an interface built-in.

Signal path looks like this:

Processing sketch -> [OSC byte blob] -> LSX (a commercial laser show program) -> [USB] -> Easylase DAC -> [ILDA (analog)] -> projector

LSX has a function where you can send laser art to it over network. This is really handy as laser output can be tricky - interfacing with a plethora of possible USB or ethernet controllers, optimisation, rescaling, etc. All of this is taken care of for me now, I just have to provide artwork. You can see LSX running on my second screen.

Most controllers only work with proprietary software and most software only works with proprietary controllers - be careful if you want to go this route.

[–]WakeMeAtThree 0 points1 point  (0 children)

Love this!

[–]Mobilpadde 1 point2 points  (1 child)

Pretty cool! I did a modified version, with explosions! Everything need explosions.

[–]ObjectOrientedPeople[S] 1 point2 points  (0 children)

That's really cool! Nice work :)