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 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