Skip to content


Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

VurfX docs (?)

by Tristan Rowley (c) 2012-present (except where using code copyright others or public domain!),

a rough and hacky java-based VJ/music video/lightsynth/semi-automated/trippy visuals application thing based on Processing 3. With glsl shaders, SimpleOpenNI/Kinect rgb and depth support.

uses cp5, many other libraries I'm sure - TODO: ADD LINKS AND STUFF

example output and more info can be found at and

You haven't slept for over 60 hours, you're in no fit state!

FEATURES does lots of stuff... not always very well or clearly randomise sequence/playlist mode ImageListDrawer loads a directory of images to use as sources BeatStream for locking fx to a beat OscStream input for OSC MidiStream input for MIDI Extend functionality/customise fx through preset callbacks and/or overriding methods Project snapshots (including Scene & Filter Parameter settings) saved&loaded from xml file(s)


Keyboard controls

|| key | action | likely to change in future? || || - | show/hide debug layer || || l | lock sequencer (don't change when sequence is ready) || || ' | stop sequencer (sequence values don't update, sequencer doesn't change when ready) || || ; | next sequence (ie next in sequencer playlist or random etc depending on behaviour of the sequencer) || || j,J | previous sequence in playlist history (J does not restart the sequence) || || k,K | next sequence in playlist history (K does not restart the sequence) || || o | cut between current and next playlist history without restarting sequence || || O | restart currently playing sequence | * || || q | increase sequence timescale by 0.1 | * || || a | decrease sequence timescale by 0.1 | * || || f,F | save,load Sequence info (debug) | * || || s,S | save,load a Snapshot (stores global Scene&Filter settings and Sequence structure) | * || || B | save Sequence bank to separate .xml files | * || || space | take screenshot || || m | pause/stop streams ||

sequence playlist history / backwards buttons (j/k to go back/fore, J/K to go back/fore without restarting the Sequence. o)


  • VurfEclipse** is the main(), setup, and render loop
    • has one instantiated Project
      • has many Streams
        • callbacks interact with Filters and Scenes
      • has one Sequencer
        • has many Sequences
          • interacts with Filters and Scenes via overriding methods
      • has many Scenes
        • has many Sequences
        • has many Filters
          • has many Presets
          • has many Parameters
      • Scenes and Filters each have many Canvases


  • proper docs/instructions
  • sequencer features
    • delete items from history
    • save/load history to file
    • set presets for favourites
      • starting to implement this with Snapshots...
    • quick-cut button with no-restart mode for sequences
      • 'o' does this, but think there's a bug
    • stutter time button
    • locking timescale and start of sequence changes to beat tempo/triggers
  • UI features
    • map cp5 sliders to Filter Parameters ('proxy' Parameters?)
    • map functions to sliders
    • map game controllers to sliders
  • effects/shaders
    • fractal (mandlebrot shader now done)
    • rounded pixel effect
    • vertical stripes effect
    • mask effect to cut out or smooth borders
  • streaming/texture sharing
    • turbojpg stream output / stream to&from tcpsyphon/tcpspout/ofxpimapper?
  • big bugs
    • ported to Processing 3, can now fullscreen, but upscaling has incorrect matrix?
  • improve features
    • better MIDI support
      • tempo/BeatStream sync
    • better REST/web interface

future plans

  • improve Kinect performance
    • had trouble getting SimpleOpenNI to work on Windows 10, switched to using libFreenect/open-processing-for-kinect library, performance is hugely better but lose rgb/depth registration and potential to use skeleton tracking etc
  • better multi-Kinect support
  • get some more wine
  • better 'live mode'

Needed for Rainbow Hill Dance Club gig with Mutante:-

  • Mutante set - 1 hour of effects
    • based around their lovely images
  • Disco set - 2 hour(?) of dancefloor dancing effects
    • maybe get video playback support working better, and get some videos of dancer silhouettes to use as layers?
  • General
    • save/load projects to multiple xml files
    • start a new project file with bare bones Scenes and Sequences
    • save canvas mappings with Sequence
      • so, there are two different things that need dealing with here
        • Scenes have an expandable list of canvas mappings
          • eg "Scene 'pix0' maps to Project 'temp3', 'Scene 'out' maps to Project 'out'
        • Filter stores an alias for each input & output
          • eg "input maps to pix0", "output maps to out"
      • Scene's canvas mappings should be stored with the scene..?
      • Filter's canvas aliases should be stored with the sequence..?


Java-based VJ/music video/lightsynth/semi-automated/trippy visuals application thing based on Processing 3. With MIDI, glsl shaders, SimpleOpenNI/Kinect rgb and depth support.







No releases published


No packages published