Vuo 2.0.0 includes many new features and a new visual design. Highlights include:
- New Vuo Community Edition, free for personal use and small organizations, and fully open source
- Added support for exporting more formats:
- FxPlugs for Final Cut Pro X and Apple Motion (Vuo Pro)
- macOS FFGL (FreeFrame 1.6+) plugins (Vuo Pro)
- macOS Screen Savers (Vuo Pro)
- HEVC/h.265 video
- Many new and improved Vuo editor features, such as:
- Comments
- Loading basic ISF shader files, and editing GLSL and ISF shader code
- Easier-to-use subcompositions — load from local folders, live-edit, more-intuitive event handling, package nodes as a subcomposition while preserving cable connections
- Thumbnail images in Image port popovers
- Easier-to-use generic types
- Work-in-progress français, español, and Deutsch translations for the Vuo editor interface
- Pinch-zoom and smooth scrolling
- Many new nodes, such as:
-
Find Faces in Image
(Vuo Pro) -
Make Image from Web Page
-
Speak
-
Make Triangles Object
-
Receive Touches
for multitouch trackpads -
Execute Shell Command
- Nodes for working with equirectangular panoramas and cubemaps
- Themeable UI nodes
-
- Many improved nodes, such as:
-
Make Text Layer
— scaling, stretching, wrapping - Support for playing RTSP video
- Improved rendering of semitransparent 3D objects
- Improved performance when decoding Hap video
- Simplified window nodes and time event flow
-
Vuo 2.0.0 supports macOS 10.10 and up.
Read on for all the details. Contents:
Changes between Vuo 1.2.8 and 2.0.0 {#changes-since-128}
Built-in Nodes, Types, and Input Editors
-
Layer node set
- Several improvements to
Make Text Layer
:- Text is now scaled when resizing the window (Thanks to @cwilms-loyalist for requesting this!)
- Added ability to nonuniformly scale text (Thanks to @cwilms-loyalist for requesting this!)
- Added ability to wrap text (Thanks to @dumski for requesting this!)
- Fixed issue where part of the last character was cut off when rendering a bold font with character spacing less than 1
- Fixed issue where leading spaces were ignored
- Fixed issue where text was sometimes slightly blurry when using some Anchor settings
- Changed
Get Layer Bounds
,Receive Mouse Drags on Layer
, andIs Point within Layer
to directly take a Layer as input, rather than a name of a Layer (Thanks to Ludwig Wittgenstein for suggesting this!) - Fixed issue where nonuniformly-scaled rectangle layers were blurry (Thanks to @Bodysoulspirit for reporting this!)
- Fixed issue where
Make Image Layer (Stretched)
had the wrong dimensions (Thanks to @Bodysoulspirit for reporting this!) - Changed
Make * Layer
nodes to give each layer a unique ID, and changed theCopy/Tile Layer
nodes to generate new unique IDs for the copies they create - Added Anchor and Opacity ports to more
Make * Layer
nodes - Added more sliders to
Make * Layer
nodes’ input editors - Renamed existing
Get Layer Bounds
node toGet Rendered Layer Bounds
, and added a newGet Layer Bounds
node that requires only a Layer as input - Merged
Make Color Layer
andMake Rounded Rectangle Layer
intoMake Rectangle Layer
- Changed
Arrange Layers in Grid
’s default size so it fits within the default window - Improved antialiasing on rounded rectangles
- Improved performance of bounds/layout when using text layers
- Added the ability to use
Get Child Layers
as a type converter - Fixed issue where
Combine Layers (Center)
would incorrectly calculate the size of text layers
- Several improvements to
-
Image node set
- Added
Find Faces in Image
node (Vuo Pro) (Thanks to @savienojums for requesting this!) - Replaced
Bulge Image
with a multi-point version (Thanks to @marioepsley for sponsoring this!) - Added
Make Image from Web Page
node (macOS 10.13 and up) - Added
Improve Downscaling Quality
(anisotropic mipmapping) node (Thanks to @George_Toledo for requesting this!) - Added
Convert Cubemap to Equirectangular
[Pro] node (Thanks to @alexmitchellmus for contributing this!) - Added
Convert Equirectangular to Fisheye
[Pro] node (Thanks to @pbourke for contributing this!) - Added
Translate Image
node (Thanks to @pbourke for contributing this!) - Added
Reveal Image (Linear)
node - Added
Dilate Image
node - Added
Add Film Grain
node - Added
Cubemap
type and Make/Get nodes - Modified
Render Image to Window
to respect the image’s Scale Factor - Added “Auto” option for
Warp Image with Projection Mesh
’s Width and Height ports - Added “Noise Center” port to the
Frost Image
node - Changed the
Twirl Image
node’s Angle range to allow counterclockwise twirling - Changed the
Blur Image *
nodes’ default settings for better performance - Fixed issue where
Blur Image
would output a black image when Type is Disc and Quality is 0 - Fixed issue where the
Mask Image by Brightness
node would output opaque images - Fixed issue where
Render Image to Window
ignored the image’s Retina scale factor - Improved image filter support on systems with low GPU RAM
- Added
-
UI node set
- Added
Make Action Button
,Make Toggle Button
, andMake Slider
UI widget nodes - Added
Make * Theme (Rounded)
andMake Material Theme
nodes, to customize the appearance of the new UI widget nodes
- Added
-
Scene node set
- Improved rendering of semitransparent 3D objects (transparent objects are now blended in back-to-front order) (Thanks to @Bodysoulspirit for requesting this!)
- Fixed incorrect textures when importing some meshes (Thanks to @George_Toledo for reporting this!)
- Added workaround for macOS OpenGL driver bug causing system crashes when using 3D object filter nodes on some GPUs (Thanks to @krezrock for reporting this!)
- Added
Make Triangles Object
node - Replaced the
Make * Mesh
nodes with easier-to-useMake * Object
nodes - Gave
Make Cube
the ability to take a cubemap as input - Added support in
Make Lines Object
,Make Line Strips Object
, andMake Points Object
for specifying per-vertex colors - Added support in
Fetch Scene
for loading per-vertex colors - Improved rendering performance for meshes with millions of vertices
- Improved performance of
Make 3D *
nodes by only regenerating the meshes if intrinsic mesh parameters changed (but not when only changing the shader or transform) - Changed
Arrange 3D Objects in Grid
’s default size so it fits within the default window - Added more sliders to
Make 3D *
nodes’ input editors - Added the ability to use
Get Child Objects
as a type converter - Fixed occasional crashes involving the
Make Cube with Materials
node - Fixed issue where the
Intersect/Subtract/Union/Flatten 3D Object
nodes output broken line, point, and non-element-based triangle meshes - Fixed issue where 3D object filters would output an invisible object if a scale axis was 0
-
Video node set
- Improved performance when decoding Hap video (Thanks to @conanp for requesting this!)
- Documented that movie files can’t change format during recording (Thanks to @kyrrelys for requesting this!)
- Improved support for playing RTSP video (Thanks to @jayeazy for requesting this!)
- Fixed issue where
Save to Movie
would duplicate or skip frames (Thanks to @David for reporting this!) - Fixed issue where some movies could cause
Step Movie Frame
to stop responding (Thanks to @cremaschi for reporting this!) - Added support for exporting H.264 movies up to 35 megapixels (macOS 10.13 and up)
- Added support for exporting HEVC/h.265 video (macOS 10.13 and up)
- Added support for exporting HEVC With Alpha video (macOS 10.15 and up)
- Added support for exporting ProRes 422 HQ, LT, and Proxy (macOS 10.15 and up)
- Added “Done” port to the
Save Images/Frames to Movie
nodes - Changed
Save Frames to Movie
to wait (rather than dropping frames) if AV Foundation can’t keep up, for more accurate rotoscoping (Save Images to Movie
, intended for realtime use, continues to drop frames when AV Foundation can’t keep up) - Fixed issue where playing some Hap movies in reverse produced no output
- Fixed issue where a composition would sometimes stop responding when stopping movie playback at the same time as it reaches the end of the movie
- Removed the “Start” and “Stop” ports from
Receive Live Video
(it now starts automatically) - Rewrote
Receive Live Video
to use AV Foundation - Improved performance when playing back videos using FFmpeg
- Updated to HapInAVFoundation.framework version 1.6.9
- Updated to FFmpeg 4.2.1
-
Window node set
- Fixed issue where non-resizable windows would sometimes be the wrong size when going full-screen (Thanks to @philhaldane for reporting this!)
- Modified
Change Fullscreen Status
so it moves non-fullscreen windows, too (Thanks to @pbourke for requesting this!) - Renamed
Change/Reset Window Aspect Ratio
toLock/Unlock Window Aspect Ratio
- Replaced “Set Window Properties” (list) ports with “Set Window Description” (single-value) ports
- Added the ability for the
Change Window Size
to resize the window to be larger than the screen - Modified
Change Fullscreen Status
to refrain from going full-screen when the specified screen isn’t available - Fixed issue where
Change Fullscreen Status
would, if the secondary screen is selected, incorrectly go fullscreen on the primary screen if the secondary screen isn’t attached - Fixed issue where using
Change Fullscreen Status
to change from one fullscreen to another would incorrectly go fullscreen on the original screen
-
Audio node set
- Added
Speak
node (Thanks to @krezrock for requesting this!) - Fixed issue where the audio nodes would unexpectedly use the first audio device when they were supposed to use the default audio device (Thanks to @Joëlle for reporting this!)
- Fixed issue where
Specify Audio Input/Output by Name/Model
failed to select a device (Thanks to @cremaschi for reporting this!) - Added “Bipolar” and “Absolute” modes to the
Make Image from Channels
node - Added “Sync Center” and “Attenuate Ends” ports to the
Make Audio Waveform
node - Moved the trigger port from
Send Live Audio
to a newFire at Audio Rate
node - Updated to Gamma version 0.9.8
- Added
-
Kinect node set
- Changed depth images so closer objects are lighter and farther objects are darker (Thanks to @Scratchpole for suggesting this!)
- Added the ability for
Receive Kinect Images
to choose between receiving RGB or infrared images (Thanks to @marcorexo1 for requesting this!)
-
App node set
- Added
Execute Shell Command
(sandboxed) node
- Added
-
OSC node set
- Added
Make Message (List)
andGet Message Values (List)
nodes to decode OSC messages having any number of values with a single type (Thanks to @IP Identity Problem for requesting this!) - Renamed OSC “Data” ports to “Value”
- Fixed occasional composition crashes when live editing compositions while they’re sending or receiving OSC messages
- Added more debug information for OSC exceptions
- Added
-
Transform node set
- Clarified description of rotation direction and order of operations (Thanks to @pbourke for requesting this!)
- Added
Transform Point
andTransform Points
(Thanks to @wmackwood for requesting this!)
-
Syphon node set
- Fixed issue where
Send Syphon Video
didn’t send anything if the “Server Name” was empty (Thanks to @cwilms-loyalist for reporting this!) - Renamed
Send/Receive Image via Syphon
nodes toSend/Receive Syphon Video
- Fixed issue where
-
List node set
- Added
Sort List
node - Added
Remove Duplicates from List
node - Renamed
Build List
andProcess List
’s ports to clarify their meaning
- Added
-
Time node set
- Renamed
Subtract Times
toSubtract Date-Times
(Thanks to @marioepsley for requesting this!) - Fixed unexpected output from the
Schedule
node when looping
- Renamed
-
Data node set
- Added ability to append to a file in the
Save Data
node (Thanks to @cwilms-loyalist, @marcozora, and @pbourke for requesting this!) - Added generic
Is Populated
node, replacing the old per-typeIs [type] Populated
nodes, and made it also work for shaders (Thanks to @Mechanica for requesting this!) - Added “Finished Playback” port to the
Record and Play Values
node - Streamlined the
Hold Value
by removing the rarely-used “Initial Value” port - Improved performance of
Are Equal
when comparing text
- Added ability to append to a file in the
-
Math node set
- Added the ability to search the node library by math symbols (Thanks to @MartinusMagneson for requesting this!)
- Modified
Count within Range
andLimit to Range
so, when wrapping using Real values, the minimum is inclusive and the maximum is exclusive
-
Blackmagic node set (Vuo Pro)
- Fixed issue where multiple instances of the
Receive Blackmagic Video
node might conflict with each other (Thanks to @cwilms-loyalist for reporting and sponsoring this!) - Updated to Blackmagic SDK version 11.5
- Fixed issue where multiple instances of the
-
USB HID node set
- Added support for wildcards (glob) in HID, OSC, RSS, Serial, and Syphon find/filter nodes (Thanks to @microlomaniac for requesting this!)
- Fixed possible crash when using USB HID nodes on macOS 10.15
-
Table node set
- Added
Find Table Row
node (Thanks to @cwilms-loyalist for requesting this!)
- Added
-
RSS node set
- Added the ability to read Atom feeds
-
Text node set
- Added support for wildcards (glob and regex) in the
Compare Texts
node
- Added support for wildcards (glob and regex) in the
-
Tree node set
- Added support for wildcards (glob and regex) in the
Find Subtrees with *
nodes - Fixed issue where the
Make Tree from JSON
andFetch JSON Tree
nodes didn’t properly handle ampersands in strings
- Added support for wildcards (glob and regex) in the
-
Mouse node set
- Added
Receive Touches
node for multitouch input from trackpads - In the
Receive Mouse Buttons
node, added “Force Pressed” and “Pressure Changed” outputs for Force Touch trackpads
- Added
-
Event node set
- Added
Share Event
node
- Added
-
Type node set
- Added
Convert Real to Options
node to easily select from multiple enum values
- Added
-
Console node set
- Modified
Display Console Window
to add a linebreak even when the input text is null
- Modified
-
URL node set
- Updated to cURL version 7.65.3
- Updated to OpenSSL version 1.1.1c
-
Fixed issue where graphics windows might zoom or minimize when double-clicking on the content area after exiting full-screen mode (Thanks to @Scratchpole and @Bodysoulspirit for reporting this issue!)
-
Fixed issue where some
Get * Input/Output Values
nodes would output incorrect information when the input is a constant value rather than a cable (Thanks to @cwilms-loyalist for reporting this!) -
Removed the “Requested Frame” trigger port from the
Render Image/Layers/Scene to Window
nodes, in favor of using theFire on Display Refresh
node -
Replaced the “Showed Window” and “Rendered Layers” ports on
Render Image/Layers/Scene to Window
nodes with a new all-in-one “Updated Window” port -
Reordered ports on some nodes so the the port actions are at or near the top
-
Renamed
Make * Device
nodes toSpecify * Device
to clarify their purpose -
Updated the
Make Image with Shadertoy
node to use the new ShaderToy syntax -
Increased the number of decimal places supported by the Real number input editor
-
Reduced latency when rendering to graphics windows
-
Added support for macOS dark mode in graphics windows and console windows
-
Made all the
List Device
nodes fire an event when a device is added or removed -
Fixed issue where a composition would sometimes stop responding when dragging a graphics window between a non-Retina and a Retina display
-
Fixed occasional crashes when stopping a composition with a Unix signal
-
Fixed occasional crashes when stopping some nodes that fire events, or deleting them from a running composition
-
Reduced GPU memory usage when working with fully-opaque images
-
Fixed issue where Vuo compositions run in VDMX would stop rendering if the output image was a different size than what VDMX requested
Exporting Apps and Plugins
- Added support for exporting more formats:
- FxPlugs for Final Cut Pro X and Apple Motion (Vuo Pro)
- macOS FFGL (FreeFrame 1.6+) plugins (Vuo Pro)
- macOS Screen Savers (Vuo Pro)
- Added the ability to customize the About box in exported apps (Thanks to @Bodysoulspirit for requesting this!)
Vuo Editor
-
Added Vuo Community Edition, free for personal use and small organizations
-
Added support for comments on the canvas (Thanks to @Luiz Andre for requesting this!)
-
Added support for loading basic ISF shader files, and for editing GLSL and ISF shader code
-
Added support for loading subcompositions and custom nodes from a local folder (Thanks to @DiGiTaLFX for requesting this!)
-
Changed subcompositions so each event enters only through the input ports that the event hit (instead of all input ports). See this page for more information. (Thanks to @Pianomatic for requesting this!)
-
Added the ability to view events, view port values, change constant values, live-edit, and manually fire events in subcompositions when their top-level composition is running, without needing to save the subcomposition or restart the top-level composition
-
Changed protocol compositions so custom published input ports transmit events when changing their values (Thanks to @lov for requesting this!)
-
Added “Package as Subcomposition” action (combines selected nodes into a subcomposition)
-
Added “Change To” action (changes one node to another, preserving cables and constant values where possible)
-
Added thumbnail images to Image port popovers
-
Redesigned the “Set Data Type”/“Revert to Generic Data Type” menu to be simpler — now you can change types with a single click, without having to first revert
-
Added support for respecializing generic ports by simply dragging a cable (you no longer need to first reset the port to generic)
-
Redesigned the visual appearance of nodes and cables (Thanks to @Bodysoulspirit and others for your drafts!)
- Simplified the shape of nodes by making them rounded rectangles with exterior port circles
- Simplified the shape of constant values by merging them into their port
- Simplified the appearance of nodes by removing Refresh ports, Interface radio arcs, and Stateful bars
- Simplified the appearance of list drawers by merging the handle into the drawer
- Changed cables to be straight rather than curved
- Added a canvas “Grid > Points” mode
- Switched to a more minimalist font
- Made node tint colors more vibrant
- Made nodes and cables fully opaque
- Made selected nodes more intense
- Made cable highlight more intense when selecting a node
- Increased difference in line weight between event-only and data-and-event cables
- Increased line weight of walls and doors
- Redesigned the Vuo logo, app icon, and composition icon
- Capitalized constant values in ports with enum types
-
Redesigned the Vuo editor interface
- Made it flatter and more rounded (Thanks to @Bodysoulspirit and others for your drafts!)
- Added the ability to hide toolbar labels, resulting in a narrow combined titlebar/toolbar (Vuo Pro)
- Changed the Find bar to cover only the canvas (not the node library or other sidebars)
-
Added work-in-progress français, español and Deutsch translations for the Vuo editor interface (Thanks to @planetariosdelsur for requesting this, and thanks to @Bodysoulspirit for your work on this!)
-
Added a preference to disable interface translations (Thanks to @Bodysoulspirit for requesting this!)
defaults write org.vuo.Editor translation.enable -boolean false
-
Added the ability to pinch-zoom on the canvas (Thanks to @cwright for requesting this!)
-
Changed rubberband-dragging to not select cables by default (hold option to select cables) (Thanks to @MartinusMagneson for requesting this!)
-
Made canvas scrolling smoother (Thanks to @Bodysoulspirit for requesting this!)
-
Enabled Vuo editor to automatically reload modified nodes (Thanks to @jvolker for requesting this!)
-
Fixed issue where infinite feedback loops could be created through subcompositions with internal trigger ports (Thanks to @MartinusMagneson for reporting this!)
-
Added the ability to edit the node class name prefix upon “Save/Move Subcomposition to User Library” (Thanks to @MartinusMagneson for requesting this!)
-
Added support for syncing the user library between multiple systems using, e.g., Dropbox (Thanks to @DiGiTaLFX for requesting this!)
-
Fixed issue where Vuo editor would unhide itself if detached popovers were open (Thanks to @krezrock for reporting this!)
-
Fixed issue where quitting from the Dock with unsaved changes would close the window but not actually quit (Thanks to @prackvj for reporting this!)
-
Fixed hang when launching a new Vuo version with many subcompositions installed in the User Modules or System Modules folders (Thanks to @ops and @wmackwood for reporting this!)
-
Added “Move to Trash” and “Show in Finder” to the context menus for custom nodes and subcompositions (Thanks to @Bodysoulspirit for requesting this!)
-
Fixed issue where the compiler would sometimes mix up nodes downstream of triggers in subcompositions in exported apps, leading to crashes (Thanks to @wmackwood for reporting this!)
-
Fixed issue where detaching a popover, closing the composition, then using macOS’s ‘Hide’ action would cause Vuo Editor to crash (Thanks to @prackvj for reporting this!)
-
Fixed crash when launching Vuo Editor with many subcompositions installed in the User Library (Thanks to @ops for reporting this!)
-
Added ability to close the node library by pressing ⎋ (Thanks to @Pianomatic for requesting this and to @Bodysoulspirit for reporting a related issue!)
-
Fixed issue where type converters were not offered when connecting a list to a single-value port (Thanks to @Bodysoulspirit and @kingluma for reporting this!)
-
Fixed issue where the Secondary Click with Two Fingers gesture wouldn’t always work (Thanks to @timwessman for reporting this!)
-
Fixed crash when connecting a cable to the left side of a type converter and changing the data type of that type converter (Thanks to @cremaschi for reporting this!)
-
Fixed some incorrect behavior and crashes when installing/uninstalling custom node sets that use generic types (Thanks to @dumski for reporting this!)
-
Added the ability to edit composition metadata (display name, version, icon, description, keywords, license, web links, app bundle identifier)
-
Added a preview of the node class name in the “Save/Move Subcomposition to User Library” dialog
-
Added a “Quick Start” introductory example composition
-
Added Image Transition protocol
-
Added more templates to File > New Composition from Template (Image Transition, Movie, Screen Saver, FFGL, FxPlug)
-
Added the ability to create a
List Files
node when dragging a folder from Finder onto the canvas -
Added more node choices when dragging files from Finder onto the canvas
-
Added the ability to connect an event-only cable to a node’s first non-Action port by dropping a cable anywhere on its header
-
Added “New Port” button in the published port sidebars
-
Improved live-editing speed by merging more actions together into a single recompile and reload
-
Improved canvas rendering speed
-
Redesigned the Welcome window and Vuo Pro activation process
-
Made menus and popover titlebars dark when in Dark Interface mode (Vuo Pro)
-
Added “Show in Finder” actions for subcompositions and shaders in the node documentation panel and canvas node context menu
-
Changed cable duplication behavior to preserve hidden status after completing the drag
-
Changed port publishing behavior to automatically show the name editor
-
Added the ability to search the node library by port type (for example,
in:image
orout:transform
) -
Added the ability to search the composition for deprecated nodes (Edit > Find, search for the text
deprecated
) -
Added the ability to create other common nodes (
Share Value/List/Event
,Hold Value/List
,Allow First Event/Value
,Allow Periodic Events
,Allow Changes
) from the canvas context menu -
Added the ability to create new subcompositions from the canvas context menu
-
Added automatic zoom-to-fit when opening a composition
-
Streamlined some error dialogs and added links to the Vuo manual
-
Added indication in a trigger port’s popover when its events are blocked from exiting a subcomposition
-
Added the ability to dismiss attached port popovers by pressing Esc or by clicking a second time on its port
-
Made it easier to connect cables to published input/output ports by extending the drop zone
-
Added some helpful links to the Help menu
-
Added support for dragging feedback error popovers
-
Added support for connecting a cable when it would displace a cable with a latent feedback loop
-
Added a link to the vuo.org Node Gallery in the missing node dialog
-
Added a keyboard shortcut for toggling the published port sidebars
-
Changed editor windows to open on the current main screen when “System Preferences > Mission Control > Displays have separate Spaces” is enabled
-
Reworded the File > Export menu items for clarity (changed “Activate Protocol to…” prefix to “…(requires protocol)” suffix)
-
Added the ability to select a cable by clicking on the part nearest the input port it connects to
-
Fixed issue where closing a full-screen editor window could leave an empty Space
-
Fixed issue where the node documentation would scroll back to the top when clicking on an already-selected node
-
Fixed issue where consecutive spaces in node titles would be condensed into 1 space
-
Fixed issue where a data-and-event cable sometimes wouldn’t be displaced when connecting another data-and-event cable to an input port
-
Fixed issue where clicking Run then immediately clicking Stop would leave the Run button disabled
-
Fixed issue where minimizing a composition window would also hide its published port sidebars
-
Fixed issue where the ghost of a closed composition window would sometimes later appear
-
Fixed issue where a port’s “Auto” value wasn’t propagated to published input ports
-
Fixed issue where using the “Save As” menu item to save a composition into the User Modules folder, without specifying an extension, could overwrite an existing composition with the same name
-
Fixed issue where protocol ports sometimes weren’t in the correct order when a protocol composition was used as a subcomposition
-
Fixed issue where the node library’s row height would sometimes change between Vuo editor launches
-
Fixed issue where, when the node library is floating, dragging a node would sometimes move the library instead of creating a node
-
Fixed issue where cables and constant values weren’t preserved when opening compositions with missing nodes
-
Fixed occasional crashes when live editing with popovers (e.g., adding a node then opening a popover for one of its ports before the compile/reload has finished)
-
Fixed occasional crashes when rapidly undoing then redoing
-
Fixed occasional crashes when toggling Dark Interface mode (Vuo Pro)
-
Fixed occasional crashes when selecting a node then immediately closing the composition window
-
Fixed crash when trying to save a subcomposition that contains itself
-
Fixed crash after closing a composition window while an input editor is open
-
Fixed crash when disconnecting a published input cable from a collapsed type converter’s child port and, in the same mouse drag, reconnecting it to the type converter’s parent port
-
Fixed crash when closing a composition window while a context menu is active then clicking an item in the still-visible context menu
-
Added a progress indicator while exporting apps and plugins
-
Added ability to search the node library for nodes that adhere to a protocol (
image filter
,image generator
,image transition
) -
Added ability to search the node library and canvas for subcompositions (
subcomposition
orsource:.vuo
), shaders (source:.fs
), C-language nodes (source:.c
), and custom precompiled nodes (source:.vuonode
) -
Added more search keywords for
Select
nodes -
In exported macOS apps that use nodes available on certain macOS versions (e.g.,
Make Image from Web Page
), added a property so that macOS shows an error dialog when launching the app on an incompatible macOS version (rather than letting the app crash) -
Fixed occasional crash when cancelling a cable connection
-
Improved composition launch speed by bundling more native precompiled code (rather than LLVM bitcode)
-
Improved first-time editor launch speed by bundling the built-in node and type cache with Vuo editor (instead of generating it on first launch)
-
Improved usability of lists of colors — when you expand a drawer, the colors now default to fully opaque (rather than fully transparent)
-
Renamed
Vuo Editor.app
to simplyVuo.app
-
Added a log of recent actions to crash reports, to help us investigate crashes
-
Added the Vuo editor version in which the composition was created, and the version in which it was last saved, to each composition
-
Moved protocol example compositions higher in the Open Example menu, to make them easier to reach on small screens
-
The model node in the node documentation panel now shows a context menu when applicable (same as the row in the node library)
-
Fixed crash when attempting to specialize a port in a broken custom node
-
Enabled the “Re-fire Event” menu item in subcompositions when a parent composition is running
-
Fixed occasional crash when dragging a cable in a composition with many generic ports
-
Fixed issue where, after scrolling, the canvas would sometimes become unresponsive until the next scroll
-
Fixed issue where hidden cables were not visible while duplicating them with ⌥-drag
-
Fixed misleading highlighting during cable drags on list ports
-
Fixed subcompositions and shaders being incorrectly added to the “File > Open Recent” menu when opened from the canvas
-
Fixed port rendering glitch when dragging a cable that can’t be connected to a list drawer’s ports, but can be connected directly to the node
-
Fixed issue where changing a data+event cable to an event-only cable while connecting it to a new input port could leave a stranded collapsed typecast attached to the original input port. [#10854]
-
Fixed issue where nodes with a Window input might behave incorrectly after a live-editing reload
-
Fixed issue where, if multiple audio devices with the same model number are connected, the audio input/output device input editor would always match the first device with a given model number, rather than the actual selected device
-
Fixed occasional crash when editing an input port value shortly after a live-editing reload
-
Fixed issue where some enum (menu) input ports showed integer input editors when published
-
Improved undo/redo performance in compositions with many hidden cables
-
Improved formatting in the dialog reporting missing nodes
-
Fixed some menu item names to use Unicode ellipses per the macOS HIG
-
Vuo editor is now Notarized by Apple
Documentation and Examples
- Example compositions
- Redesigned the visual appearance of many example compositions, and changed the default images for Image Filter protocol compositions (Thanks to @jersmi, @mixfilet, @Luiz Andre, and @Bodysoulspirit for sharing compositions!)
- Added “Show Text Shadow” (Thanks to @Bodysoulspirit for contributing this!)
- Added “Show Mouse With Shadertoy” (Thanks to @pbourke for requesting this!)
- Changed example composition color scheme to be more accessible to people with color-blindness
- Fixed issue where the “Draw Curve” example composition’s curve would sometimes have gaps
- Fixed issue where the “List Countries” example composition would render invalid Unicode characters
- Fixed issue where some compositions (such as “Meet the Ghost of Einstein”) would sometimes initially show checkerboard images instead of the properly shaded output
- Fixed choppy audio when running “Synchronize Oscillators” on some old Mac systems
- Improved formatting of example composition names in the File > Open Example menu
- Updated all example compositions to avoid using deprecated nodes and refresh ports, and to improve node and cable layout
- Fixed broken
Display Pet Adoptions Table
example composition (the data disappeared from the original source) - Improved performance of the
Move Beads On String
example composition
- Node documentation
- Added a summary of each node set on https://doc.vuo.org/2.0.0/node/
- Added documentation in the Image node set on searching for generator/transition protocol nodes
- Reworded transform port descriptions to be easier to understand
- Updated node and node set documentation on setting data types for generic ports
- Clarified the documentation on text and output size for the
Make Text Layer
andMake Text Image
nodes - Updated the recommended method for keeping text sharp in the
Make Text Image
documentation - On node set pages, alphabetized nodes by title (rather than class name)
- Manual
- Documented all the new features in Vuo 2.0 (whew.)
- Added a high-contrast version of the Vuo manual (Thanks to @lechbialek for requesting this!)
- Added a searchable Apple Help Book version of the Vuo manual
- Added a glossary to the Vuo manual
- Added a diagram showing the difference between System, User, and Composition-Local libraries
- Expanded the Vuo manual’s troubleshooting section to discuss thermal throttling
- Improved documentation and examples of feedback loops
- Documented the various kinds of search phrases supported by the node library and canvas search
- Expanded documentation on troubleshooting nodes not showing up in node library search
- Expanded and clarified the section on changeable data types, particularly the part about connecting cables
- Fixed incorrect/outdated references to menu items
- Fixed various typos, broken links, and broken formatting
Vuo Compiler and Runtime
- Fixed issue where compositions would get stuck when they contain a subcomposition with a node that fires events without any outgoing cables (Thanks to @Mechanica for reporting this!)
- Reduced size of exported apps and plugins by excluding unused dependencies
- Fixed occasional crashes when compiling C code on multiple threads
- Fixed rare deadlock in generated code involving a scatter downstream of one trigger, with the branches of the scatter ending at nodes containing other triggers
- Fixed crash when running compositions with custom nodes that have ports with leading underscores
- Fixed crash when attempting to open a file that’s a valid Graphviz graph but not a valid Vuo composition
- Fixed occasional garbled compiler error messages
Source Code
- We now provide the source code for Vuo editor
- Improved build speed by using more forward declarations, removing unneeded headers, and restructuring precompiled headers
- Switched from qmake to CMake
- Switched to Conan for dependency management
SDK
Vuo.framework 2.x is not binary-compatible with Vuo.framework 1.x; you’ll need to make some changes to your host code. In particular:
- The SDK is now Notarized by Apple and distributed as a macOS Installer Package, which installs to
/Library/Developer/Vuo
. - The VuoRunner API has changed:
- Instead of setting published input port values with individual calls, set multiple at once using the new VuoRunner::setPublishedInputPortValues method.
- Instead of firing an event into all published inputs, use the new VuoRunner::firePublishedInputPortEvent method to fire an event into only the ports whose values have changed since the previous frame.
- Instead of waiting for any published output port event, wait for the specific event the host app fired into the composition using the new VuoRunner::waitForFiredPublishedInputPortEvent method.
- See VuoRunner::waitForFiredPublishedInputPortEvent for an example of updating port values, firing an event, waiting, and retrieving the result — the process for rendering a frame.
- In addition to the existing VuoImage methods, there are some new methods:
- Reorganized 3D object and layer types:
- Converted the
VuoSceneObject
,VuoMesh
,VuoLayer
, andVuoRenderedLayers
types to opaque heap types, and added more getter/setter methods - The
VuoMesh
type is no longer exposed via the editor UI — when you create custom nodes, useVuoSceneObject
ports instead - Removed the
VuoSubmesh
type — eachVuoMesh
is now just a single mesh - Added support for
VuoMesh
per-vertex colors - Reduced the memory requirements of VuoMesh vertex attributes:
- Changed Positions and Normals from
VuoPoint4d
to 3 xfloat
- Changed Texture Coordinates from
VuoPoint4d
to 2 xfloat
- Removed Tangents and Bitangents, which are now calculated on-the-fly when needed
- Changed Positions and Normals from
- Converted parts of the
VuoSceneObject
struct into a union, which reduces memory size by about 15% - Changed
VuoSceneObject
so that only objects of type Group can have child objects - Changed
VuoSceneObject_copy
to increment the VuoMesh reference count, instead of making a copy - Replaced the overworked
VuoSceneObject_make
method with the simplerVuoSceneObject_makeMesh
andVuoSceneObject_makeGroup
methods
- Converted the
- Subcompositions are now automatically recompiled and reloaded when they change (Thanks to @mrray for reporting this!)
- Switched from libstdc++ to libc++ (Thanks to @Kino for requesting this!)
- Removed the need for apps that link with Vuo.framework to also link with Vuo’s auxiliary dylibs
- Added the ability for
vuo-render
to output SVG - Added the ability for
vuo-render --render-missing-as-present
to render ports and cables on missing nodes - Added
vuo-run
option--stop-after=2s
to run and automatically stop a composition after a certain amount of time - Added
vuo-run
option--repeat=42
to rebuild and rerun each of the selected compositions a certain number of times - Added
vuo-run
option--lldb
to run the composition in LLDB - Changed the format of the port details
menuItems
key to be an array-of-strings-or-objects, since JSON objects aren’t guaranteed to preserve order - Switched examples from qmake to CMake
- Improved first-time launch speed by bundling the built-in node and type cache with Vuo.framework (instead of generating it on first launch)
- Updated the “Developing Applications that Use Vuo” documentation for the latest Xcode version
- Added the ability to link to other nodes in node documentation
- Added the ability to set port details (suggestedMin/Max/Step) for elements in list input ports
- Added backtraces to exceptions, and included them in crash reports
- Simplified working with VuoPoint2/3/4d types by switching from
struct
toext_vector_type
(which supports vector operators and swizzling) - Added VuoListForeach method, to make list iteration easier.
- Fixed some situations in which a composition that doesn’t output any events could cause a host to stop responding
- Fixed crash when passing unrecognized arguments to command-line utilities
- Fixed issue where
VuoListCreateWithCount_*()
didn’t retain the element passed to it - When compiling nodes and types, added compiler flag so that implicit declarations are errors (not merely warnings)
- Improved reference-counting diagnostics
- Improved compiler error messages
See the API reference for the full list of API changes.
Changes between Vuo 2.0.0-beta4 and 2.0.0 {#changes-since-200beta4}
Built-in Nodes, Types, and Input Editors
- Fixed issue where some 3D object filters leaked memory (Thanks to Giovanni Bombaci and @Scratchpole for reporting this!)
- Added
Convert Cubemap to Equirectangular
(Thanks to @alexmitchellmus for contributing this!) - Added the ability for
Receive Kinect Images
to choose between receiving RGB or infrared images (Thanks to @marcorexo1 for requesting this!) - Added
Transform Point
andTransform Points
(Thanks to @wmackwood for requesting this!) - Fixed issue where nonuniformly-scaled rectangle layers were blurry (Thanks to @Bodysoulspirit for reporting this!)
- Fixed issue where compositions would get stuck when they contain a subcomposition with a node that fires events without any outgoing cables (Thanks to @Mechanica for reporting this!)
- Changed the rotation order in
Convert Equirectangular to Fisheye
(Thanks to @pbourke for requesting this!) - Added
Translate Image
node (Thanks to @pbourke for contributing this!) - Fixed issue where some movies could cause
Step Movie Frame
to stop responding (Thanks to @cremaschi for reporting this!) - Modified
Change Fullscreen Status
so it moves non-fullscreen windows, too (Thanks to @pbourke for requesting this!) - Fixed issue where
Make Image Layer (Stretched)
had the wrong dimensions (Thanks to @Bodysoulspirit for reporting this!) - Added generic
Is Populated
node, replacing the old per-typeIs [type] Populated
nodes, and made it also work for shaders (Thanks to @Mechanica for requesting this!) - Fixed issue where using
Change Fullscreen Status
to change from one fullscreen to another would incorrectly go fullscreen on the original screen - Added more debug information for OSC exceptions
- Added support in
Make Lines Object
,Make Line Strips Object
, andMake Points Object
for specifying per-vertex colors - Gave
Convert Equirectangular to Fisheye
aWidth
port (defaults to Auto) - Added
Cubemap
type and Make/Get nodes - Gave
Make Cube
the ability to take a cubemap as input - Fixed issue where some 3D object filters generated incorrect normals
- Fixed possible crash when using USB HID nodes on macOS 10.15
- Updated to Blackmagic SDK 11.5
Exporting Apps and Plugins
- Added Project/Group/EffectSource/FxPlug labels to FxPlug Motion templates for easier navigation (Thanks to @funwithstuff for requesting this!)
- Changed blur, outline, sharpen, and dilate nodes so they respect the FxPlug host’s playback quality (Thanks to @kingluma for requesting this!)
- Added support for option parameters in FFGL plugins running in Resolume Avenue and Arena 7.0.3+
- Fixed issue where Real and Color values were incorrect in FFGL plugins running in Resolume Avenue and Arena 7.0.3+
Vuo Editor
- Fixed issue where quitting from the Dock with unsaved changes would close the window but not actually quit (Thanks to @prackvj for reporting this!)
- Fixed hang when launching a new Vuo version with many subcompositions installed in the User Modules or System Modules folders (Thanks to @ops and @wmackwood for reporting this!)
- Fixed crash when running a composition after opening and modifying (without saving) a separate GLSL shader (Thanks to @eseftel for reporting this!)
- The model node in the node documentation panel now shows a context menu when applicable (same as the row in the node library)
- Fixed crash when attempting to specialize a port in a broken custom node
- In the “Change to” menu for deprecated nodes, the equivalent replacement node is now shown first in the list
- Enabled the “Re-fire Event” menu item in subcompositions when a parent composition is running
- Fixed misleading highlighting during cable drags on list ports
- Removed some less-useful respecialization options in the menu presented after a cable drag
- Fixed potential crash when attempting to restore documents after a prior crash
- Fixed issue where a list drawer would be left stranded in the parent composition when a published list input was deleted from a subcomposition
- Improved formatting in the dialog reporting missing nodes
- Fixed some crashes when live-editing sub-sub-compositions
- Fixed some menu item names to use Unicode ellipses per the macOS HIG
- Fixed crash when attempting to create an instance of a custom node with a generic port when the custom node doesn’t include source code
- Fixed crash when attempting to specialize a custom node with a generic port when the node’s source code isn’t bundled into a node set
- Fixed issue where sometimes the composition wouldn’t come to the foreground after being launched from the editor
- Fixed occasional crashes when saving a GLSL shader
- Fixed hang when running a composition after editing one of its sub-sub-compositions
Documentation and Examples
- Example compositions
- Added “Show Text Shadow” (Thanks to @Bodysoulspirit for contributing this!)
- Added “Show Mouse With Shadertoy” (Thanks to @pbourke for requesting this!)
- Updated all example compositions to avoid using deprecated nodes and refresh ports, and to improve node and cable layout
- Node documentation
- Added documentation in the Image node set on searching for generator/transition protocol nodes
- Reworded transform port descriptions to be easier to understand
- Updated node and node set documentation on setting data types for generic ports
- Clarified the documentation on text and output size for the
Make Text Layer
andMake Text Image
nodes - Updated the recommended method for keeping text sharp in the
Make Text Image
documentation
- Manual
- Documented all the new features in Vuo 2.0 (whew.)
- Improved documentation and examples of feedback loops
- Documented the various kinds of search phrases supported by the node library and canvas search
- Expanded documentation on troubleshooting nodes not showing up in node library search
- Expanded and clarified the section on changeable data types, particularly the part about connecting cables
- Fixed incorrect/outdated references to menu items
Source Code
- We now provide the source code for Vuo editor
SDK
- Improved compatibility with Xcode 11.3
- Reduced framework size by 7 MB (3.7 MB compressed) compared to 2.0.0-beta4
- Clarified debug log messages about which displays are connected to which GPUs
Attachment | Size |
---|---|
vuo-2.0.0.zip | 147.86 MB |
vuo-2.0.0-composition-examples.zip | 15.14 MB |
vuo-2.0.0-sdk.pkg | 77.95 MB |
vuo-2.0.0-src.zip | 50.18 MB |
vuo-2.0.0-en-solarized.pdf | 14.45 MB |
vuo-2.0.0-en-highContrast.pdf | 14.45 MB |
vuo-2.0.0-de-highContrast.pdf | 14.45 MB |
vuo-2.0.0-de-solarized.pdf | 14.46 MB |
vuo-2.0.0-es-highContrast.pdf | 14.45 MB |
vuo-2.0.0-es-solarized.pdf | 14.46 MB |
vuo-2.0.0-fr-highContrast.pdf | 14.45 MB |
vuo-2.0.0-fr-solarized.pdf | 14.46 MB |