Overview of Leap Motion support in Vuo
mainLeap.h, LeapMath.h, and libLeap.dylib within the Vuo ecosystem. This overrides the standard proprietary headers for the purpose of this distribution.repository·main·Indexed 41 days ago
https://github.com/vuo/vuoA visual programming environment including an Editor, Compiler, Renderer, and Runtime. The Vuo SDK provides Vuo.framework for compiling and controlling compositions, and VuoRunner.framework for launching precompiled compositions on macOS 64-bit. It includes command-line tools such as vuo-compile, vuo-debug, vuo-export, and vuo-link, as well as support for creating custom nodes, types, and input editors.
Leap.h, LeapMath.h, and libLeap.dylib within the Vuo ecosystem. This overrides the standard proprietary headers for the purpose of this distribution.In Vuo, a node class is a template for a node found in the Node Library. When you add a node to a composition, you are creating an instance of a node class. Developers can create new node classes, custom data types, and library modules to extend Vuo's functionality and share them with other users.
Key areas for development include:
The vuo.image node set provides tools for creating, filtering, and retrieving information from 2D images.
Nodes in this set are categorized as:
image filter to find these.image generator.image transition.To use a 2D image in a 3D scene, use the Make 3D Object from Image node in the vuo.scene node set.
Vuo provides several resources for developers interested in text-based programming beyond the visual editor:
Before diving into the API, it is recommended to read the Vuo Manual to understand the core concepts of how Vuo operates.
The vuo.serial node set allows Vuo compositions to communicate with physical devices via RS232 serial protocols (often via USB).
Receive Serial Data: Receives pieces of data (encoded as numbers/bytes) from a serial device.Send Serial Data: Sends pieces of data to a serial device.Convert Data to Text: Translates incoming serial data (UTF-8 or ASCII) into Vuo text types.Convert Text to Data: Translates Vuo text into serial data for transmission.Split Text Stream: Useful for reassembling text that arrives in small chunks (e.g., receiving "He", "llo ", "world" instead of the full string).Serial communication operates on bytes. If your device communicates using text, you must use the conversion nodes mentioned above to bridge the gap between Vuo's data types and the serial byte stream.
Vuo uses a Table data type to represent information in a grid of rows and columns, similar to a spreadsheet.
You can import spreadsheet data into a Vuo composition using:
To export a Vuo table for use in spreadsheet applications (like Excel), use:
An input editor is a Qt plugin that implements the interface defined by the VuoInputEditorFactory class. To create one, you must implement two classes:
VuoInputEditorFactory.VuoInputEditor.You can derive from VuoInputEditor directly, or use these convenience classes from the Vuo SDK (framework/resources/inputEditorWidgets):
VuoInputEditorWithMenu: For menu-based selection.VuoInputEditorWithLineEdit: For text field input.VuoInputEditorWithDialog: For complex dialogs containing multiple widgets.Every input editor requires a JSON-formatted metadata file that specifies the name of the type the editor is capable of editing. Refer to ExampleLanguageInputEditor.json in the SDK example project for the required schema.
Vuo uses a specific coordinate system for 2D images:
-1 and the right edge is at 1.Do not begin your type's name with "Vuo". This prefix is reserved for types distributed by Team Vuo / Kosada. Use your own company or personal name to avoid confusion.
To ensure compatibility and ease of use, follow these patterns:
MyCustomType). For abbreviations, capitalize only the first letter (e.g., MyMidiNote, not MyMIDINote).MyType_functionName()).make suffix for constructor functions (e.g., MyType_make()).The Vuo SDK provides two primary frameworks for macOS 64-bit applications depending on your integration needs:
Vuo.framework: Use this to enable apps to compile, launch, and control Vuo compositions.VuoRunner.framework: Use this to enable apps to launch and control precompiled compositions.Detailed guidance on choosing between these options can be found in the Vuo API documentation.
Vuo compositions are multithreaded for performance. The Vuo compiler acts as a parallelizing compiler, generating code that allows independent parts of a composition to run concurrently.
While the compiler handles most synchronization automatically, it provides specific guarantees for node implementation:
nodeEvent() or nodeInstanceEvent()) are called sequentially. Two calls to the same node instance will never overlap.Users can control certain threading behaviors, such as offloading long-running tasks to the background, via the Vuo composition settings.