Vuo 1.2.0-alpha1 adds 28 new nodes, fixes a lot of bugs, and significantly improves graphics performance and reduces CPU usage.

Known issues

  • Some of the new features planned for Vuo 1.2 are not included in this alpha release (including the ability to turn compositions into reusable nodes, OSC output, and USB HID)
  • When in Free Trial mode, File > Export > Movie will crash after starting to render


Here’s what we’ve done in the last 2 months:

Example Compositions

  • Modified
    • Updated “Scan Barcodes” and “Rotate in Sequence” to use the new Reached Target port on the Smooth nodes, and moved “Rotate in Sequence” into the vuo.motion node set.
    • Improved performance of “Show Audio Frequencies”.

Built-in Nodes, Types, and Input Editors

    • Added Are Samples Populated.
    • Improved performance of Calculate Amplitude for Frequencies.
    • Fixed incorrect sample rates output from Mix Audio Channels.
    • Fixed occasional crashes when stopping a composition that contains Receive Live Audio.
  • vuo.console
    • Added “Copy” and “Select All” menu items to the menu shown by Display Console Window.
    • Prevented the console window from automatically scrolling when the user has scrolled up and is not at the end.
  • vuo.event
    • Added Allow Changes.
    • Added support for more data types in Changed.
    • Removed the unnecessary doors from the Are All Hit node’s input ports.
  • vuo.font
  • vuo.image
    • Added Make Noise Image.
    • Added Make Random Image.
    • Added Posterize Image.
    • Added Blend Image with Feedback.
    • Added Is Image Populated.
    • Sped up the loading of large, fully-opaque images (such as JPEGs) with Fetch Image.
    • Fixed line numbers for warnings/errors in the code entered into Make Image with Shadertoy.
    • Fixed a crash in Sample Color from Image when the point to sample is outside the image’s bounds.
    • Fixed a bug where Apply Mask ignored transparency in the input image.
  • vuo.layer
    • Added Is Layer Populated.
  • vuo.list
    • Added Change Item in List.
    • Added Is List Populated.
  • vuo.math
    • Added Add Lists.
    • Added Are Not Equal.
    • Added Compare Numbers.
    • Added support for random, Perlin noise, simplex noise, and atan2 functions in Calculate.
    • Fixed a crash in Count within Range when the Minimum port value is one greater than the Maximum.
  • vuo.mesh
    • Added Is Mesh Populated.
  • vuo.midi
    • Added Filter and Smooth Controller.
  • vuo.motion
    • Added a Phase port to the Wave node. (Thanks to @useful design for suggesting this feature!)
    • Added a Reached Target port to Smooth with Duration, Smooth with Rate, Smooth with Inertia, and Smooth with Spring.
  • vuo.mouse
    • Improved performance of Check Mouse Status.
  • vuo.osc
  • vuo.point
    • Renamed Measure Distance between Points to Measure Distance.
    • Improved performance of Merge XY Lists and Merge XYZ Lists.
  • vuo.rss
    • Added Find RSS Items by Title, Find RSS Items by Author, and Find RSS Items by Description.
    • Added an Image URL port to Get RSS Item Values so that images can be downloaded separately from the main feed, reducing the time it takes for Fetch RSS Items to execute. (Thanks to @Bodysoulspirit for asking about this!)
  • vuo.scene
    • Added Make Fisheye Camera and Make Targeted Fisheye Camera (Vuo Pro).
    • Added Make Icosphere, Make Cone, and Make Torus.
    • Added Is Scene Object Populated.
    • Added support for meshes created in Blender 2.63 and later in Fetch Scene. (Thanks to @MartinusMagneson and @Bodysoulspirit for requesting this feature!)
    • Added support for FBX 2011, FBX 2012, and FBX 2013 meshes in Fetch Scene.
    • Added ports Rows and Columns to Make Cube with Materials.
    • Improved performance of Add Noise to 3D Object and Explode 3D Object.
    • Fixed a bug where Make Sphere and Make 3D Square would output an invalid scene when Rows and Columns are too small.
    • Fixed an inconsistency between Make 3D Square and similar nodes by making this node output a single-sided object instead of two-sided.
  • vuo.screen
    • Avoided an unnecessary slowdown when an event hits Capture Image of Screen without changing the screen.
  • vuo.shader
    • Added Shade with Frosted Glass.
  • vuo.text
    • Added Is Text Populated.
    • Added a Minimum Decimal Places (zero padding) port to Format Number, and renamed some of the other ports for clarity. (Thanks to @pbourke for requesting this feature!)
  • vuo.type
    • Added Is Real Nonzero.
    • Added more nodes to convert between real numbers and points, and renamed some of the existing nodes.
    • Renamed Convert Integer to Boolean to Is Integer Nonzero.
    • Fixed skewed output images from Receive Live Video for certain cameras (PAR-corrected Firewire SD). (Thanks to @inadvisable for reporting this bug!)
    • Fixed a crash when using List Video Devices or Make Video Device with certain UVC USB 2.0 cameras. (Thanks to @dumski for reporting this bug!)
    • Fixed occasional crashes when stopping a composition containing Receive Live Video.
  • vuo.window
    • Added Is Cursor Populated.
  • Added an input editor for 2D and 3D Transform ports.
  • Improved performance of graphics nodes (creating shaders, applying 3D object filters, calculating bounds, using cameras, rendering scenes, rendering text).
  • Changed the default image wrap mode to clamp in order to eliminate edge artifacts.
  • Added a Multisampling (antialiasing) port to Render Scene to Image, Render Layers to Image, and Render Scene to Stereo Images.
  • Fixed occasional crashes when stopping a composition that renders graphics.

