The focus of this release is to add support for making lists of data values. We also fixed many bugs, and expanded graphics support. 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 2 weeks:

Documentation

Examples

  • Added RunImageFilter-Cocoa-NewProcess API example, demonstrating how to use the Vuo API to launch an image-filtering composition that runs in another process. [#5112]
  • Fixed distorted output on retina displays in RunImageFilter-Cocoa. [#5126]
  • Fixed crash in the RunImageFilter examples if the composition is modified to include a graphics window (in addition to the host app’s window). [#5455]

Vuo Editor

  • Modified the port popover behavior to keep them from getting in the way. Increased the delay before they appear, decreased the delay before they disappear, and allowed them to be dismissed by clicking elsewhere in the composition. [#5423]
  • Changed the default node library view mode to “Titles”. [#5425]
  • Modified the editor to automatically add a “Make List” node whenever a list port would otherwise have no incoming cable. [#3994]
  • Added context menu items to add and remove input ports on a “Make List” node. [#5461]
  • Replaced numbered groups of ports with list ports on many nodes. [#4355]
  • Fixed slowness in compositions with large numbers of vertices caused by attempting to display all vertices in the port popover. Each port popover now displays a brief summary of the port’s value. [#5415]
  • Fixed garbage values shown in port popovers for the (non-existent) data of event-only ports. [#5348]
  • Fixed stickiness when moving a node when its new position is near its original position. [#5393]
  • Fixed stickiness when reconnecting a cable to the port it was just disconnected from. [#5241]
  • Fixed nodes with an input port and an output port of the same type being rendered (incorrectly) as type converters. [#5422]
  • Fixed crash when opening a composition with a published input port on a collapsed type converter node. [#5464]
  • Fixed crash when attempting to drag a cable away from a published output port to disconnect it.
  • Fixed broken OS X Gatekeeper (codesign) compliance. [#5566]

Built-in Nodes and Types

  • Changed the format of serialized VuoBoolean values. Instead of integers, they are strings “true” and “false”.
  • Removed the quotes around summaries of the VuoText type.
  • Changed the VuoTransform type and the nodes that use it (“Make Transform” and “Place Image in Scene”) to input degrees instead of radians. [#5447]
  • Added summaries for VuoTransform and VuoSceneObject, allowing these types to display in port popovers. [#5445] [#5447]
  • Added the “Ripple Image” node class. [#5452]
  • Added the “Twirl Image” node class. [#5452]
  • Added the “Discard Data from Event” node class for the VuoImage, VuoPoint3d, VuoPoint4d, VuoColor, VuoReal, VuoSceneObject, VuoShader, VuoVertices, and VuoBoolean types. [#5452] [#3901] [#4038]
  • Added the “Are All True” node class.
  • Renamed the “Is Any True” node class to “Are Any True’. [#3901]
  • Added the “Convert Integer to Boolean” node class. [#4038]
  • Added the “Make Quaternion” node class. [#5449]
  • Added the “Make Quaternion Transform” node class. [#5449]
  • Added the “Multiply Quaternion” node class. [#5449]
  • Changed the ports of type VuoInteger to VuoBoolean on most vuo.logic nodes. [#3901]
  • Changed the way VuoSceneObject serializes/unserializes its components to be faster. [#5424]
  • Changed “Render Image to Window” node to resize itself to match the input image. [#5421]
  • Fixed linebreaks in summaries of VuoImage and VuoVertices. [#5447]
  • Fixed VuoTransform values being lost when the running composition is updated. [#5445]
  • Fixed regression in “Write to Console Window” node class that prevented the window from scrolling down when text was appended at the bottom. [#4653]
  • Removed the “Frobnicate Image” node class, which was superseded by the more general “Ripple Image” node class. [#5452]
  • Removed the “Convert 2d Point to Text”, “Convert 3d Point to Text”, “Convert 4d Point to Text”, “Convert Text to 2d Point”, “Convert Text to 3d Point”, and “Convert Text to 4d Point” node classes. [#5575]
  • Fixed issue where the “Make Parametric Vertices” was not calculating tangent and bitangent vectors. [#5123]
  • Renamed the “Make Parametric Vertices” node’s closeU/V ports to u/vClosed, to parallel its u/vExpression ports. [#5123]

API

  • Changed the VuoRunnerDelegate::receivedTelemetryInputPortUpdated, VuoRunnerDelegate::receivedTelemetryOutputPortUpdated, and VuoRunnerDelegate::receivedTelemetryPublishedOutputPortUpdated functions to pass a brief summary instead of the full serialized port value, to improve performance for compositions with long serialized port values. [#5348] [#5349]
  • Added thread synchronization to the VuoRunner control request functions. These functions are now mutually thread-safe. [#5245]
  • Added VL(), VLog(), VLogCF(), and VGL() functions for debugging nodes. [#5112] [#5417]
  • Added VuoImageRenderer node library, to facilitate rendering a VuoShader to a VuoImage, using an OpenGL framebuffer. [#5452]
  • Added optional [type]_interprocessStringFromValue() to the Vuo Type API, to be implemented if the commonly-used [type]_stringFromValue() does not (for performance reasons) produce an interprocess-safe serialization. [#5478]

Vuo Compiler

  • Added a “Make List” family of node classes that are generated by the compiler. A “Make List” node class, which inputs an arbitrary number of items and outputs a list, can conveniently build a list to feed to a list input port. [#3993]
  • Changed Dispatch queue names to be more consistent, for easier debugging. [#5485]

Known Issues

Documentation

  • The Vuo Manual has not yet been updated to cover new and changed functionality. [#3281]
  • The Vuo Manual is incomplete. [#3281] [#2937] [#2577]
  • Some nodes are not well documented. [#2786]

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]
  • Changing the “Fire Periodically” node’s seconds port while the composition is running does not affect firing rate. [#5317]
  • If the running composition crashes, or if it is quit with the composition’s Quit menu item instead of Vuo Editor’s Stop button, Vuo Editor can’t run another composition. Vuo Editor has to be restarted. [#3092]
  • 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]

Built-in Nodes and Types

  • Only a single, root scenegraph object is rendered. [#3630]
  • When rendering a scenegraph, the Z axis is inverted. [#5536]
  • Some values of type VuoImage are not properly released when the composition is modified while running. [#5418]
  • The VuoBoolean type is not actually a boolean. It’s just an integer. [#3902]

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]
  • Defining moduleDependencies in multiple node libraries results in duplicate symbol errors. [#4018]
  • 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]
  • Vuo Compiler does not yet support multiple event-only cables connected to an input port (although Vuo Editor does). [#3578]
Version
0.4.3