Skip to content
vvvv-fundamentals logo

vvvv gamma Fundamentals

vvvv-fundamentals

Explains vvvv gamma core concepts — data types, frame-based execution model, pins, pads, links, node browser, live compilation (source project vs binary reference workflows), .vl document structure, file types (.vl/.sdsl/.cs/.csproj), ecosystem overview, and AppHost runtime detection. Use when th...

tebjan/vvvv-skills0installs32stars

SKILL.md

Full skill instructions

vvvv gamma Fundamentals

What Is vvvv gamma

vvvv gamma is a visual programming environment for .NET 8. It combines node-based patching with C# code generation, targeting Stride (3D engine) and .NET APIs. Programs are built by connecting nodes with links in a visual editor.

vvvv is a live programming environment — programs run continuously while you build them. Both visual patch edits and C# code changes take effect immediately without restarting. vvvv compiles C# source files itself via Roslyn into in-memory assemblies on every save.

Document Structure

  • .vl files — vvvv gamma documents (XML-based, version controlled)
  • Each document contains Patches (visual programs) and Definitions (types, operations)
  • Documents can reference NuGet packages and other .vl files
  • The Patch Explorer shows the document's type hierarchy

Execution Model

  • Frame-based evaluation — the mainloop evaluates the entire graph every frame (~60 FPS)
  • Data flows left-to-right, top-to-bottom through links between nodes
  • Process nodes maintain state between frames (constructor → Update loop → Dispose)
  • Operation nodes are pure functions evaluated each frame
  • vvvv evaluates all connected nodes, skips disconnected subgraphs

Live Compilation Model

vvvv runs your program continuously while you edit it. There is no edit-compile-run cycle for patches and shaders. For C#, live reload depends on how the code is referenced.

Patch Changes

  • Edits to visual patches apply immediately
  • Node state (instance fields) is preserved across edits
  • New nodes and links become active on the next frame

Shader Changes

  • .sdsl shader files always live-reload when saved
  • vvvv recompiles shaders in the background and swaps them in the running program

C# — Two Workflows

C# code can be integrated via source project reference or pre-compiled binary. The choice depends on project size and development phase.

Source project reference (live reload):

When a .vl document references a .csproj source project, vvvv compiles .cs files itself via Roslyn into in-memory assemblies. No dotnet build or external toolchain is involved.

  • On .cs file save, vvvv detects the change and recompiles in the background
  • Status indicator: gray = building symbols, orange = emitting C#
  • On successful compilation, affected nodes restart their lifecycle:
    1. Dispose() called on old instance
    2. New constructor runs (with fresh NodeContext)
    3. Update() resumes on the next frame
  • Static fields reset on reload — the entire in-memory assembly is replaced
  • On compilation error, the program continues running with the last valid code

Binary reference (no live reload):

When a .vl document references a pre-compiled DLL or NuGet package, the assembly is loaded once at startup. To pick up changes, you must rebuild the DLL externally (e.g., dotnet build) and restart vvvv. This workflow is common for larger projects and stable libraries where live reload is not needed.

Node Categories

Process Nodes

  • Have Create (constructor), Update (per-frame), and Dispose lifecycle
  • Written in C# with [ProcessNode] attribute
  • Maintain internal state between frames
  • Use change detection to avoid redundant work

Operation Nodes

  • Pure functions: same input always produces same output
  • Written as static C# methods (auto-discovered by vvvv)
  • No state between frames
  • No [ProcessNode] attribute needed

Adaptive Nodes

  • Nodes that adapt their implementation based on connected input types
  • Example: + works with int, float, Vector3, string, etc.
  • Resolved at link-time, not runtime

Pins, Pads, and Links

  • Pins — inputs and outputs on nodes and regions
  • Pads — visual nodes for reading/​writing Properties inside operation patches; all pads with the same name refer to the same property
  • Links — connections between pins that define data flow and execution order
  • Spreading — when a Spread<T> connects to a single-value input, the node auto-iterates

When to Patch vs Write C#

Use PatchingUse C# Code
Prototyping, data flowCustom nodes, performance-critical code
Visual connections, UI compositionComplex algorithms
Real-time parameter tweaking.NET library interop
Dataflow routing and spreadingNative/​unmanaged resource management

Channels — Reactive Data Flow

  • IChannel<T> — observable value container
  • IChannel<T>.Value — read/​write the current value
  • Channel.IsValid() — check if connected
  • Channels persist state across sessions
  • Enable two-way data binding between UI and patch

For C# channel integration patterns (IChannelHub, PublicChannelHelper, [CanBePublished]), see vvvv-channels.

Key Data Types

TypeC# EquivalentUsage
Spread<T>ImmutableArray<T>vvvv's immutable collection
SpreadBuilder<T>ImmutableArray<T>.BuilderBuild spreads efficiently
Float32, Int32, etc.float, intPrimitives
Vector2/​3/​4Stride.Core.MathematicsSpatial math
Color4Stride.Core.MathematicsRGBA color

File Types

ExtensionPurpose
.vlvvvv gamma documents (XML-based)
.sdslStride shader files (SDSL language)
.csC# source files for custom nodes
.csproj.NET project files
.nuspecNuGet package spec

Ecosystem Overview

vvvv's functionality extends through NuGet packages that bundle .vl documents, C# nodes, and shaders.

