Skip to main content

What is HNode?

HNode is an open-source ArtNet DMX to video grid node renderer built in Unity 6. It enables real-time conversion of DMX lighting control data into video streams, making it perfect for integrating lighting systems with virtual environments, VRChat worlds, and video streaming platforms.

Universal DMX Support

Receive ArtNet DMX data from any lighting console and render it to video

Multiple Serializers

Support for VRSL, Binary Stage Flight, and many other grid formats

Real-time Streaming

Output via Spout2 for integration with OBS, video players, and streaming services

Advanced Generators

Text, subtitles, time codes, MIDI, and more built-in data generators

Key Features

DMX Serialization

HNode supports multiple DMX serialization formats, allowing you to work with different lighting systems and virtual world standards:
  • VRSL - Industry standard for VRChat lighting systems
  • Binary Stage Flight - High-density binary encoding for complex shows
  • Ternary - Three-state encoding for specific use cases
  • Color Binary - RGB color-optimized format
  • Spiral - Custom spiral pattern layout
  • Furality Somna - Event-specific format

Spout2 Integration

Spout2 is a real-time video sharing framework for Windows that allows applications to share GPU textures with near-zero latency.
HNode provides both Spout2 output (serializer) and Spout2 input (deserializer):
// Default Spout names
SpoutOutputName: "HNode Output"
SpoutInputName: "HNode Input"
This enables:
  • Output to OBS Studio for streaming and recording
  • Input from other applications for transcoding between formats
  • Zero-copy GPU texture sharing for maximum performance

Data Generators

HNode includes powerful generators for creating DMX data beyond ArtNet input:
Display text on DMX channels with UTF-8 or UTF-16 encoding. Perfect for displaying song lyrics, messages, or dynamic content.
public string text = "Hello World";
public DMXChannel channelStart = 0;
public bool unicode = false;
public bool limitLength = false;
public int maxCharacters = 32;
Support for multiple subtitle formats:
  • SRT (SubRip) - Industry standard subtitle format
  • ASS (Advanced SubStation Alpha) - Advanced styling and positioning
  • LRC (Lyrics) - Time-synced lyrics for music
  • Time Generator - Current system time display
  • TimeCode Exporter - SMPTE timecode output for show synchronization
Optimized DMX packet transmission that only sends changed channels:
// Efficiently transmits only differences
// Includes idle scanning for reliability
// Automatic packet chunking for large data
  • Static Value - Set constant values on channels
  • Strobe - Programmable strobe effects
  • Fade - Smooth transitions between values
  • Remap - Channel remapping and routing
  • Twitch Chat - Display Twitch chat messages

MIDIDMX Exporter

MIDIDMX enables DMX output to VRChat worlds using MIDI as a transport protocol. Perfect for controlling lights in virtual venues!
Integration with VRC-MIDIDMX for VRChat world lighting:
public string midiDevice = "loopMIDI Port";
public int channelsPerUpdate = 100;
public int idleScanChannels = 10;
Supports up to 16,384 DMX channels with intelligent channel updates and watchdog monitoring.

Performance Monitoring

Real-time Statistics

Built-in Graphy performance monitor displays FPS, RAM usage, and audio levels

Configurable Framerate

Adjust target framerate (default 60 FPS) to balance quality and performance

Architecture Overview

Core Components

HNode’s architecture follows a modular plugin-based design:

Input Layer

ArtNet Receiver: Listens for DMX data over the network
public int ArtNetPort { get; set; } = 6454;
public SerializableIPAddress ArtNetAddress { get; set; } = IPAddress.Any; // 0.0.0.0
Spout Input: Receives video streams from other applications for transcoding

Processing Layer

DMX Generators: Transform, generate, or manipulate DMX channel data
  • Implement IDMXGenerator interface
  • Process channel data in real-time
  • Support for dynamic UI configuration
Serializers/Deserializers: Convert between DMX data and video pixels
  • Implement IDMXSerializer interface
  • Handle channel-to-pixel mapping
  • Support multiple grid layouts (horizontal, vertical)

Output Layer

Spout Output: Shares rendered video via GPU texture Exporters: Send data to external systems
  • MIDIDMX for VRChat integration
  • Text file export for debugging
  • Timecode output for synchronization

Data Flow

1

Receive ArtNet

ArtNet DMX data arrives on UDP port 6454 (configurable)
2

Generate & Process

Generators manipulate the DMX channel array (up to 512 channels per universe)
3

Serialize to Video

Serializer converts DMX bytes to Color32 pixel array based on selected format
4

Output

Video frame sent via Spout2, exporters send data to external systems

Configuration System

HNode uses YAML for show configurations:
Serializer: !VRSL
GammaCorrection: true
RGBGridMode: false
OutputConfig: HorizontalTop

Transcode: false
TranscodeUniverseCount: 3
SerializeUniverseCount: 2147483647

ArtNetPort: 6454
ArtNetAddress: 0.0.0.0
SpoutOutputName: HNode Output
SpoutInputName: HNode Input
TargetFramerate: 60
OutputResolution: 1920x1080
InputResolution: 1920x1080
Show configuration files contain all settings for serializers, generators, and exporters. Save configurations before closing HNode to preserve your setup!

Use Cases

Virtual World Lighting

Control lights in VRChat or other virtual environments by streaming DMX data as video. Perfect for:
  • Virtual nightclubs and concert venues
  • Stage lighting in virtual events
  • Dynamic environmental lighting
  • Synchronized light shows

OBS Integration

Capture HNode output in OBS Studio for:
  • Live streaming with synchronized lighting visuals
  • Recording light shows for content creation
  • Compositing lighting effects with other video sources
  • Low-latency local streaming with MediaMTX

Format Transcoding

Convert between different DMX serialization formats:
  • Transcode from one grid format to another
  • Test different serializers without changing your lighting console setup
  • Bridge incompatible systems

Development & Testing

Use HNode’s generators for:
  • Testing virtual world lighting systems without a lighting console
  • Generating test patterns and sequences
  • Debugging DMX channel mappings
  • Prototyping new lighting effects

System Requirements

Operating System

Windows 10/11 (64-bit)Spout2 requires Windows

Graphics

DirectX 11 compatible GPUDedicated GPU recommended for high channel counts

Network

Network adapter for ArtNetGigabit ethernet recommended for high universe counts

Runtime

Built with Unity 6 (6000.2.7f2)No additional runtime required

Next Steps

Installation

Download and set up HNode on your system

Quick Start

Get your first ArtNet stream running in minutes

Build docs developers (and LLMs) love