This release focuses on the developer tools provided with Vuo. It finalizes the API for running compositions, creating node classes and types, and displaying input editors. It provides an SDK with command-line tools for compiling, linking, rendering, and debugging Vuo compositions. It also adds a Blend Image
node class and some new example compositions.
This is an alpha release. Alpha releases may include changes that break compositions you made with previous versions.
Changes
Here’s what we’ve done in the last 3 weeks:
Documentation
- Revised the user manual sections to improve the overview of basic concepts and the detailed explanation of events and nodes. [#4483]
- Added documentation on creating library modules used by node classes and types. [#4018]
- Updated the documentation on writing node classes and types to reflect recent changes. [#5399] [#5521] [#5611] [#5669] [#5769]
- Fixed the rendering of compositions with drawers in the user manual. [#6076]
- Fixed the instructions for installing JSON-C, which placed a file in the wrong directory. [#5560]
Examples
- Added the WalkCaterpillar.vuo example composition, which demonstrates hierarchical scene transformations, mouse interaction, and animating an object toward a point. [#5779]
- Added the FlipCoin.vuo example composition, which demonstrates the use of 2D images as 3D scene objects, mouse interaction, and an action performed after a wait. [#5779]
- Added the PlayTennis.vuo example composition, which demonstrates a game with a bouncing ball, a mouse controller, and a human player versus a computer player. [#5760]
- Added the BlendImages.vuo example composition, which demonstrates the
Blend Image
node. [#5603] - Simplified some example compositions by using the node classes added in this release. [#5754]
Vuo Editor
- Changed the way the Vuo Editor handles collapsed type-converter nodes that are rendered unnecessary by new cable connections. They are now deleted, instead of just being uncollapsed. [#5679]
- Changed the way type-converter nodes with list inputs (drawers) are rendered. To avoid problems with rendering the drawers, prevented the type-converter nodes from being collapsed. [#6062]
- Increased the draggable area of drawer handles to make it easier to initiate a drag. [#6106]
- Renamed the keys in the Vuo Editor preferences file that are used to remember the Node Library’s visibility when closing and reopening Vuo Editor. [#3854]
- Removed the use of AppleScript to bring the composition to the foreground when it’s first opened, as this workaround is no longer necessary. [#6130]
- Fixed crashes when displaying port popovers while a composition is running. [#5318]
- Fixed “About” menu item not showing up when a composition is open. [#5083]
Built-in Nodes, Types, and Input Editors
- Added the
Blend Image
node class. [#5603] - Added node classes for converting between reals/integers, 2D points, 3D points, and 4D points. [#5754]
- Added the
Combine Scene Objects
node class. [#6103] - Changed the
Render Scene to Window
andRender Scene to Image
nodes to accept a list of scene objects, rather than a single scene object. [#6103] - Removed the
childObjects
port from theMake Scene Object
node, since it was confusing that theshader
input did not apply to the child objects. [#6103] - Renamed some
vuo.scene
nodes and their ports to make the use of terms “scene” and “scene object” more consistent. [#6009] - Changed the title of the window displayed by the
Render Scene to Window
andRender Image to Window
nodes to use the term “scene” instead of “scenegraph”. [#6009] - Added a
remainder
port to theDivide
(vuo.math.divide.real
) node class. [#6082] - Renamed the
VuoSceneRenderer
andVuoImageRenderer
constructors to be consistent with similar functions. [#5781] - Added spaces to the summaries of VuoPoint2D, VuoPoint3D, VuoPoint4D, and VuoColor values to make them easier to read in port popovers. [#2786]
- Renamed ports on some
vuo.logic
andvuo.math
nodes to be consistent with similar nodes. [#6112] - Changed the
vuo.select
andvuo.list
nodes use one-based indexing instead of zero-based and to use more understandable port names. [#6126] - Added
vuo.select
node classes with a booleanwhich
port. [#6126] - Renamed the
VuoMIDI
andVuoURL
types toVuoMidi
andVuoUrl
. [#6142] - Renamed the
vuo.list
node classes to use the exact name of the type they operate on, to facilitate automatically generating these node classes in the future. [#6142] - Added
Get Item from List
node classes for more list types. [#6142] - Renamed the
vuo.device.mouse.*
node classes tovuo.mouse.*
. [#6066] - Renamed the
vuo.scene.object.*
node classes tovuo.scene.*
. [#6066] - Fixed the input port type for
Are Equal
(vuo.math.areEqual.real
) node class. [#6081] - Fixed incorrect serialization of VuoPoint2D, VuoPoint3D, and VuoPoint4D values. [#6105]
SDK
- Provided command-line tools for compiling, linking, rendering, and debugging compositions. [#3793]
- Changed the way that metadata about node classes, types, and library modules is specified. Instead of defining certain global variables in the node class, type, or library, you use the
VuoModuleDetails
macro, which accepts a JSON-formatted string. [#5669] - Changed the format for version numbers in node classes, types, and library modules to use the Semantic Versioning scheme. [#5769]
- Changed the input editor API to use Qt plugins’ metadata, instead of a
getType()
function, to specify the data type edited by an input editor. [#5076] - Renamed the input editor plugin interface. [#5076]
- Added more information when registering data with the reference-counting system to help with debugging. [#2987]
- Renamed the reference-counting functions to be consistent with other functions. [#5781]
- Changed the
VuoList
functions to use one-based indexing instead of zero-based. [#6111] - Added a
getIdentifier()
function to theVuoCompilerTriggerPort
class, making it easier for code that uses the VuoRunner API to work with trigger ports. [#2995] - Changed the VuoRunner and VuoInputEditor APIs to use JSON-C objects instead of JSON-formatted strings when getting and setting port values. [#5560]
Vuo Compiler
- Made the compiler generate the
TYPE_valueFromString
,TYPE_stringFromValue
,TYPE_interprocessStringFromValue
,TYPE_retain
, andTYPE_release
functions, rather than requiring them to be written in the type definition. [#5399] [#5521] - Added an optional
TYPE_interprocessJsonFromValue
function to the type API, replacing theTYPE_interprocessStringFromValue
function that is now generated automatically. [#5521] - Improved the way that library modules (
.bc
files used by node classes and types) are compiled and linked. Allowed library modules to define their own metadata, including dependencies. [#4018] - Changed the file extension on compiled node classes from
.bc
to.vuonode
. [#4977] - Changed the way node display names are converted to camel case when writing them to a
.vuo
file. Each letter after a space now becomes capitalized. [#3259] - Fixed crashes and incorrect composition serialization when there are node display names or port constant values with non-alphanumeric characters. [#3259] [#6127]
Known Issues
Documentation
- The Vuo Manual has not yet been updated to cover some new and changed functionality. [#3281]
- The Vuo Manual is incomplete. [#3281] [#2937] [#2577]
- Some nodes are not well documented. [#2786]
Examples
- WalkCaterpillar.vuo and PlayTennis.vuo only get correct mouse positions if the composition window is the same size as the screen, since there’s not yet a way to convert between screen and window coordinates. [#5779]
- RunImageFilter-Cocoa-NewProcess leaks textures. [#6153]
Vuo Editor
- The editor may hang when attempting to display a port value popover while the composition is being reloaded (after being modified while running). [#5318] [#5390]
- When a cable is disconnected while a composition is running, the input port does not keep its most recent value. [#3294]
- Collapsed type-converter nodes aren’t selectable. [#3783]
- On some systems, the incorrect font is used to render node and port titles. [#5159]
- For some port types, the constant flag displays its value in quotation marks or with backslashes. [#5700]
- When a
Discard Data from Event
(dataAndEvent -> event
) node is collapsed and attached to an input port, it covers up the input port’s constant flag. [#6059] - The composition gets recompiled too many times if you drag the handle on a list drawer while the composition is running, slowing down live coding. [#6041]
- When a cable is disconnected from an input port, the input port’s constant value is not set to the most recent data from the cable. [#3294]
Built-in Nodes, Types, and Input Editors
- Some values of type
VuoImage
are not properly released when the composition is modified while running. [#5418] - Data editor source code is currently classified as proprietary, making it difficult for 3rd-party developers to create data editors. [#5662]
- Scenegraphs with many child objects render too slowly. [#5937]
- Graphics rendering in the scene window pauses while a menu is open. [#5961]
- Graphics rendered in the scene window turn black or flicker while resizing the window or switching between spaces. [#5971]
- The scene window’s full-screen arrows (in the top right corner for OS X 10.7 and up) cause the window to fade out as it goes full-screen and to handle shortcut keys incorrectly. [#5972]
- The VuoColor input editor is not positioned over the port being edited. [#5351]
Vuo Compiler
- There’s hardly any error checking during the composition compiling and linking process. If compilation fails, the compiler may crash. Currently some messages may be printed on the console, so check there first if something isn’t working. [#2341]
- Vuo Compiler crashes if
nodeInstanceData
returns a bool type. [#4016] - Vuo Compiler crashes if
nodeInstanceData
returns a struct type. (Workaround: Return a pointer to a struct.) [#3942] - Vuo Compiler crashes when a port has certain struct types with few members, such as a struct with two int members. (Workaround: Add some unused members.) [#4124]
- Vuo Compiler adds unnecessary dependencies to built compositions. [#3021]
Version
0.4.8
Files
Attachment | Size |
---|---|
vuo-0.4.8-editor.zip | 103.29 MB |
vuo-0.4.8-sdk.zip | 63.1 MB |
vuo-0.4.8-src.zip | 2.57 MB |
vuo-0.4.8-manual.pdf | 1.49 MB |
vuo-0.4.8-sdk-examples.zip | 1.11 MB |
vuo-0.4.8-composition-examples.zip | 30.94 KB |