Released on 2020.02.26
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 trackpadsExecute 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
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 Chris for requesting this!)
- Added ability to nonuniformly scale text (Thanks to Chris for requesting this!)
- Added ability to wrap text (Thanks to Teo 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 mle for sponsoring this!) - Added
Make Image from Web Page
node (macOS 10.13 and up) - Added
Improve Downscaling Quality
(anisotropic mipmapping) node (Thanks to @GeorgeToledo 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 Paul for contributing this!) - Added
Translate Image
node (Thanks to Paul 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 @GeorgeToledo for reporting this!)
- Added workaround for macOS OpenGL driver bug causing system crashes when using 3D object filter nodes on some GPUs (Thanks to Azy 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 mic 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 Paul 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 Azy 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 mic 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 Joe for suggesting this!)
- Added the ability for
Receive Kinect Images
to choose between receiving RGB or infrared images (Thanks to Marc 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 Bogu 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 Paul 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 Chris 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 mle 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 Chris, marcozora, and Paul 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 Magneson 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 Chris 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 Charles 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 Chris 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 Joe 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 Chris 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 André Gama 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 Philip 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 Magneson 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 Magneson for reporting this!)
- Added the ability to edit the node class name prefix upon "Save/Move Subcomposition to User Library" (Thanks to Magneson 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 Azy 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 Philip 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 mic for reporting this!)
- Fixed some incorrect behavior and crashes when installing/uninstalling custom node sets that use generic types (Thanks to Teo 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 André Gama, and Bodysoulspirit for sharing compositions!)
- Added "Show Text Shadow" (Thanks to Bodysoulspirit for contributing this!)
- Added "Show Mouse With Shadertoy" (Thanks to Paul 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
Built-in Nodes, Types, and Input Editors
- Fixed issue where some 3D object filters leaked memory (Thanks to Giovanni Bombaci and Joe 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 Marc 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 Paul for requesting this!) - Added
Translate Image
node (Thanks to Paul for contributing this!) - Fixed issue where some movies could cause
Step Movie Frame
to stop responding (Thanks to mic for reporting this!) - Modified
Change Fullscreen Status
so it moves non-fullscreen windows, too (Thanks to Paul 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 Paul 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
Download
vuo-2.0.0.zip
vuo-2.0.0-composition-examples.zip
vuo-2.0.0-sdk.pkg
vuo-2.0.0-src.zip
vuo-2.0.0-en-solarized.pdf
vuo-2.0.0-en-highContrast.pdf
vuo-2.0.0-de-highContrast.pdf
vuo-2.0.0-de-solarized.pdf
vuo-2.0.0-es-highContrast.pdf
vuo-2.0.0-es-solarized.pdf
vuo-2.0.0-fr-highContrast.pdf
vuo-2.0.0-fr-solarized.pdf