In this release we’ve added dozens of nodes to expand what you can do with Vuo. They include supporting Kinect depth + RGB input (sooner than we planned!), a new layer node set (great for compositing 2D images), advanced movie features (get frame at time, variable playback rates, mirror looping), scenegraph improvements (drawing points and lines, improved performance), and several nodes that make interaction easier (Toggle, Became True, Is Within Range, Measure Time) and more. There are also significant improvements to the editor, including the ability to manually fire a trigger port, and the ability to select which type converter to insert when connecting a cable.


Here’s what we’ve done in the last 3 weeks:


  • Added documentation to clarify the difference between Select nodes with a Boolean which port versus those with an integer which port. [#6678]
  • Added instructions to the manual for finding an example composition’s description. [#6751]


  • Under the vuo.layer node set:
    • Added the DisplayImagesOnLayers example composition. [#6650]
    • Added the RotateGears example composition. [#6650]
  • Under the vuo.kinect node set:
    • Added the DisplayKinectImages example composition. [#6460]
  • Under the node set:
    • Added the PlayMoviesOnCube example composition. [#6602]
    • Added the PlayMovieWithButton example composition. [#6602]
    • Added the SimulateFilmProjector example composition. [#6602]
    • Added the SkimMovie example composition. [#6602]
  • Under the vuo.scene node set:
    • Added the Compare4Cameras example composition. [#5937]
    • Added the FlipPhoto example composition. [#5653]
  • Under the vuo.vertices node set:
    • Added the BounceLineStrip example composition.
  • Added the ability to bundle image (.png) and movie (.mov) files with the example compositions for a node set. [#6828]

Vuo Editor

  • Added the ability to manually fire a trigger port (by either right-clicking on it and selecting the menu option or ⌘ clicking on it). (Thanks to @George_Toledo for feedback that led to this feature.) [#6497]
  • Added the ability to select a type converter node, rather than having one automatically selected for you, when connecting a cable. [#5164]
  • Added highlighting of a node’s connected cables when the node is selected. (Thanks to @mnstri for suggesting this feature.) [#4964]
  • Added the estimated frequency of events to port popovers. [#5267]
  • Added the ability to search for any node with a trigger port by using the keyword “events”, “trigger”, or “fire”. [#6131]
  • Added recently-opened example compositions to the “Open Recent” menu. [#6662]
  • Added the “Edit > Composition Information” menu item, which displays a composition’s description. [#6751]
  • Improved the way that selected nodes are rendered so that their titles are more legible. [#4964]
  • Made the “Zoom In” action try to keep any selected nodes and cables visible. [#5938]
  • Made the composition window appear farther to the right (when the screen is wide enough) so that node popovers pop up to the left. [#6787]
  • Removed some redundant information from port popovers to make them easier to skim and less obstructive. [#6845]
  • Hid detached port popovers for compositions other than the topmost. [#6281]
  • Made detached port popovers follow the composition window when it is moved. [#4909]
  • Fixed port popovers showing blank instead of the output port’s latest value if the popover is opened while the composition is running. [#6074]
  • Fixed “untitled” window briefly appearing when double-clicking on a composition to launch the Vuo Editor. (Thanks to @George_Toledo for reporting this issue.) [#4882]
  • Fixed “untitled” window remaining visible when opening an example composition. [#6862]
  • Fixed inconvenient behavior when you copy a composition, then create a new composition, then immediately paste with ⌘ V. The composition is now pasted onto the canvas rather than into the search box. [#5333]
  • Fixed some long example composition names being cut off when displayed in node popovers. [#6621]
  • Fixed the right-click menu for drawers to say “Reset List” instead of “Delete Selected Node”. [#6308]
  • Fixed detached port popovers being displayed on top when other applications are active. [#6281]
  • Fixed issue where extra blank lines would appear in a composition file if, when editing a composition, cables are dragged but don’t end up being connected. [#6173]

Built-in Nodes, Types, and Input Editors

  • Added support for rendering composite images and 2D animations with the new vuo.layer node set. (Thanks to @mnstri for feedback that led to this feature.) [#6650]
  • Added support for receiving color and depth video from a Kinect with the new Receive Kinect Images node. [#6460]
  • Added the ability to create meshes from lists of points — new nodes Make Point Vertices, Make Line Vertices, and Make Line Strip Vertices. (Thanks to @George_Toledo for suggesting this feature.) [#5749]
  • Added the Decode Movie Image node to grab individual frames of a movie. [#6598]
  • Added the ability for the Play Movie node to seek to a specific movie time. [#6619]
  • Added the ability for the Play Movie node to pause a movie. [#6620]
  • Added the ability for the Play Movie node to change a movie’s playback rate (including playing backwards). [#6596] [#6597]
  • Added the ability for the Play Movie node to bounce movie playback between forward and backwards with the “mirror” looping mode. [#6601]
  • Added the Measure Time node to support playing and pausing animations. [#5653]
  • Added the Toggle node to alternate between values. [#6691]
  • Added the Changed, Increased, Decreased, Became True, and Became False nodes to output an event when a value changes. [#6849]
  • Added the Get Distance Between Points nodes. [#6852]
  • Added the Are All Hit node to use the output of an event-blocking node in situations where a Boolean is needed. [#6799]
  • Added the Is within Range nodes to check if a value is between two other values. [#6692]
  • Added Hold Value, Get Item from List, and Select nodes for some types that didn’t have them. [#6878]
  • Added the alpha input port to the Make 3D Object from Image and Shade with Image nodes. [#6759]
  • Improved the performance of graphics nodes by: [#6794] [#6896] [#6900] [#6901] [#6916]
    • recycling OpenGL textures and buffers
    • combining vertex attribute arrays into a single array before uploading
    • avoiding generating and uploading vertex attributes that aren’t used by the shader
    • making use of Vertex Array Objects
    • reducing some other redundant state changes and queries
  • Fixed the normals on the 3D object created by Make Cube and 3D objects transformed by Combine 3D Objects. [#6776]
  • Fixed the incorrect output of the Make List node for certain struct types, such as VuoPoint4D. [#6071]
  • Fixed the trigger ports of the Display Console Window, which were outputting incorrect text or crashing. (Thanks to @Pianomatic for reporting this issue.) [#6801]
  • Fixed occasional crashes when stopping a composition with a Get Mouse or Render Scene to Window Node immediately after clicking. [#6766]
  • Fixed inability to run a composition that contains multiple Sort nodes. [#6840]
  • Fixed some intermittent graphics glitches in compositions that process images. [#6859]
  • Fixed some memory leaks in the movie playback nodes. [#6894]


  • Changed the VuoImage_make() function to support recycling of textures. [#6794]
  • Changed the VuoImageRenderer and VuoSceneRenderer APIs to consistently use a single OpenGL context, allowing for optimizations. [#6900]
  • Fixed VuoRunner::getOutputPortSummary(), which was returning an empty string instead of the port summary. [#6074]