Skip to content
Algorithmically generated laser show for ILDA laser displays.
C++ Makefile QML
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bin/data
media
src
.gitignore
LICENSE
Makefile
README.md
addons.make
config.make
laser-engine.qbs

README.md

laser-engine

Algorithmically generated laser show. Utilizes openFrameworks and addon ofxLaser.


Behind The Scenes

At the core of this display is a B-Spline controlled by points that move freely around the inside of a sphere. The gif below is a demo showing the spline in purple and toggling the display of the control polygon (green) and the boundary (red). The portion of the boundary that we're really looking is a cross section at z = 0.

Rotations

The spline is rotated around an axis at a constant rate. The axis itself initializes in a random location and drifts. In the gif below you can see the boundary slice through z=0 be rotated along with the spline. I had to locally modify OpenFramework's ofPolyline scale() function to take scaling in the Z-axis for the spline to not collapse when rotated.

To-Do

  • Smooth rotation of spline.
  • Rotation rate and rotation axis drift driven by audio BPM
  • Dampen control point bounces off sphere boundary.

Local Mods

I made a few changes to local repositories that I've checked out.

  • Added rotateQuat() for ofPolyline -> Issue
  • Added Z-axis component support to ofPolyline's scale().
  • ofxTinyspline was forked a long time ago, I just replaced the four core files with updated versions.
You can’t perform that action at this time.