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.
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.
Smooth rotation of spline.
- Rotation rate and rotation axis drift driven by audio BPM
- Dampen control point bounces off sphere boundary.
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.