Vuo Editor

  • Improved performance when running compositions by reducing the amount of communication between the composition and the editor.
  • In the Export Movie dialog, added the ability to change the shutter angle (Vuo Pro).
  • In the Export Movie dialog, added the ability to set custom framerates and image dimensions.
  • Collapsed the “Specialize Port” context menu into one level, no submenus, when showing only a few types.
  • Improved response time for Node Library searches.
  • Made the previews of nodes in the Node Library fit better by omitting drawers.
  • Added shortcut keys for changing the canvas transparency.
  • Made it more efficient to insert a Share Value node by adding a context menu item to the canvas, and by making the constant value on an input port propagate to the Share Value node’s input port when the Share Value node gets connected.
  • Made node placement more convenient when using the Return key in the Node Library. The new node now appears underneath the mouse cursor.
  • Enabled zooming to a selection. When “Zoom to Fit” is used while nodes or cables are selected, the canvas is zoomed to fit the selection.
  • Changed the behavior of the “Undo” keyboard shortcut to be less confusing when using the Enter key in the Node Library to create nodes. The “Undo” now applies to the canvas, not the search bar.
  • Improved readability of the error dialog for missing node classes in a composition.
  • Added the Summarize Value node as an option when automatically inserting type-converter nodes.
  • Slightly lightened the canvas color in Dark Interface.
  • Fixed a bug where relative URLs in a composition would no longer point to the intended files after the composition was saved for the first time.
  • Fixed a crash when using the button in the crash dialog to reopen a composition after it had crashed while running in the editor.
  • Fixed the coloring of error popovers in Dark Interface.
  • Fixed a bug where type-converter nodes whose only outgoing cable was event-only would be collapsed.
  • Fixed a bug where, after connecting a data-and-event cable to an event-only. port and then undoing, the cable would appear as event-only.
  • Fixed the lack of error handling when trying to open a composition that the user doesn’t have file permission to view.
  • Fixed incorrect results when undoing or redoing while dragging a cable by temporarily disabling undo/redo during cable drags.
  • Fixed the inability to stop a composition during a live-coding reload.


  • Clarified the documentation for many nodes.

Vuo Compiler and Runtime

  • Sped up compiling of compositions, especially ones with a large number of nodes.
  • Sped up compiling the first composition after installing a new node class. Third-party node classes are now cached separately from built-in node classes.
  • Improved performance of running compositions (memory management, AppKit event loop, exclusive locks on nodes).
  • Improved performance when running exported apps by eliminating communication that would normally go from the composition to the runner.
  • Reduced the amount of events dropped by compositions, especially in situations where a slower-firing trigger would drop all of its events because it was competing with a fast-firing trigger.
  • Fixed the 1-second wait when stopping a composition. (Thanks to @cwright for reporting this bug!)
  • Fixed memory leaks of data fired from trigger ports during live-coding reloads.


  • Composition runner API
    • Added an option (enabled by default) to exit all running compositions if the runner process dies. (Thanks to @lov for requesting this feature!)
    • Disabled, by default, most types of telemetry from the composition to the runner to improve performance. Added “subscribe” functions (e.g. subscribeToInputPortTelemetry()) to VuoRunner for enabling specific types of telemetry.
  • Node and type API
    • Gave shaders the ability to capture what’s been rendered so far using the renderBuffer uniform.
Attachment Size 66.51 MB