Awesome
Awesome VL
A collection of libraries, resources and examples for vvvv and VL. <br /> Feel free to contribute to this list!
Official Channels
vvvv Group
- visualprogramming.net - The official website for vvvv gamma
- vvvv.org - The old website for vvvv beta
- Forum - The official forum
- GitHub - The official GitHub page
- vvvvTV - The official YouTube channel
- The Gray Book - The official documentation
- The Gray Book Repository - The repository for the official documentation
- VL-Language - The official repo for the design of the VL programming language
Community
- The NODE Institute - Institute for applied creative computation, hosting user meetups, workshops, webinars and online courses for creative coding and media arts.
- NODE Forum - A platform for sharing and investigating creative technologies, for artistic research and cultural and political media education.
- Stride - The official website of Stride, the open-source game enginge that provides the backend for 3D rendering in vvvv.
- thefuselab.io - The official website of FUSE, the open-source library for visually programming on the GPU.
Sponsoring Pages
- Stride on OpenCollective - Sponsoring page for the Stride game engine.
- The Fuse Lab on OpenCollective - Sponsoring page for the VL.Fuse library.
- Kairos Research Lab on OpenCollective - Sponsoring page for the VL.Kairos library.
- chk on Ko-Fi - Sponsoring page for the tutorial nuget VL.TheBigBang.
Libraries
General
- VL.CoreLib - The main vvvv core library
- VL.StandardLibs - A collection of standard libraries for vvvv
- VL.Addons - A place to gather contributions by the vvvv community, including a great amount of extended texture generators and filters
- VL.NewLibrary.Template - A template for a new VL library
Rendering
- VL.CEF - Set of nodes to render websites in Skia and Stride
- VL.Fuse - An open-source library for visually programming on the GPU
- VL.Skia - The main 2D rendering engine
- VL.Skia3d - A simple 3D addon for VL.Skia
- VL.Stride - The main 3D rendering and game engine
- VL.Stride.TextureFX - Texture sources, filters and mixers
Shaders & Renderung Utils
- VL.2D.CurveFitting - Nodes to create bezier lines from input points
- VL.2D.Voronoi - Nodes to generate voronoi diagrams
- VL.3D.Curve - A library to render 3d curves with VL.Stride
- VL.AetherPhysics - A library based on Aether Physics
- VL.Attractors - Attractor library for VL.Fuse
- VL.Boids-GPU - GPU Boids Simulation implemented in VL
- VL.Dope - Deform objects by points and edges
- VL.Fresnel - Fresnel Shader for VL.Stride
- VL.Fuse.DomainExtensions - todo
- VL.PolyTools - Tools for working with Polygons and Polypaths
- VL.Radiosity - 2D Radiosity Shader
- VL.ShadowCatcher - todo
- VL.Stride.BezierPatch - Set of nodes to create bezier surfaces
Video
- VL.Video - Set of nodes for video capture and playback
- VL.HapPlayer - HAP GPU Video Playback Plugin (requires a license)
Text
- VL.Stride.Text3d - Nodes to render extruded 3D text
- VL.RichTextKit - Wrapper for rich text rendering
- VL.BMFont - todo
Control
- VL.AutomataUI - A finite statemachine editor for .NET
- VL.Interpolator - Powerful binary search set of nodes to interpolate any kind of type
- VL.Interpolator.Addons - Timeliner & addons around VL.Interpolator
- VL.Kairos - A complete framework for data control and composition
- VL.LoopTool - A small toolset to create video loops and record them
User Interfaces
- VL.Elementa - Collection of widgets for easy UI prototyping
- VL.ImGui - A node set around ImGui to render user interfaces in Skia and Stride
- VL.ImGui.Extensions - Collection of ImGui widgets & editors
Math & Algorithms
- VL.FastNoise - Noise Generator in VL
- VL.FastNoiseLite - Noise generation library with a large selection of noise algorithms
- VL.SmallestCircle - Calculate the smallest enclosing circle for a set of 2D points
- VL.RogueSharp - A library for game development of roguelikes, including methods for pathfinding and field of view
Audio
- VL.Audio - Record, play, filter, synthesize and analyse sound
- VL.Audio.GPL - GPL licensed extensions to VL.Audio
- VL.Audio.LTC - Nodes to encode and decode Linear (or Longitudinal) Timecode (LTC) in VL.Audio
- VL.GameAudioPlayer - High level command based audio player
- VL.SCSynth - SuperCollider Server Library for VL
Music Utils
- VL.Harmony - Library for working with musical concepts
- VL.MiDi.Music.Utils - Midi utilities
- VL.Music - Collection of music related tools
- VL.Orpheus - Collection of tools for music theory and music concepts
Computer Vision
- VL.Augmenta - Support for Augmenta tracking technology
- VL.MediaPipe - Camera tracking, image segmentation and object detection from a video stream
- VL.OpenCV - A VL wrapper for OpenCVSharp
Projection Mapping
- VL.BadMapper - Collection of tools for convenient manual blending (softedge) and warping (homography, bezier)
- VL.Mapper - Projection mapping tool for vvvv
- VL.VIOSOWarpBlend - Wrapper for the VIOSO WarpBlend API
- VL.ScalableDisplay - Support for the auto projector-alignment technology by Scalable Display Solutions (not open-source)
- VL.Domemaster - Example to render a scene in the Domemaster format (forum post)
IO
Protocols
- VL.BlueIOT - Support for the BlueIOT open API
- VL.IO.AbletonLink - Wrapper for Ableton Link
- VL.IO.ArtNet - Support for sending and receiving Art-Net
- VL.IO.M2MQTT - An MQTT client for accessing an MQTT broker
- VL.IO.Midi - Midi nodes and tools
- VL.IO.mDNS - Multicast DNS (mDNS) nodes for VL
- VL.IO.MQTTnet - MQTT nodes, based on MQTTnet
- VL.IO.NDI - Provides support for NDIĀ®
- VL.IO.NetMQ - Set of nodes to work with NetMQ aka ZeroMQ
- VL.IO.OSC - Provides support for the OSC protocol
- VL.IO.OSCQuery - Allows to expose parameters via the OSCQuery protocol
- VL.IO.RCP - Set of nodes to use RCP
- VL.IO.SPNet - Receive data via the SPNet protocol
- VL.IO.TCP - Set of nodes to use TCP
- VL.IO.TUIO - Provides support for the TUIO protocol
- VL.IO.WebSocket - Set of nodes to use websocket client and server
- VL.IO.Net.Email - Nodes to do basic email tasks
- VL.PJLink - Nodes to connect and control projectors via the PJLink protocol
- VL.TUIO - Alternative TUIO library based on TUIO.Net
- VL.TUIO.HDE - TUIO simulator and monitor
HTTP
- VL.IO.HTTP.WebServer - Set of nodes to run a webserver
- VL.SimpleHTTP - A super-simple set of nodes to perform basic HTTP queries
- VL.TorSharp - Allows to make HTTP requests via the TOR network
File Formats
- VL.Alembic - A plugin to read .abc Alembic files.
- VL.Assimp - An alternative 3d model loader for Stride
- VL.IO.PLY - Provides support to read .ply files in VL
- VL.PDF - todo
- VL.PDFReader - A simple PDF-Reader for VL
- VL.Rhino.3dm - A plugin to simplify the process of importing Rhinoceros 3D files
- VL.SRT - Nodes to deal with subtitles
- VL.OpenEXR - A simple OpenEXR and .hdr image format loader
Databases
- VL.InfluxDB - Nodes that allow to connect and write to an InfluxDB database
- VL.IO.Redis - A Redis client for accessing Redis databases
Devices
Input
- VL.Devices.RPLidar - Support for the Slamtec RPLidar A-Series
- VL.Devices.SICK - A plugin to interact with SICK lidar scanners
- VL.Devices.SpaceMouse - A package for using the SpaceMouse by 3dConnexion
- VL.Devices.SpaceMouseHID - Use 3DConnexion SpaceMice in via HID instead of their driver
- VL.Devices.StreamDeck - A package for using Elgato StreamDeck button displays
- VL.Devices.TheEyeTribe - Set of nodes to use the eye tracker by TheEyeTribe
- VL.Devices.WinTab - A set of VL nodes for using WinTab devices
- VL.GameController - A library to support SDL GameControllers
- VL.IO.MouseKeyGlobal - Global mouse and keyboard hook
- VL.IO.OpenVR - Wrapper for Valve's OpenVR that enables the use of Vive trackers without a HMD
- VL.IO.Xbox360Controller - Nodes for the Xbox 360 Controller
Output
- VL.Devices.ENTTEC - Support for ENTTEC DMX devices
- VL.ILDA - ILDA laser control
- VL.M8Display - A library for Dirtywave M8 Remote Displays
Cameras
- VL.Devices.Astra - A package for using Astra depth cameras by Orbbec
- VL.Devices.AzureKinect - A package for using Azure Kinect depth cameras by Microsoft
- VL.Devices.AzureKinect.Body - A package for using Azure Kinect body tracking
- VL.Devices.DigiCamControl - A package for remote controlling DSLR cameras
- VL.Devices.IDS - Support for uEye and uEye+ industrial cameras by IDS Imaging
- VL.Devices.Kinect - A package for using Kinect and Kinect XBOX 360 by Microsoft
- VL.Devices.Kinect2 - A package for using Kinect2 depth cameras by Microsoft
- VL.Devices.LeapOrion - A package for using the Motion Controller by Ultraleap, using the Orion SDK
- VL.Devices.NuiTrack - A package for using the Nuitrack depth camera API
- VL.Devices.RealSense - A package for using RealSense depth cameras by Intel
- VL.Devices.TheImagingSource - Support for using industrial cameras by The Imaging Source
- VL.Devices.uEye - VL nodes for using uEye cameras by IDS-Imaging
- VL.Devices.ZED - A package for using ZED depth cameras by Stereolabs
- VL.PTZ - Set of nodes to work with PTZ cameras
Physical Computing
- VL.IO.Firmata - Provides support for the Firmata protocol
- VL.Devices.Phidgets - Integration for Phidgets
Other Devices
- VL.Devices.DeckLink - A package for using DeckLink capture cards by Blackmagic Design
- VL.Devices.Robotiq - Nodes to control a Robotiq 3-Finger Adaptive Robot Gripper
Machine Learning
- VL.2D.DollarQ - Gesture regognition library
- VL.Accord - todo
- VL.DlibDotNet - Some parts of DlibDotNet library ported to VL
- VL.OpenAI - Nodes for the OpenAI API
- VL.PythonNET - Python interpreter for vvvv and base for many AI tools and workflows
- VL.Wekinator - A library to communicate with Wekinator via OSC
System & Extensions
- VL.Benchmarks - A performance testing suite for VL
- VL.DebugInfo.HDE - An editor extension that displays relevant debug information
- VL.GlassWindow - Makes the background of the rendering windows transparent
- VL.HardwareMonitor - Nodes to retrieve various metrics from your computer hardware
- VL.ScreenRecorder - A simple screen recorder
- VL.SharedMemory - Shared memory implementation to exchange data
- VL.WinFormsUtils - Nodes to expose useful functions of the Windows Forms API
Misc
- VL.DBSCAN - A simple implementation of the DBSCAN .NET library
- VL.Here - A set of nodes to perform geocoding stuff in the VL programming language
- VL.OpenWeather - Wrapper for some APIs from OpenWeather
- VL.Postman - Plugin to turn Postman collection exports into ready to use nodes
- VL.QRCode - QRCode encoder and decoder
- VL.StringExtensions - Nodes for extended methods when working with strings
- VL.Telegram - Wrapper of the Telegram.Bot lib
Learning
Tutorial NuGets
- VL.TheBigBang - A tutorial series of 42 chapters, covering all nodes and techniques to get you started.
- VL.ExtendedTutorials - Extended tutorial help patches, covering common questions as learners move from beginner towards intermediate.
- VL.GenerativeGestaltung - Sketches from the book "Generative Gestaltung" implemented in vvvv gamma.
Tutorial Videos
- Tutorial for Absolute Beginners of VL - A tutorial series of 7 videos by chk, covering the most basic nodes and techniques.
- Intermediate Tutorials for vvvv gamma - Tutorials by TobyK, focusing on advanced topics about development and architecture.
- vvvv gamma graphics tutorials - Tutorials focusing on techniques on how to generate cool graphics by Takuma Nakata.
- NODE20 Workshops - 30 workshops, 90 hours of learning, recorded at NODE20 Forum for Digital Arts in October 2020.
- Model Runtime Editor Design Pattern - A convenient way to structure your software and build a flexible app architecture.
- Midweek Patch Therapy - Highlights from the weekly Midweek Patch Therapy meetings, created and hosted by domj.
Examples
- Community Coding: Design Patterns - A discussion about implementing various design patterns taken from the book "Head First Design Patterns".
- VL.HeadFirstDesignPatterns - Repository containing examples of design patterns taken from the book "Head First Design Patterns".
- TextureFX+ - A forum thread about TextureFX+, a collection of texture generators and filters gathered by the community, available in VL.Addons
- Nodevember 2022 - Example patches by CeeYaa during Nodevember 2022.
- Genuary 2023 - Example patches by CeeYaa during Genuary 2023.
- VL.Snake - A VL clone of the game Snake
- VL.Breakout - A VL clone of the game Breakout
- VL.DemoLib - A demo library showing how to write nodes in C#
- Kartinki - A game for children - your draw with words, then color with numbers
- VL.LED-Controller - Work in progress project to control lights from an ImGui interface
Online Courses
- The Stride Bundle - 5 intermediate courses focusing on VL.Stride
- The Fuse Bundle - 8 intermediate courses focusing on VL.Fuse
- Game Logic - A workshop about creating Flappy Bird in VL
Other Resources
Tools
- GammaLauncher - A simple launcher for vvvv gamma.
- Material Editors - Forum thread about open-source material editors.
- MergeVLDocs - A first step towards an easy-to-use visual merge tool
- Stride Shader Explorer - A tool showing the built-in shaders of the Stride game engine and their inheritance hierarchy.
Software made with VL
- Remoter - GUI over PAExec and robocopy to remote a bunch of PCs at once.
- Schema - An intuitive visual programming interface and runtime.
- TexconvGui - A simple Gui for Microsoft's Texconv to batch convert images.
Articles
- About vvvv gamma - The NODE Institute
- Resolume vs. TouchDesigner vs. vvvv - The Interactive & Immersive HQ
- The flow of creative expression: Paving the way for vvvv - MESO
- What is VVVV + Fuse and Why It's a Powerful Combo for New Media - Ameen Insan