DomainKey Packages
3D RenderingVL.Stride (Stride engine), VL.Fuse (GPU visual programming)
2D RenderingVL.Skia, ImGui, Avalonia, CEF/​HTML
Hardware I/​ODMX/​Art-Net, ILDA lasers, depth cameras (Azure Kinect, ZED), robotics (KUKA, Spot), Ultraleap, LiDAR
NetworkingOSC, MIDI, MQTT, Redis, WebSocket, HTTP, TCP/​UDP, ZeroMQ, Modbus, Ableton Link
Computer VisionOpenCV, MediaPipe, YOLO (v8–v11), ONNX Runtime
AudioNAudio, VST hosting, SuperCollider bridge
General .NETAny of 100,000+ standard NuGet packages via .csproj reference

To add a package: reference it in your .vl document's Dependencies, or add a <PackageReference> to your .csproj. See vvvv-dotnet for .csproj details.

AppHost & Runtime Detection

// Detect if running as exported .exe vs editor
bool isExported = nodeContext.AppHost.IsExported;

// Register per-app singleton services
nodeContext.AppHost.Services.RegisterService(myService);

For detailed reference, see reference.md.

More skills from tebjan

vvvv-shaders logo
tebjan/vvvv-skills

vvvv-shaders

Helps write SDSL shaders for Stride and vvvv gamma — TextureFX, shader mixins, compute shaders, and ShaderFX composition. SDSL is a superset of HLSL, so use this skill when writing or debugging .sdsl shader files, GPU shaders, visual effects, HLSL code for vvvv, working with the Stride rendering ...

32 0
View
vvvv-startup logo
tebjan/vvvv-skills

vvvv-startup

Covers launching vvvv gamma from the command line or programmatically -- normal startup, opening specific .vl patches, command-line arguments, package repositories, and key filesystem paths (install directory, user data, sketches, exports, packages). Use when starting vvvv, configuring launch arg...

32 0
View
vvvv-fileformat logo
tebjan/vvvv-skills

vvvv-fileformat

Describes the .vl XML file format used by vvvv gamma — document structure, element hierarchy, ID system (base62 GUIDs), NodeReference/Choice patterns, Pins, Pads (IOBoxes), Links, ProcessDefinition/Fragment lifecycle, regions (If/ForEach/Cache), type definitions, TypeAnnotations, and property ser...

32 0
View
vvvv-dotnet logo
tebjan/vvvv-skills

vvvv-dotnet

Helps with .NET integration in vvvv gamma — NuGet packages, library references, .csproj project configuration, the [assembly: ImportAsIs] attribute, vector type interop, and async patterns. Use when adding NuGet packages, configuring build settings, referencing external .NET libraries, setting up...

32 0
View
vvvv-testing logo
tebjan/vvvv-skills

vvvv-testing

Set up and run automated tests for vvvv gamma packages and C# nodes -- VL.TestFramework with NUnit for library/package authors (CI-ready), test .vl patches with assertion nodes, and lightweight agent-driven test workflows. Use when writing tests for vvvv packages, setting up test infrastructure, ...

32 0
View
vvvv-patching logo
tebjan/vvvv-skills

vvvv-patching

Explains vvvv gamma visual programming patterns — dataflow, node connections, regions (ForEach/If/Switch/Repeat/Accumulator), channels for reactive data flow, event handling (Bang/Toggle/FrameDelay/Changed), patch organization, and common anti-patterns (circular dependencies, polling vs reacting,...

32 0
View
vvvv-troubleshooting logo
tebjan/vvvv-skills

vvvv-troubleshooting

Diagnoses and fixes common vvvv gamma errors in C# nodes, SDSL shaders, and runtime behavior. Use when encountering errors, exceptions, crashes, red nodes, shader compilation failures, missing nodes in the browser, performance issues, or unexpected behavior.

32 0
View
vvvv-node-libraries logo
tebjan/vvvv-skills

vvvv-node-libraries

Helps set up C# library projects that provide nodes to vvvv gamma — project directory structure, Initialization.cs with AssemblyInitializer, service registration via RegisterService, IResourceProvider factories, ImportAsIs / ImportNamespace / ImportType selection, category organization, .csproj s...

32 0
View
vvvv-spreads logo
tebjan/vvvv-skills

vvvv-spreads

Helps write code using vvvv gamma's Spread<T> immutable collection type and SpreadBuilder<T>. Use when working with Spreads, SpreadBuilder, collections, arrays, iteration, mapping, filtering, zipping, accumulating, or converting between Span and Spread. Trigger whenever the user writes collection...

32 0
View

Popular AI tools

Kaiber logo
Video

Kaiber

Generate, edit, and beat-sync AI video with leading models in one workspace.

Paid
View
Vimcal logo
Productivity

Vimcal

The world's fastest calendar for remote work

Free
View

Transform Your Design with AI Designer by ImgCreator.ai

Freemium
View
Akool AI logo
Content & writing

Akool AI

Revolutionizing Video Production with AI-Powered Creativity

Paid
View

Extend an image past the frame and let AI fill the new aspect ratio.

Freemium
View
StarByFace logo
Security

StarByFace

Discover your celebrity doppelgänger with StarByFace!

Free
View
C

ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.

Freemium
View
Opus Clip logo
Coding & apps

Opus Clip

Opus.ai: Revolutionize Your Web Experience

Free
View