6.4. The built-in nodes

This section gives an overview of some of Vuo’s built-in nodes. The purpose is to give you a sense of what you can accomplish with the built-in nodes and where to start. For more details, see the node and node set documentation.

6.4.1. Graphics/video

Vuo comes with many different nodes for working with graphics. These can be roughly divided into 2D and 3D graphics (along with some nodes to convert between them).

For 2D designs and animations, the vuo.image and vuo.layer node sets are your starting point. These let you arrange and manipulate shapes and images, and render them in a window or composite image.

For 3D models and meshes, the vuo.scene node set is your starting point. It lets you load or build 3D objects, warp them, and arrange them within a scene, which you can render in a window or image. When building 3D objects, two additional node sets are helpful: vuo.transform for positioning, rotating, and scaling an object, and vuo.shader for painting a pattern or material on an object.

When working with 2D or 3D animations, the vuo.motion node set lets you control the path and speed of a moving object.

For video, the vuo.video node set handles playing movies and receiving video from cameras. When working specifically with the cameras on a Kinect, you can use the vuo.kinect node set. If you want to send and receive video between Vuo compositions and other applications, there’s the vuo.syphon node set.

Make Quad Layer and related nodes in the vuo.layer node set support projection mapping.

6.4.1.1. Vuo Coordinates

When drawing graphics to a window or image, you need to understand the coordinate system of the area you’re drawing to. For example, when you use the Render Scene to Window node to display a 3D scene in a window, typically the point in your 3D scene with coordinates (0,0,0) will be drawn at the center of the window. (If you’re not familiar with the concept of 2D and 3D coordinates, see http://simple.wikipedia.org/wiki/Cartesian_coordinate_system and other references to learn more.)

All of the built-in nodes that work with graphics use Vuo Coordinates:

Typically, as illustrated above, the position (0,0) for 2D graphics or (0,0,0) for 3D graphics is at the center of the rendering area. The X-coordinate -1 is along the left edge of the rendering area, and the X-coordinate 1 is along the right edge. The rendering area’s height depends on the aspect ratio of the graphics being rendered, with the Y-coordinate increasing from bottom to top. In 3D graphics, the Z-coordinate increases from back to front.

When working with 3D graphics, you can change the center and bounds of the rendering area by using a Make Perspective Camera or Make Orthogonal Camera node. For example, you can use a camera to zoom out, so that the rendering area shows a larger range of X- and Y-coordinates.

6.4.2. Sound/audio

The vuo.audio node set lets you work with audio input and output. You can use audio input to create music visualizations or control a composition with sound. You can use audio output to synthesize sounds. Together, audio input and output can be used to receive a live audio feed, process the audio, and play it aloud.

6.4.3. User input devices

There are many built-in nodes you can use to make your compositions interactive, including:

  • vuo.mouse for getting input from a mouse or trackpad

  • vuo.keyboard for getting input from keys typed or pressed

  • vuo.hid for getting input from a USB Human Interface Device (HID)

  • vuo.leap for controlling a composition with hand and finger movements from a Leap Motion device

  • vuo.osc for remotely controlling a composition via a TouchOSC interface on a phone or tablet

  • the Filter Skeleton node for getting input from Delicode NI mate 2

6.4.4. Music and stage equipment

Your compositions can control and be controlled by music and stage equipment — such as keyboards, synthesizers, sequencers, and lighting — using several common protocols:

  • vuo.osc for receiving OSC messages

  • vuo.midi for sending and receiving MIDI events

  • vuo.artnet (pro) for sending and receiving Art-Net messages

The vuo.bcf2000 nodes interface with the Behringer BCF2000 MIDI controller.

6.4.5. Applications

Applications that send or receive messages via the OSC, MIDI, or Art-Net protocol can communicate with your composition if you use the vuo.osc, vuo.midi, or vuo.artnet nodes.

Your composition can send video to and receive video from other applications via Syphon using the vuo.syphon node set.

With the vuo.app node set, your composition can launch other apps and open documents in them.

6.4.6. Sensors, LEDs, and motors

The vuo.serial nodes allow your composition to connect to serial devices, including programmable microcontrollers like Arduino. Via the Arduino, your composition can receive data from sensors, and send data to control LEDs and motors.

6.4.7. Displays

Two node sets let you fine-tune how a composition’s windows are displayed on the available screens. The vuo.screen node set provides information about the available screens. The vuo.window node set controls how each window is displayed, including its aspect ratio and whether it’s fullscreen.

6.4.8. Files

Your composition can open files on your computer’s filesystem or download them from the internet using fetch nodes, such as Fetch Image, Fetch Data, and Fetch XML Tree.

Your composition can save files to your computer’s filesystem using save nodes, such as Save Image, Save Data, and Save Images to Movie.

For opening, manipulating, and saving XML and JSON files, there’s the vuo.tree node set. And for CSV and TSV files, there’s the vuo.table node set.

The vuo.file nodes enable your composition to interact with your computer’s filesystem.

6.4.9. Internet

With the vuo.rss nodes, your composition can download RSS feeds.

To retrieve data from an XML or JSON web service, you can use the vuo.tree nodes.