This release focuses on adding 3D scenegraph functionality — see the new and modified Examples below. This is an alpha release. Alpha releases may include changes that break compositions you made with previous versions.

Changes

Examples

  • The “Square” example now actually renders a square (instead of a rectangle) since the projection matrix is now calculated. [#4955] [#5044]
  • The “Square” example now renders a square using the default checkerboard shader. [#3631]
  • Added “Image” example, which demonstrates loading an image and displaying it in a window. [#5041] [#5275]
  • Added “Sphere” example, which demonstrates rendering and transforming a sphere. [#5179]
  • Added “SphereOnSquare” example, which demonstrates rendering a scene to an image, applying an image filter, and rendering the image. [#5111] [#5415]

Vuo Editor

  • Added a license check. When Vuo Editor is run for the first time, the user is directed to log in to the Vuo website to verify their subscription. [#4812] [#4813] [#5323] [#5324] [#5363] [#5384]
  • Added menu items to open the Modules folders. [#3194]
  • Fixed crash when publishing an output port. [#5331]
  • Fixed bug where a type converter node would incorrectly be collapsed into its output node if it had a cable attached to its receptor port. [#5411]

Built-in Nodes and Types

  • Added “Render Image to Window” node class. [#5042]
  • Added “Render Scene to Image” node class. [#5111]
  • Added “Place Image in Scene” node class. [#5041]
  • Added “Get Image” node class. [#5275]
  • Added “Shade with Image” node class. [#5275]
  • Added “Shade with Solid Color” node class. [#5044]
  • Added “Shade with Normal Colors” node class. [#5044]
  • Added “Make Transform” node class. [#3629]
  • Added “Make RGB Color” node class. [#5352]
  • Added “Get RGB Color Values” node class. [#5352]
  • Added “Make HSL Color” node class. [#5352]
  • Added “Get HSL Color Values” node class. [#5352]
  • Added “Make Parametric Vertices” node class. [#5123]
  • Added “Make Sphere Vertices” node class. [#5179]
  • Added shader, transform, and childObjects input ports to “Make Scene Object” node class. [#5044] [#3629] [#3336]
  • Changed the “Make Scene Object” node’s VuoVertices vertices data member to VuoList_VuoVertices verticesList, so that multiple vertex arrays can be drawn before rebinding the shader program. [#3336]
  • Added VuoColor port type. [#5044]
  • Added VuoShader port type. [#5044]
  • Added VuoTransform port type. [#3629]
  • Renamed VuoSceneVertices port type to VuoVertices. [#5038]
  • Added C methods for manipulating the VuoPoint2D, VuoPoint3D, and VuoPoint4D port types. [#5044] [#5123]
  • Added C methods for creating and managing the VuoSceneObject port type. [#3336]
  • Replaced terms “join”/“disjoin” in node class names with the easier-to-understand terms “make”/“get”. [#5038]
  • Added port data editor for the VuoGradientNoise port type. [#5058]
  • Made the default scene object texture a gradient checkerboard. [#3631]
  • Made scenegraphs render using multisampling by default. [#5419]
  • Made “Render Scene to Window” and “Render Scene to Image” calculate a perspective projection matrix. [#4955] [#5044]
  • Added ability to serialize and unserialize the VuoList port types, allowing a VuoList input port to have a constant value. [#5272]
  • Fixed bug that incorrectly parsed the “Make Gradient Noise” node’s gradientNoise port value when unserializing. [#5058]
  • Fixed algorithms for Perlin noise to match the output of a reference implementation and to scale the noise to a range of -1 to 1. [#5058] [#5059] [#5060] [#5090]
  • Fixed algorithms for simplex noise to match the output of a reference implementation. [#5058] [#5059] [#5060] [#5090]
  • Fixed crash when live coding with a “Make Gradient Noise” node. [#5416]
  • Fixed crash when live coding with a “Render Scene to Window” node. [#5391]
  • Fixed bug where the “Render Scene to Window” node would sometimes get an invalid GL context after the running composition was updated. [#5413]
  • Fixed memory leak in VuoLists of struct types (e.g. VuoVertices). [#5392]

API

  • Added functions <type>_retain and <type>_release to the types API, to handle reference counting for struct port types. [#5392]
  • VuoRunner::pause() now waits for all events to finish propagating through the composition. [#5414]
  • Added methods VuoCompiler::getUserModulesPath() and VuoCompiler::getSystemModulesPath(). [#3194]
  • Added parameter to VuoCompiler::linkCompositionToCreateDynamicLibraries() to reuse the existing resources dylib instead of recreating it. [#5355]

Vuo Compiler

  • Reduced the latency of updating a running composition by reusing (instead of rebuilding) the supporting dynamic library. [#5355]
  • Reduced the time to build a composition by combining all supporting libraries into one bitcode file before linking. [#5356]
  • Fixed handling of special characters (quotation marks and backslashes) in port and node instance data values when saving/opening a composition and when updating a running composition. [#4861] [#5407]
  • Fixed memory leaks when updating a running composition. [#4861] [#5418]
  • Fixed crash when updating a running composition that has a node with a pointer port type. [#5414]
  • Deprecated and removed the --telemetry command-line flag for vuo-compile. [#3499]

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]
  • The port popover text for images, vertices, shaders, and scene objects isn’t very intuitive. It displays the complete serialized type contents, which slows down scenegraphs with a large number of vertices. [#5415]
  • 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

  • The set of built-in nodes is incomplete. [#4038]
  • The “Make Parametric Vertices” node does not yet generate vertex tangents or bitangents. [#5123]
  • Only a single, root scenegraph object is rendered. [#3630]
  • Some values of type VuoImage are not properly released when the composition is modified while running. [#5418]
  • The “Display Console Window” node’s window no longer scrolls to bottom when the lineToWrite input is pushed. [#4653]
  • The VuoBoolean type is not actually a boolean. It’s just an integer. [#3902]

Vuo Compiler

  • Compositions with long serialized port values (e.g. long lists of vertices) are slow and consume excessive CPU. [#5415]
  • 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.2