vvvv gamma Documentation

website·Indexed 36 days ago

https://thegraybook.vvvv.org/

Technical documentation for vvvv gamma, covering the VL language, dataflow programming, and node-based development. Includes guides on data types, mutability, regions, and a comprehensive reference for libraries supporting IO, networking, depth cameras, lidars, and hardware devices.

Tokens
61K
Snippets
159
Records
667
Agent score
64%

What's inside vvvv

  1. Overview of vvvv Editor extensions

    Editor extensions are small tools installed to enhance the vvvv environment. Examples include the Key & Mouse display (built-in for recording tutorials), Pipette (a desktop color picker), TUIO Simulator and Monitor (for multitouch testing), and Spout Monitor (for viewing shared textures).
  2. Overview of VL Aspects for library development

    Aspects are used primarily by library developers to categorize nodes and types based on their visibility, stability, and purpose. They influence how nodes are displayed and filtered within the NodeBrowser. The available aspect keywords are: Advanced, Internal, Experimental, Obsolete, and Adaptive.
  3. Overview of VL Operations

    Operations in VL define simple functionality that takes input, processes it, and returns a result. Crucially, operations are stateless; they cannot store data between consecutive calls. Persistent data must be stored in Properties instead. In the context of the language, the term "operation" typically refers to the operation definition, while an "application" of that definition is referred to as a "node".
  4. Overview of Custom Region flavors in VL

    Custom Regions are nodes with a callback mechanism that allows the end-user to patch the internal logic. There are three main implementation flavors:

    1. Delegate-based (Stateless): Short-lived callbacks using Func<> or Action<>, or custom C# delegate types. These are used to feed data into a patch and receive a return value.
    2. Delegate-based (Stateful): Long-running, process-like regions that can instantiate and update a user patch, allowing process nodes to be placed inside.
    3. CustomRegion API-based: Powerful regions that support Border Control Points (BCPs), allowing seamless data flow between the inside and outside of the region (e.g., Do, Try, ManageProcess).
  5. Overview of .NET Library Forwarding in VL

    Forwarding allows developers to create a thin wrapper layer over .NET libraries to curate which nodes and types are visible to users. Unlike traditional wrappers, Forwarding does not introduce new types; forwarded types remain compatible with the original library. This enables users to switch between high-level curated nodes and low-level original library functionality. Key use cases include selectively forwarding types, adjusting mutability metadata, renaming pins/types, performing unit conversions (e.g., radians to cycles), and designing lifetime management for disposable objects.
  6. Overview of VL.Stride Rendering Workflows

    VL.Stride provides two distinct but compatible rendering workflows:

    1. High-level (Scene Graph): An Entity-Component-System (ECS) approach where you work with models, lights, materials, and textures. This is similar to traditional game engine workflows.
    2. Low-level (Custom Rendering): A direct approach involving draw calls, pipeline states, and GPU resources, similar to working directly with DX9/DX11.

    Both workflows can render to textures or output windows, and both support custom shaders.

  7. Overview of 3D rendering in vvvv with VL.Stride

    vvvv uses VL.Stride as its primary 3D rendering engine, which is based on the Stride 3D Engine and included with the installation. It supports two primary workflows: a high-level SceneGraph approach (adding models and lights to a scene) and a low-level approach for direct graphics API interaction. It supports VR device output and various Post FX such as ambient occlusion, depth of field, and bloom.
  8. Overview of Presets and Transitions

    Presets allow you to take snapshots of any combination of Public Channels. These snapshots can be stored and recalled at any time. Recalling a preset can either result in an immediate jump to the stored values or a smooth transition (convergence) to those values.
  9. Overview of Bindings for Public Channels

    Bindings provide a unified mechanism to expose Public Channels to external interfaces such as RCP, OSCQuery, OSC, Midi, and Redis, allowing the app to interact with the outside world. Multiple bindings can be attached to a single channel, enabling data routing (e.g., mapping an incoming MIDI value to an outgoing OSC message).
  10. Overview of vvvv gamma for creative coding

    vvvv gamma is a visual live-programming environment designed for rapid prototyping and production in fields such as generative design, interaction design, data visualization, computer vision, VR, show control, physical computing, and machine learning. It utilizes a state hot-reload approach, meaning changes are instantly compiled under the hood, providing immediate results without the traditional edit-compile-run cycle.
  11. Understand the lazy evaluation model in vvvv beta

    Evaluation in vvvv beta is frame-based and lazy. The system starts evaluation from 'sinks' (such as Renderers or Writers) and works backward through the graph. Only the parts of the graph necessary to produce the output at the sink are evaluated. For example, a Switch (Input) node only evaluates the specific input that is currently active, and a Sample & Hold (S+H) node only evaluates its data source when a sample is actually requested for that frame.