Visual Live-Programming with vvvv
Very Visual
vvvv is a visual-first live programming environment for the .NET ecosystem. Its language VL combines metaphors known from dataflow, functional and object oriented programming.
There is no need to write any code, unless you really want to.
Inherently Fast
vvvv programs are compiled and run on the .NET virtual machine. As such they are as fast as if you’d write them in C#.
Want to use all the cores of your CPU? With VL it requires no rocket science to have parts of your program run on separate threads.
Quick To Iterate
vvvv has one mode: Runtime. Modify your program while it is running, compilation happens in the background.
With its state hot-reload technology, vvvv saves you precious time: There is no need to restart your program to see the effects of changes you make.
Ready To Connect
vvvv comes with support for many hardware devices, like color and depth cameras, the serial port,…
Also, it speaks most common protocols, like OSC, Midi, UDP, TCP, Redis, DMX, Art-Net, Firmata, ZMQ, MQTT, Websocket, HTTP, RCP,…
Open To Extend
vvvv can be extended with custom nodes written in pure C#. No proprietary plugin-wrapping boilerplate code is needed.
This allows you to directly consume almost any .NET library from nuget.org, without having to write a single line of code.
Proven To Perform
Built To Be Learned
vvvv comes with a built-in HelpBrowser that gives you direct access to examples and explanations. A series of video tutorials provides you with the fundamentals in no time.
If you need a hand, a caring community is waiting for you to join. vvvv’s chat and forums are both open 24/7.
The Road Ahead
Multi-Paradigm
- Combines metaphors known from dataflow, functional and object-oriented programming
- Strictly evaluated
- Regions aka visual code blocks (loops, if, delegates, ...)
- Process nodes aka simple lifetime management
- Adaptive nodes aka adhoc polymorphism
Advanced Type System
- Statically typed
- Automagic type inference
- First class support for mutable and immutable datatypes
- Generics aka parametric polymorphism (with bounded quantification)
- Interfaces aka subtype polymorphism
Supportive IDE
- Runtime value inspection
- Reactive/Async programming
- Easy multithreading
- Compiles to C# using Roslyn
- Consumes any .NET assembly by providing all methods as nodes
Core Libraries
- 2d drawing (GPU accelerated) with SVG and PDF export based on SkiaSharp
- Dear ImGui based rapid UI creation
- Serialization, async File IO, XML and JSON parsing and generation
- 2d and 3d math library with collision detection operations
Visual GPU programming
- Procedural noise
- Signed distance field rendering
- Customizable particle systems
- Vector fields
- Fluid simulation
- Provided via the contributed FUSE library
Computer Vision
- Image filters
- Feature detection and tracking
- Aruco 3D marker tracking
- Camera and projector calibration
- Based on OpenCVSharp
Devices and IO Protocols
- Kinect v1, v2, Azure
- Intel RealSense, Orbbec Astra, StereoLabs ZED, Nuitrack
- Industrial cameras by The Imaging Source
- uEye & uEye+ cameras by IDS-Imaging
- Hand tracking devices by Ultraleap
- DeckLink capture cards by Blackmagic Design
- SerialPort, OSC, MIDI, Redis, DMX, Art-Net, Firmata, UDP, TCP, RCP, WebSocket, HTTP, ZMQ, MQTT, …
Anything missing?
- Browse the full list of VL packages available
- Access >100k .NET packages via nuget.org
- Learn about extending vvvv with your own nodes