With this release came numerous new nodes and example compositions, as well as many bug fixes and usability improvements. New features include:
- 3D object filter nodes to warp 3D objects
- Stereoscopic rendering nodes for 3D imaging (premium)
- A mesh warping node for rendering on planetariums, domes, and other surfaces (premium)
- A barcode scanning node that finds barcodes within images
- Window and screen nodes to control a composition’s fullscreen status and other window parameters
- Audio output for the movie player node
- A Cocoa API to make it easier for developers to integrate Vuo into their Mac applications
Changes
Here’s what we’ve done in the last 3.5 months:
Example Compositions
Added 34 new example compositions:
- vuo.audio
- Control Volume
- Pan Audio
- Play Audio File And Loop
- vuo.image
- Find Barcode In Syphon Image
- Rotate Movie
- Scan Barcodes
- Warp Image For Fisheye Projection (premium)
- vuo.layer
- Change Grid Spacing
- vuo.list
- Show Instant Replay
- vuo.math
- Graph Functions
- Paint with Math
- vuo.midi
- Receive Midi Notes
- vuo.motion
- Draw Curve
- Spring Back
- vuo.mouse
- Show Mouse Clicks (recreated)
- vuo.movie
- Play Movie With Sound
- vuo.scene
- Add Noise To Clay
- Bend Sphere
- Divide Sphere
- Explode Sphere
- Facet Sphere
- Pinch Sphere
- Ripple Grid
- Skew Sphere
- Spike Sphere
- Trim Sphere
- Twirl Grid
- Bounce Stereo Sphere (premium)
- Change Traffic Signal
- Display Scene with Floor
- Replace Shader For Scene
- vuo.shader
- Spin Wireframe Sphere
- vuo.window
- Show Windows On 2 Screens
- Toggle Aspect Ratio
- Removed event-only cables into drawers, which are no longer necessary.
- Modified the Aim Flashlight composition to display the spotlight immediately, rather than waiting until the first mouse move.
- Increased font sizes in compositions where the text was hard to read on Retina displays.
- Fixed a bug in Play Movie With Button where the playhead could travel past the end of the scrubber bar. (Thanks to @bLackburst for reporting this issue!)
Built-in Nodes, Types, and Input Editors
- Added nodes:
- vuo.audio
-
Adjust Loudness
-
- vuo.event
-
Block Empty List
(Thanks to @cwilms-loyalist for inspiring this node!)
-
- vuo.image
-
Find Barcode in Image
(Thanks to @cwilms-loyalist for suggesting this feature and pledging credits!) -
Rotate Image
-
Warp Image with Projection Mesh
(premium)
-
- vuo.layer
-
Arrange Layers in Grid
-
Combine Layers
(and renamed the previous node by that name toCombine Layers with Transform
)
-
- vuo.list
-
Enqueue
-
- vuo.math
-
Calculate
-
Exponentiate
-
- vuo.motion
-
Smooth with Spring
(which replacesSpring
)
-
- vuo.scene
-
Arrange 3D Objects in Grid
-
Bend 3D Object
-
Divide 3D Object
-
Explode 3D Object
-
Facet 3D Object
-
Add Noise to 3D Object
-
Pinch 3D Object
-
Ripple 3D Object
-
Skew 3D Object
-
Spike 3D Object
-
Trim 3D Object
-
Twirl 3D Object
-
Show Back of 3D Object
-
Get 3D Object Bounds
-
Normalize 3D Object
-
Change All Shaders
-
Change Shader for Material
-
Make Stereo Camera
(premium) -
Make Targeted Stereo Camera
(premium) -
Render Scene to Stereo Images
(premium)
-
- vuo.screen
-
Get Screen Values
-
List Screens
-
Make Screen from Name
-
- vuo.shader
-
Shade with Wireframe
-
- vuo.type
-
Convert Boolean to Real
-
- vuo.window (Thanks to @bLackburst for suggesting these features and to @mnstri, @pbourke, and @cwilms-loyalist for pledging credits!)
-
Change Window Aspect Ratio
-
Reset Window Aspect Ratio
-
Change Fullscreen Status
-
Change Window Position
-
Change Resizable Status
-
Change Window Size
-
Change Window Title
-
- vuo.audio
- Added a
decodedAudio
output port to thePlay Movie
node, enabling movie sound to be played within Vuo. - Added a
color
input port to theVignette Image
node. - Added the ability to output a 2D, 3D, or 4D point from the
Make Gradient Noise
node. - Enabled the
Get Image
node to read high dynamic range images (.hdr
,.exr
, and.tiff
files). - Enabled image filter nodes to process high dynamic range images (try opening an
.hdr
file and changing its gamma usingAdjust Image Colors
!) - Added a
center
,fit
, andhasLeftHandedCoordinates
input port to theGet Scene
node. - Added a
lineWidth
input port to theMake Line (Strip) Mesh
nodes and apointSize
input port to theMake Point Mesh
node. - Improved line and point rendering by converting them to triangles during rendering, which enables Vuo to render large points and wide lines.
- Added a
colorDepth
input port to theRender Layers/Scene to Window
nodes. - Added a
finishedPlayback
output port to thePlay Audio File
node. - Renamed the
vuo.vertices
node set tovuo.mesh
. Modified these nodes to input/output a singular Mesh type rather than a list of the Vertices type. - Made the
Ripple Image
node output a rippled image with tiny wavelength, rather than a solid-color image, when thewavelength
input port value is 0. - Restricted the
Receive OSC Message
node’sudpPort
input editor to the range of valid UDP ports. - Improved graphics performance by removing some unnecessary CPU-GPU roundtrips.
- Chose more sensible default values for some nodes’ input ports.
- Changed the
Get Scene
node so that it makes all textures wrap by default, to better support meshes with out-of-range texture coordinates. - In the
Receive Kinect Image
node’sreceivedDepthImage
output, inverted the colors so that it matches the new depth image outputs on theRender Scene to Image
andRender Scene to Stereo Images
nodes. - Made the
Vignette Image
node treat negativewidth
inputs as if they were 0. - Antialiased the default checkerboard shader.
- Adjusted the default window size for the
Render Layers/Scene to Window
nodes so that they content area (rather than the window’s frame, including title bar) is 1024x768. (Thanks to @pbourke for making us aware of this problem.) - Enabled the
Make Parametric Mesh/Points/Grid
nodes to interpret the%
(mod) operator in math expressions. - Changed the
Make Parametric Mesh/Points/Grid
nodes to acceptdeg2rad
andrad2deg
functions, rather than theDEG2RAD
andRAD2DEG
constants, in math expressions. - Changed the
Make Parametric Mesh/Points/Grid
nodes to work in degrees, rather than radians, for their trigonometric functions. - Increased the color depth of images output by
Receive Kinect Images
andMake Image from Channels
. - Appended
with Transform
to the names of theCopy Layer
,Copy 3D Object
, andCombine Layers
nodes that input the Transform data type. - Increased the width of text input editors to match the widest text constant flags.
- Simplified the event-blocking behavior of the
Smooth with Duration/Rate/Inertia
nodes by removing a special case where they would transmit their first event if it hit thetime
port, even if it didn’t hit any other ports. - Improved the
Receive Leap Frame
node’s accuracy at tracking hand and finger movements by updating to version 2 of the Leap Motion SDK. - Changed the default position of spotlight nodes to make scenes more visible. The lights are now in the same position as the camera instead of in the top left of the scene.
- Enabled error messages from nodes to show up in the Console application on Mac OS X 10.8 and later. Previously it only worked for earlier Mac OS X versions.
- Slightly changed how the
Calculate Loudness
node calculates loudness so that it’s based on the same formula as the newAdjust Loudness
node. - Fixed intermittent hangs in graphics nodes.
- Fixed rare crashes when file downloads time out for nodes such as
Get Image
. - Fixed a bug where the
Receive MIDI Events
node would stop outputting events if the MIDI device was changed while the composition was running. - Fixed a bug where transparent layers rendered in front of opaque layers resulted in a transparent composite image.
- Fixed a memory leak in nodes that have a port of type Rendered Layers.
- Fixed a bug where the
Play Movie
node would play some movies way too fast. - Fixed a bug where the
Send Image via Syphon
node would send an image every time the node executed, not just when thesendImage
input port received an event. - Fixed a bug where the
Make Parametric Points/Grid/Vertices
nodes would output invalid numbers with fewer than two rows/columns/subdivisions. - Fixed a bug where the
Make Radial Gradient Layer/Image
nodes would output a gradient with a very large radius if the input radius was negative. - Fixed a bug in the
Make Parametric Grid/Mesh
nodes where therow
andcolumn
port names were swapped. - Fixed a crash in the
Get Scene
node when opening a 3D model that contains non-UTF8 text. - Fixed a bug in the
Get Scene
node where the imported scene would have the wrong transformation. - Fixed incorrect tangents and bitangents along the edges of the mesh created by
Make Parametric Mesh
. - Fixed a small memory leak that happened for every light every time a scene was rendered.
- Fixed a bug where the
Copy Scene
node interpreted itsrotation
input values as radians instead of degrees. - Fixed a bug in the
Get Scene
node where the created scene would have its normal and specular images swapped. - Fixed a bug where points created with the
Make Point Mesh
node, such as in theMake Terrain
example composition, would not render on some systems. - Fixed a crash when editing a font color in a font input editor after opening a color input editor.
- Fixed a bug where cameras and lights that were child objects of another 3D object didn’t respect the parent object’s transformation.
- Fixed the too-small shadow produced by the
Make (Scaled) Layer with Shadow
nodes. - Fixed a bug in the
Render Image to Window
node where the window size was not constrained to fit on the screen and, as a result, tall windows would pop back to their starting position after being dragged downward. - Fixed hangs when the composition window becomes tiny by preventing it from getting smaller than 16x16.
- Fixed at least some instances of an intermittent bug that prevented composition windows from being moved from their original position. (Thanks to @mnstri for reporting this issue!)
- Fixed inconsistent behavior for the
vuo.mouse
nodes on compositions running in fullscreen on a secondary display. - Fixed a hang in the
Receive MIDI Notes
node when there are no MIDI devices. - Enabled the fullscreen arrows button in the top-right corner of composition windows (Mac OS 10.7 and up).
- Fixed a bug where non-fullscreen composition windows were ignoring mouse events while another composition window was fullscreen.
- Fixed a bug where a node description for an internal (not in Node Library) node would be displayed for drawers.
- Fixed the inability to use the Rendered Layers port type within a list.
Vuo Editor
- Added a “Zoom to Fit” (⌘9) menu item.
- Added a
Fire on Start
node to each new (non-protocol) composition. - Added a user interface to prevent and inform about invalid feedback loops in compositions. When a cable is dragged over a port that would lead to an invalid feedback loop, or when a composition containing an invalid feedback loop is opened, the nodes and cables involved are highlighted in red and a message is displayed.
- Added support for premium nodes.
- Added context menu items for actions that could previously only be performed by mouse or keyboard interaction.
- Added a triangle symbol next to each port that has a port action.
- Remembered the position and size of the Node Library when the Vuo Editor is quit and restarted.
- Simplified the visual design of trigger ports by removing the spikes from their outline.
- Made it easier to drag drawer handles by increasing the area where they can be grabbed.
- Removed the word “item” from drawer port labels so they take up less horizontal space.
- Made port popovers display when the port is clicked on instead of when the port is hovered over.
- Made node descriptions display in a panel below the Node Library instead of in popovers.
- Changed the ordering of nodes in the Node Library’s “Display by Name” mode to be ordered by popularity (based on usage within the example compositions) instead of alphabetically.
- Improved the ordering of search results in the Node Library search. Matches on the node title are listed first, followed by matches on the node class name, followed by matches on keywords. Within each group, the nodes are ordered by popularity.
- Reduced the margin around the Node Library.
- Removed the “Titles” / “Class Names” buttons from the Node Library. (You can still change the display mode via the View > Node Library menu.)
- Made the borders of event-only input ports more visible.
- Enabled crash reports for running compositions to show the Vuo version number.
- Improved the responsiveness of the Stop button during live coding. When the Stop button is clicked, any enqueued live-coding updates are canceled, so the composition doesn’t have to wait on them before stopping.
- Added “premium” as a keyword, searchable in the Node Library, for all premium nodes.
- Fixed choppy movement of windows when dragging them by grabbing the toolbar.
- Fixed the “Don’t Save” button being selected by default in the Save dialog on some systems.
- Fixed a bug where connecting a non-published data-and-event cable to an input port with incoming published event-only cables (but no incoming published data-and-event cables) would displace the published cables.
- Fixed a bug where a cable would remain highlighted after moving the mouse directly from the cable to a drawer.
- Fixed a bug where a drawer’s width would not be immediately adjusted when the width of a constant flag below it changed.
- Fixed the composition’s menu not appearing in the menu bar when a composition first starts running on Mac OS X 10.9.
- Fixed a bug where renaming all selected nodes would erroneously allow renaming drawers, too.
- Fixed the bottom pixels being cut off of some small icons on Retina displays.
- Fixed an occasional crash when a composition window is closed while running and in Show Events mode.
- Fixed a bug where the canvas would sometimes be too large, resulting in scroll bars that allowed scrolling around a large blank area.
- Fixed a bug where an input port’s constant value would sometimes say “null” after the cable into the port was deleted.
- Fixed a bug where the constant input port values on a drawer would revert to their default values when input ports were added to or removed from the drawer during live coding.
- Fixed the slow response the first time the Node Library is searched.
- Fixed a bug where the “Set Data Type” menu item would have no effect for some nodes with multiple generic port types.
- Enabled the composition’s Quit menu item to work if the Vuo Editor has crashed.
- Fixed bugs where the “Vuo Editor > About…” menu item would not make the About box visible if it was already open but behind other windows or minimized.
- Fixed a bug where, if a port popover was displayed and then the composition had a live-coding update, the popover might not report a data value received shortly after the composition updated.
- Fixed a bug where the Window menu failed to list minimized windows.
- Fixed crashes when closing composition windows under certain circumstances, such as when all nodes and cables are selected.
- Fixed a bug where empty Text items within a List port value didn’t show up in the bulleted list in the port’s popover.
- Fixed intermittent crashes in the composition (with
zmq_abort()
error messages) during live-coding. (Thanks to @bLackburst for reporting this bug!)
Documentation
- Vuo Manual
- Added sections:
- Port Actions
- Keyboard Shortcuts
- Expanded sections:
- Troubleshooting
- Controlling the Flow of Events
- Using Drawers
- Updated the manual to reflect recent changes to Vuo.
- Fixed the alignment of arrow annotations in illustrations in the manual. (Thanks to @mnstri for reporting this problem!)
- Added sections:
- Node descriptions
- Added descriptions for all new nodes.
- Expanded and updated the descriptions for many existing nodes.
Vuo Compiler
- Changed drawers (
Make List
andMake Dictionary
nodes) so they no longer need an event in order to pass their output value on to the connected input port. - Fixed crashes, hangs, and spurious “deadlocked feedback loop” Console messages for some compositions with feedback loops. (Thanks to @joeladria for reporting this problem!)
- Fixed hangs when running some compositions with multiple trigger ports and feedback loops.
- Fixed a memory leak that occurred with each linear chain of nodes executed within a composition.
- Fixed a memory leak that occurred with each node execution when running a composition as a standalone executable or exported application.
- Fixed a bug where a
done
port would not output an event if the event was blocked by walls or doors. - Fixed a bug where an event into a walled input ports would not be blocked if the node also had an input port with a door.
SDK
- Compiler and runner
- Added a Cocoa API to support running compositions within Mac applications.
- Modified the VuoPluginApp example to use the Cocoa API, to use explicit reference counting instead of ARC, and to work in both 32-bit and 64-bit modes.
- Added support for inputting and outputting
GL_TEXTURE_RECTANGLE_ARB
textures. - Improved graphics performance in the
RunImageFilter-Cocoa
example application to reduce vertical-refresh tearing. - Fixed intermittent crashes upon quitting the
RunImageFilter-Cocoa
example application. - Fixed crashes when the composition’s Quit menu item is used more than once before the composition has a chance to quit.
- Node classes
- Added the ability to specify whether an input port has a port action.
- Updated documentation on node class naming conventions.
- Input editors
- Added the
VuoInputEditorWithLineEditList
base class as a starting point for input editors that display a series of text fields.
- Added the
- Vuo framework
- Reduced the size of the LLVM libraries within the Vuo framework.
- Encompassed the LLVM libraries within Vuo’s umbrella framework so that client applications don’t have to manually link to the LLVM libraries.
- Updated the instructions for building the Vuo framework from source code, and adapted them to work on Mac OS X 10.9.
- Command-line tools
- Added some error-handling so the command-line tools fail gracefully instead of crashing. This does not yet work for all errors, but does work for some common ones including missing node classes and invalid feedback loops.
Version
0.8.0
Files
Attachment | Size |
---|---|
vuo-0.8.0-editor.zip | 51.03 MB |
vuo-0.8.0-manual.pdf | 1.95 MB |