blitzTag 0.9

Graffiti Research Lab Germany presents the first public release of blitzTag. Get it here: !Non-Commercial use only!

Kudos to the creators of the original L.A.S.E.R Tag software, which inspired us to create blitzTag


  • Laser Input
  • Kinect input (Kinect input requires commercial license of TouchDesigner)
  • GML input and export (experimental, currently the tag is sometimes flipped)
  • Remote Android app
  • Custom Styles
  • Freeze and undo

Hardware Requirements

  • Modern processor (core i3/5/7)
  • Dedicated Nvidia Graphics card (the faster the better) and current drivers: you can get ~30 fps ona gtx330m, 60 fps on a 460m ….
  • Good web/video camera. For smaller setups a PS3 eye-cam gives good results. If you use a ps3 cam makes sure to use this driver
  • Good projector
  • Laser Pointer (green)
  • Kinect (optional)

Software Requirements

Getting Help / Bugs
You can ask questions about blitzTag in this topic on the TouchDesigner forums. Note that this version is not heavily tested. Please report any bugs in above mentioned thread.

Pseudo Manual

Double click blitzTag.toe to start the application. It might complain that it can’t find a ps3 cam, you can ignore that warning

Monitor Setup
blitzTag will use your second monitors resolution as the render resolution. If no second monitor is connected, it will render in 1280×720. If your second monitor output does not show up, hit escape and then F1 again

Mouse Input
Just click and draw in the big viewport area above the parameters

Laser Input/ Calibration

  • Try to use the brightest green laser you can find.
  • Go to the Laser Tab and activate it by selecting „Use Laser Input“
    (this might bring up a warning about a PS3 cam not connected. You can ignore that warning)
  • Select your Camera From the dropdown menu
  • Click on “Activate Calibration”, the projector should show 4 white squares
  • Physically move the camera until it sees all 4 squares (preview window 1)
  • Adjust the “Threshold” slider until you only see 4 squares (preview window 2)
  • Hit the “Calibrate” button. It will project one square at a time and track its location. Once all 4 squares are projected again, click on “Activate Calibration” again to turn the calibration off

Now you need to get a clean signal from your laser pointer. This requires some experimentation (and experience) to get a clean signal. The basic workflow is:

  1. Try to capture only the brightest point in the cameras field of view
    Turn your laser pointer on and make sure the camera sees it. You can again use the 3 preview windows for verification. Ideally you have a good camera that allows you to adjust the iris to only capture the brightest spot in the image. If you don’t have an iris control, bring up the windows (direct show) controlpanel for the camera and adjust its gain/exposure settings to relatively low values. Also turn off automatic modes.

    Here are some good settings for the ps3 cam:

  2. Set the “projection brightness”
    Adjust the projection brightness slider (75% is a good starting point)
  3. Set the “Threshold”
    Use the “Threshold” slider to until you only see a single white dot for the Laser.
  4. Observe the Projection
    Carefully check your projection. If you get random strokes, you need a higher threshold or less projection brightness. If your strokes aren’t picked up or get interrupted, you need a lower threshold.

You need to find the setting that has the highest possible brightness while still being able to threshold the image to a single white dot. You might need to go back to step 1 and adjust values there.

Kinect Input (unfortunately this one requires a commercial key for touchDesigner)
You need to install openni libraries and the avin2 driver. Instruction here . Once you have installed those and you verified that all the openni samples work, then you just need to enable “Use Kinect Input” on the Kinect tab, go to the blitzTag directory in explorer, find the kinect sub directory and launch KinectToTouchDesigner.exe

After a few seconds you should see yourself in the preview window. Use the “Dist Threshold” slider to define a virtual line that your hand needs to cross before it will be tracked. Once that line is crossed, it will track the closest object, so just point your open hand at the kinect. The moment you see a circle overlay the drawing will start. To stop a stroke you need to pull your arm back quickly, so your hand is outside of the active zone.

GML Input
This tab allows you to load GML tags from the blackbook or your harddrive and then playback those tags. This is in its early stages, so tags might not be oriented correctly. You also need to adapt the Stroke settings on the Styles tab, especially the “Smoothness” and “Dynamic Width” parameters.

You can also hit the “save” button in the Control Bar to export a gml and an image file of your current tag. The GML will contain the raw unfiltered data!

Remote Control
This tab allows you to activate an OSC based remote control application for android phones. Set the port here, and in the android app set the IP of the computer running blitzTag. Then you can use the android app to clear the screen, switch styles, adjust drawing width or even draw your tag. Get an early version of the app here

Background Settingss
This page allows you to select the background image/color. You can load 4 different images and setup 4 different colors. Use the “tint BG” multislider to tint the images if desired.


All the parameters should be self-explanatory. Just play with them or pick a new style (using the “Next Style” and “Prev Style” buttons) and observe the different settings. Changing most of the stroke parameters will not result in immediate visible change, so you need to draw again to see its effect. Changing all the other parameters will give you immediate feedback in the viewport. To change the color of a stroke, click once on the color/ramp image. This will open the ramp editor, which consist of several small color markers. The big ones are active, the small ones inactive. So activate them, select the marker (it will turn white) and the toggle the active button. To change the color, select a marker and then use the multislider (3 in 1) to adjust the color. It’s an HSV Slider, so one of the 3 sliders will adjust the hue, one the saturation and one the value. You can move them horizontally to change their position in the ramp. You can’t deactivate the first and last marker. To create a single colored line you need to set both markers to the same color. Click on “done” to finish editing the ramp. You can use the “Freeze” button to lock the current image, switch to a new style and continue drawing.

The “composite” parameters allow for a final brightness and contrast operation, and the “Blend TAG / BG” parameter is usefull if you use a custom background image. If you use a black background, make sure this parameter is set to or you won’t see anything

Source Code
Just hit the escape key and you’ll see the networks that define blitzTag. You can edit them and then hit F1 to go back into perform mode. See the TouchDesigner documentation for tutorials