Page 1 of 2 12 LastLast
Results 1 to 10 of 15

Thread: Who writes their own laser show software?

  1. #1
    Join Date
    Nov 2016
    Location
    San Francisco, CA
    Posts
    15

    Default Who writes their own laser show software?

    Hi all,

    Back in 2008 I worked on a variety of different pieces of laser display software for Mac OS. One of my favorites was a drawing app, that let you draw with the laser using a graphics tablet:



    I also wrote an iTunes visualizer plugin to draw abstract pictures that interpreted the audio samples being played back, and worked with some other folks to build a module-based laser show app. It could import Adobe Flash animations, read and write ILDA files, and draw some basic lissajous figures.

    Digging back into this stuff this week, I found it wasn't hard to recompile the drivers I had written and the test programs to play .ild files. The driver test app draws a simple rotating torus wireframe animation. It all seemed to work without too much hacking!

    I cobbled together some vintage Catweazle scanners, the EasyLase DAC, and a home-brew 405nm laser pointer I had laying about and managed to capture this:



    Anyway, excited to be writing laser show software again, even if the first little bits aren't terribly impressive. Who else is writing their own show software? What are the major guiding principles you've adopted in designing the user interface?

  2. #2
    Join Date
    Feb 2015
    Location
    San Francisco
    Posts
    184

    Default

    Hey Joey,

    Looks like fun. Might it also work with trackpads? I'm also in San Francisco, and I'd love to see your stuff live...

    Ron

  3. #3
    Join Date
    Mar 2012
    Location
    Akron, Ohio USA
    Posts
    2,197

    Default

    There are a lot of laser show software developers on this forum!

    Have you tried LaserBoy? It compiles and runs in Mac OSX.

    It's free and open source.

    I started on it at the end of 2003.

    The user interface is all keyboard, because of the origin of the code as a whole. I started writing it for Linux. It used to take two computers to work. One was a Linux machine that provided a high resolution graphics display. The other was another machine that shelled into the first to control the application. I know that sounds weird, but I am very used to the idea of working with Linux servers via a shell.

    Then someone introduced me to libSDL 1.2 so I could write one single code set that would compile and run on just about every modern OS. I stuck with the keyboard control because i had already developed so much of the code to work that way. And, once you get used to it, you will find that it is very precision oriented.

    James.
    Last edited by james; 12-05-2016 at 11:49.
    Creator of LaserBoy!
    LaserBoy is free and runs in Windows, MacOS and Linux (including Raspberry Pi!).
    Download LaserBoy!
    YouTube Tutorials
    Ask me about my LaserBoy Correction Amp Kit for sale!
    All software has a learning curve usually proportional to its capabilities and unique features. Pointing with a mouse is in no way easier than tapping a key.

  4. #4
    Join Date
    Nov 2016
    Location
    San Francisco, CA
    Posts
    15

    Default

    Ron, I think trackpads aren't as well suited to this application because they're relative, as opposed to absolute positioning devices, like graphics tablets. Additionally this worked well with tablets because it is possible to distinguish between hovering above the surface and touching the stylus to the tablet.

    These days it might be possible to replace the tablet with an iPad + pencil.

    I'll let you know when I have some good stuff to demo.

    —Joey

  5. #5
    Join Date
    Nov 2016
    Location
    San Francisco, CA
    Posts
    15

    Default

    James,

    Glad to hear from you! I guess I had discounted LaserBoy somewhat simply because the website looked as if it had been maintained, but I guess my impressions were quite wrong! Sorry about that. I'll have to get it compiling and take a look.

    I guess I should start just surveying every app I can find and building up a bit of a taxonomy of the different sorts of things out there. I see a lot of different apps and it seems that there are a variety of different philosophies on what an app to drive a laser project should look like.

    Most software appears to assume control of a given laser projector—and this has held true for all of my experiments as well.

    Are there any examples of a more plugin-based architecture, where a central app would connect to a projector, handle issues like color correction, display geometry, synchronization, and other modules would be responsible for generating source frames? This way a show could easily incorporate elements from different creation apps—not just exported .ild files, but live elements—but each wouldn't have to reimplement all of the "utility" kinds of functionality that each app might need. This would also deal with hardware arbitration—so different sources weren't trying to connect to the hardware at the same time.

    Seems like it would be possible to build a prototype my making a coordinator app show up as several "virtual DACs", that different apps could connect to like a regular hardware projector, then the coordinator app could sequence among those different input sources when writing to the real hardware projector, and apply screen geometry correction, color correction, etc

    Eventually a better plugin API could exist to facilitate bi-directional communication between the host app and the content generators—but that would necessarily require adoption of any client app, whereas this prototype would not need such a thing.

    —Joey

  6. #6
    Join Date
    Mar 2012
    Location
    Akron, Ohio USA
    Posts
    2,197

    Default

    I am not a Mac user, so I have never compiles LB myself for Mac OSX.

    I will tell you that you need the boost C++ libs and libSDL 1.2.

    Also, when you exit the app, there is an un-handled exception when SDL cleans up. It looks like it crashes the app at the exit, but it doesn't effect any of the operation of the app. This only happens on a Mac.

    LB does not connect to any DAC what so ever. It is purely file IO.

    One of the things it does is make wave files of time optimized laser show content for modified sound card DACs.

    It reads and writes all formats of ILDA. Plus it reads DXF files.

    It lets you create all kinds of art either by directly drawing it or using parameters for various math figures (like Spirograph).

    You can also render text in a variety of fonts.

    There are special effects that you can apply to single frames or frame sets to make animations.

    Plus lot of other cool stuff.

    The idea was to create an experience that is exactly the same on all operating systems.
    Last edited by james; 12-08-2016 at 15:57.
    Creator of LaserBoy!
    LaserBoy is free and runs in Windows, MacOS and Linux (including Raspberry Pi!).
    Download LaserBoy!
    YouTube Tutorials
    Ask me about my LaserBoy Correction Amp Kit for sale!
    All software has a learning curve usually proportional to its capabilities and unique features. Pointing with a mouse is in no way easier than tapping a key.

  7. #7
    Join Date
    Jul 2008
    Location
    My momentum is too precisely determined :S
    Posts
    1,777

    Default

    Quote Originally Posted by joeyhagedorn View Post
    Most software appears to assume control of a given laser projector—and this has held true for all of my experiments as well.

    Are there any examples of a more plugin-based architecture, where a central app would connect to a projector, handle issues like color correction, display geometry, synchronization, and other modules would be responsible for generating source frames? This way a show could easily incorporate elements from different creation apps—not just exported .ild files, but live elements—but each wouldn't have to reimplement all of the "utility" kinds of functionality that each app might need. This would also deal with hardware arbitration—so different sources weren't trying to connect to the hardware at the same time.
    LSX can now do that in a way. The most recent version has a feature where you can send a laser frame to it over OSC in real time. So you can write your own laser program that generates laser art and have it send frames to LSX. Since OSC is a network protocol the program doesn't even need to run on the same computer as LSX. You could have a computer at the back of the stage running LSX connected to a bunch of DACs and send frames to it over ethernet from anywhere you want. This is really convenient as LSX has support for a multitude of DACs with optimisation, BAMs and the whole package so you don't have to deal with that as a software dev.

    I intend to write a live show program that is... less cumbersome... than LSX. It's gonna have the ability to play multiple cues at the same time. And colour saturation =)


    LSX is developed by PL member drlava, to answer your original question. One for the list.



    Another is my own program, IldaViewer:

    IldaViewer_1.1.2_beta_30092016_source.zip

    Check out the Oscillabstract tab. I got it working with LSX in real time, too!

    https://www.youtube.com/watch?v=MZ_Cgq640jQ

  8. #8
    Join Date
    Jan 2011
    Location
    Santa Cruz, CA
    Posts
    309

    Default

    Quote Originally Posted by colouredmirrorball View Post

    Check out the Oscillabstract tab. I got it working with LSX in real time, too!
    Oscillabstract? What is this witch craft you speak of?

    -Sal

  9. #9
    Join Date
    Jul 2008
    Location
    My momentum is too precisely determined :S
    Posts
    1,777

    Default

    It started out as an idea to connect oscillators together to create abstracts. Then I wanted some options to dynamically rotate, translate, scale and colour the frame. Then suddenly I found out I created a node based ilda file editor/creator.

    Click image for larger version. 

Name:	Schermafdruk 2016-12-09 13.24.03.png 
Views:	28 
Size:	46.9 KB 
ID:	51256


    Then I made it output to LSX.

    Click image for larger version. 

Name:	Schermafdruk 2016-12-09 13.28.54_Ink_LI.png 
Views:	13 
Size:	441.4 KB 
ID:	51257

    Next step is to add live inputs but that's not going to be for soon. I want to rewrite it first and I simply don't have the time for that.

  10. #10
    Join Date
    Jul 2009
    Location
    Orlando, FL
    Posts
    373

    Default

    Quote Originally Posted by discothefunkyhippo View Post
    Oscillabstract? What is this witch craft you speak of?

    -Sal

    Yeah! What?!

    That's awesome!

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •