Introducing the Luz Body Tracker

April 25, 2011

Luz is an open-source live motion graphics editor and DMX controller.

I just checked in a major new feature, the Luz Body Tracker:

In this test, the hands control the heights of the bars.  The ‘praise jebus’ variable goes to 100% when both* hands move above the shoulders, and it in turn drives the amount of the Pixel Storm effect on the scene renderer.

*This effect is accomplished by setting the variable’s ‘Combine Method’ to ‘Multiply’, as seen in the screenshot. (%56 * %73 = about 41%)

With the Luz Body Tracker, any effect in Luz including DMX lighting can be easily controlled directly by human body movement.

Want to control a theater’s lighting entirely from body movement? Luz can do that.

Luz Body Tracker was graciously tested by the kids at the after school play space LightTroupe visits. (And apparently the Kinect can track kids on swings. Whodathunkit?)

Luz Body Tracker

The Body Tracker sends values like “Human 01 / Left Hand / X”.

It can track multiple people simultaneously, and you can limit the maximum number of people (to whatever number you choose to support in your Luz project).  It’s all unattended and automatic. The Luz Body Tracker is intended to facilitate museum installations.

The raw x,y,z data for each spot on the body (shown as circles above) is converted to the 0.0-1.0 range and sent to Luz via OpenSoundControl.  Elbow, knee, and hip bend angles (0.0-1.0) are also calculated and sent.

Like in the Input Manager application, where each axis of each device is auto-calibrated, here each body part is individually auto-calibrated.  This means that someone whose elbow can’t physically raise above their shoulder will still be able to send 100% activation for “Elbow / Y”.  It means shorter people can still reach a full “Head / Y” value.

Further, elbow and hands are calibrated relative to shoulders, knees and feet are calibrated relative to hips.  In other words, your expressive limbs’ calibrations are in body-space, not stage-space.  It feels great– if you stick your right arm out as far as it’ll go, “Right Hand / X” will always hit 1.0.

Luz Body Tracker uses OpenNI+NITE for skeleton tracking. Because these aren’t provided as debian/ubuntu packages yet, the Luz Body Tracker is a little harder to compile than the rest of the Luz Studio suite.

Big thanks to Ether Snow who began the Luz Body Tracker app, got it fully working, and then handed the code and a Kinect over to me for integration into the Luz world.

Luz has enticed many non-traditional users– artists, women, kids– to install Ubuntu. It has the potential to bring thousands of non-technical folks to freedom and fun.

Please support the Luz Project— it all goes directly to feature development, creation of tutorials and documentation, and the drive towards a 1.0 release.


Luz – Introducing Shader Snippets

April 19, 2011

Luz is a live interactive motion-graphics editor and performer:

Luz is free and open source software.

Recent Advances

Luz recently got DMX support, allowing you to control venue lighting from Gamepads, Joysticks, WiiMotes, Wacom Tablets, MIDI devices, Kinects, live audio analysis, the beat of the music, or any app that sends OpenSoundControl.

Using Timelines, you can also schedule precise live visuals+DMX performances:

And now, a major advance in the graphics quality and diversity possible in Luz.

Jump down to the video, or read on for information about OpenGL Shaders and the limitation that was recently overcome.

OpenGL Shaders and the One-Shader Limitation

Shader programs replace a majority of the graphics pipeline on the graphics card, bending vertices, warping pixels as they go by. Shaders make possible the beauty and realism of modern games.

Unfortunately, only one shader program can be active when drawing each object. This doesn’t work well with the Luz model, where an actor can have any number of effects operating on them at once.

(This single-shader limitation is present in Quartz Composer. And the limitation is present in Microsoft Silverlight.)

Introducing Shader Snippets

Luz’s Shader Snippet technology overcomes this limitation by creating a shader program on the fly, by gathering tiny snippets of shader code from the user’s chosen effects, assembling them with a few tweaks to make them fit together nicely, and compiling them into a final program. (More technical details will follow in a separate blog post.)

Now, let’s take a look at Shader Snippets in action:

(If you know of other motion graphics software that assembles shader programs at run time, please let me know about it in a comment.)

The Luz Project

How better to challenge the mind than with creating beautiful, dancing, interactive visuals while listening to music?

How better to grow the open-source community than with fun, with play, with totally unique experiences?

I’ve been an advocate and user of the free desktop for my whole adult life, and Luz is an attempt to entice people of all sorts to try the free desktop.

I know this strategy works: many people have already installed Ubuntu to play with Luz, including artists, designers, women, and even children. Recently, one 8th grader in the weekly kids event we do told me he has begun volunteering at FreeGeek to earn an Ubuntu computer, so he can play with Luz at home. How cool is that!!?

Luz is just starting to get global attention, like the recent article on CDM.

Luz is a toy that I want to continue to see grow in quality and popularity.

Quite humbly, I ask for your support in making that happen. I invite you to:

It has taken 6 years and a lot of work to get this far, and there’s lots left to do to create the ultimate open-source live motion-graphics editor!

Thanks for reading, thanks for your support, and I hope you enjoy playing with Luz! 🙂

More on shader snippets and the new Text plugin doing live motion graphics typography:

Luz project page at
Luz tutorials.
Luz videos on YouTube.

Similar Technologies
HLSL Fragments

Luz Studio Tutorial 3

January 19, 2011

Thanks to those who’ve watched Tutorial 1 & 2 and sent helpful feedback!

In response to feedback, I’ve added direct download links of the OGG videos and links to the YouTube versions.

Tutorial 3 is now available, which covers more of the basic operation of Luz Studio:

Feedback is welcome! Comments are open.

Luz Studio Tutorial 1 & 2

January 18, 2011

I invite you to view the first two Luz Studio tutorials:

They should play with subtitles, either as HTML5 video (OGG Theora), or via YouTube FLV.

I would appreciate any feedback you have on the tutorials. I intend to make many more, but I’d like to know if these are working for people.

Comments are open. Thanks!!

text support in Luz

September 2, 2009

I’m working on adding text rendering to Luz:

Luz Studio Text Example

With Luz you build visuals by combining the 180+ plugins and attaching their settings to human inputs or animations.

The creations you make can be played live using MIDI devices, OpenSoundControl, Gamepads, Wiimotes, laptop touchpads, and Wacom Tablets.

Get Involved!

Luz needs a tutorial video! Do you have a fast linux computer? Interested in visualization?

If you think you could create a good instructional video, I will personally teach you how to use Luz first. Interested? shoot me an email => ian at