Skip to content
An openFrameworks addon for controlling multiple lasers.
C++ C Makefile
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
example_HelloLaser Fixed issue where it would break if no points were sent to the laser Jun 5, 2019
example_MultipleLasers Updates Oct 17, 2019
libs Updates Oct 17, 2019
src Updates Oct 17, 2019
.gitignore Gitignore Oct 17, 2019
LICENSE Update LICENSE Jan 29, 2018 Update Jun 6, 2019


An openFrameworks addon for controlling one or more ILDA lasers, it's particularly good at rendering graphics. It currently works with Etherdream, Laserdock/LaserCube and IDN controllers, but more DACs to be added in the future.

Safety Notice

LASERS ARE DANGEROUS - USE THIS SOFTWARE AT YOUR OWN RISK. NEVER LOOK INTO THE BEAM. Always have an emergency stop button at hand and do not let anyone enter the laser exposure area. Check the exposure area for reflective surfaces. Take laser safety training and get licenced to use high power lasers in your location. In the UK I can recommend this one.

Seriously, don't mess around with this stuff. You can really damage your eyes.


  • Can draw any vector shape to the laser with a simple function calls
  • Shapes are sorted in real-time to find the optimal path for the laser
  • Can control multiple lasers (limited only by CPU and network speed)
  • Masking of individual areas with varying levels at source
  • Many calibration options for blanking - colour change offset, pre/post blanks, pre/post on points
  • Specify laser speed and acceleration for each shape using "render profiles"
  • Output warping to compensate for perspective distortion
  • Multiple zones can be sent to multiple projectors and individually warped for mapping onto separate planes
  • Colour calibration system to compensate for laser power to brightness curves
  • Full rewrite of the Etherdream library using Poco sockets, very reliable
  • Shapes take into account the current transformation matrix, so should work with ofTransform, ofRotate, and ofScale
  • Should work with 3D coordinates but needs further testing
  • Cross platform - mostly tested on OSX, but should work on Windows and Linux

Supported Laser interfaces

  • Etherdream
  • Laserdock / Lasercube
  • IDN (Ilda Digital Network standard)


  • Automatic discovery of Etherdreams (currently requires the DAC IP address)
  • Automatic discovery of IDN DACs (currently requires the DAC IP address)
  • Masking in laser space, not source space


The code in this repository is available under the MIT License.
Copyright (c) 20012-2019 Seb Lee-Delisle


First, pick the branch that matches your version of openFrameworks:

Either clone out the source code using git:

> cd openFrameworks/addons/
> git clone

Or download the source from GitHub here, unzip the folder, rename it from ofxLaser-master to ofxLaser and place it in your openFrameworks/addons folder.

To run the examples, import them into the project generator, create a new project, and open the project file in your IDE.


ofxXmlSettings (comes with oF)
ofxGui (comes with oF)
ofxOpenCv (comes with oF)
ofxNetwork (comes with oF)
ofxPoco (comes with oF)
ofxSvg (comes with oF)


openFrameworks 0.10.1 - currently tested with 0.10.1

Known issues

Version history

You can’t perform that action at this time.