skills/vvvv-fundamentals/SKILL.md
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 the user asks about vvvv basics, how vvvv works, the live reload model, when to patch vs code, or needs an overview of the visual programming environment.
npx skillsauth add tebjan/vvvv-skills vvvv-fundamentalsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
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.
.vl files — vvvv gamma documents (XML-based, version controlled).vl filesvvvv 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.
.sdsl shader files always live-reload when savedC# 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.
Dispose() called on old instanceNodeContext)Update() resumes on the next frameBinary 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.
[ProcessNode] attribute[ProcessNode] attribute needed+ works with int, float, Vector3, string, etc.Spread<T> connects to a single-value input, the node auto-iterates| Use Patching | Use C# Code | |---|---| | Prototyping, data flow | Custom nodes, performance-critical code | | Visual connections, UI composition | Complex algorithms | | Real-time parameter tweaking | .NET library interop | | Dataflow routing and spreading | Native/unmanaged resource management |
IChannel<T> — observable value containerIChannel<T>.Value — read/write the current valueChannel.IsValid() — check if connectedFor C# channel integration patterns (IChannelHub, PublicChannelHelper, [CanBePublished]), see vvvv-channels.
| Type | C# Equivalent | Usage |
|---|---|---|
| Spread<T> | ImmutableArray<T> | vvvv's immutable collection |
| SpreadBuilder<T> | ImmutableArray<T>.Builder | Build spreads efficiently |
| Float32, Int32, etc. | float, int | Primitives |
| Vector2/3/4 | Stride.Core.Mathematics | Spatial math |
| Color4 | Stride.Core.Mathematics | RGBA color |
| Extension | Purpose |
|---|---|
| .vl | vvvv gamma documents (XML-based) |
| .sdsl | Stride shader files (SDSL language) |
| .cs | C# source files for custom nodes |
| .csproj | .NET project files |
| .nuspec | NuGet package spec |
vvvv's functionality extends through NuGet packages that bundle .vl documents, C# nodes, and shaders.
| Domain | Key Packages | |---|---| | 3D Rendering | VL.Stride (Stride engine), VL.Fuse (GPU visual programming) | | 2D Rendering | VL.Skia, ImGui, Avalonia, CEF/HTML | | Hardware I/O | DMX/Art-Net, ILDA lasers, depth cameras (Azure Kinect, ZED), robotics (KUKA, Spot), Ultraleap, LiDAR | | Networking | OSC, MIDI, MQTT, Redis, WebSocket, HTTP, TCP/UDP, ZeroMQ, Modbus, Ableton Link | | Computer Vision | OpenCV, MediaPipe, YOLO (v8–v11), ONNX Runtime | | Audio | NAudio, VST hosting, SuperCollider bridge | | General .NET | Any 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.
// 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.
data-ai
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.
development
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, creating test patches, running automated compilation checks, or integrating vvvv tests into CI/CD.
testing
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 arguments, setting up package repositories, or finding vvvv's data directories.
development
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-processing C# code in vvvv — even if they say 'list', 'array', or 'IEnumerable' instead of Spread, this skill likely applies.