Overview
This guide will walk you through setting up HNode to receive ArtNet DMX data and output it as a video stream. You’ll go from zero to a working visualization in just a few minutes.
This guide assumes you have already installed HNode . If not, complete the installation first.
What You’ll Build
By the end of this guide, you’ll have:
HNode receiving ArtNet DMX data on your network
A live video visualization of your DMX channels
Spout2 output ready for OBS or other applications
Understanding of the basic workflow
Step 1: Launch HNode
Start the Application
Double-click HNode.exe to launch. The application window opens at 1200x600 resolution with the default VRSL serializer active.
Familiarize with the Interface
The HNode interface has four main areas:
Tab Navigation Top of the window: Switch between Serializer, Generator, Exporter, and Documentation tabs
Settings Panel Left side: Configuration options for the selected component
Preview Window Right side: Live preview of the rendered output
Statistics Overlay Bottom right: Real-time FPS, RAM, and audio levels (Graphy)
Verify Default Settings
On the Serializer tab, check the default settings: Serializer Type : VRSL
ArtNet Port : 6454
ArtNet Address : 0.0.0.0
Spout Output Name : HNode Output
Output Resolution : 1920x1080
Target Framerate : 60
These defaults work for most use cases.
Set ArtNet Address
In the Serializer tab, locate the ArtNet Address field. The default 0.0.0.0 listens on all network interfaces. This is recommended for beginners.
If you need to listen on a specific interface:
Find your computer’s IP address (e.g., 192.168.1.100)
Enter it in the ArtNet Address field
Press Enter to apply
Verify ArtNet Port
The ArtNet Port should be 6454 (the ArtNet standard). Only change this if your lighting console uses a non-standard port.
Configure Your Lighting Console
On your lighting console or software (e.g., QLC+, LightJams, etc.):
Set ArtNet Output to enabled
Set IP Address to:
Your computer’s IP (e.g., 192.168.1.100), or
Broadcast address (e.g., 192.168.1.255), or
127.0.0.1 if console is on the same computer
Set Port to 6454
Set Universe to 0 (or 1 depending on console)
Step 3: Choose a Serializer
Serializers define how DMX channels are mapped to video pixels. Choose based on your target platform:
VRSL (VRChat)
Binary (High Density)
Binary Stage Flight
Other Formats
Best for : VRChat worlds using VRSL lighting systems
Select VRSL
In the Serializer dropdown, select VRSL (default).
Configure Layout
Click Cycle Output Config to choose:
HorizontalTop - Standard horizontal layout (default)
HorizontalBottom - Bottom-aligned horizontal
VerticalLeft - Left-aligned vertical
VerticalRight - Right-aligned vertical
Match this to your VRChat world’s expected layout.
Optional: RGB Grid Mode
Enable RGB Grid Mode if your world uses RGB color encoding:
Spreads 3 universes across R, G, B channels
Triples effective channel density
Only enable if your world specifically supports this
Gamma Correction
Gamma Correction should be enabled (default) for VRSL.This matches VRSL’s color space expectations.
Best for : Maximum channel density and complex shows
Select Binary
In the Serializer dropdown, select Binary .
Understand the Trade-offs
Binary serialization:
Packs 8 channels per pixel (8-bit binary)
Requires higher bitrate streaming (5000+ Kbps recommended)
Perfect for high channel count shows
More sensitive to video compression artifacts
Best for : Complex theatrical productions
Select Binary Stage Flight
In the Serializer dropdown, select BinaryStageFlight .
Features
Binary Stage Flight includes:
CRC error checking for data integrity
Optimized for stage lighting workflows
Higher reliability over compressed video
Other serializers available:
ColorBinary - RGB color-optimized binary encoding
Ternary - Three-state encoding
Spiral - Custom spiral pattern layout
FuralitySomna - Event-specific format
Select from the dropdown and configure as needed.
Step 4: Test DMX Reception
Send Test Data
From your lighting console:
Create a simple cue or scene
Set some channels to non-zero values (e.g., channel 1 = 255)
Trigger the cue
Verify in HNode
Look at the preview window (right side of HNode): You should see colored blocks or patterns corresponding to your DMX values.
VRSL : Look for 16x16 pixel blocks
Bright white = channel value 255
Black/transparent = channel value 0
Gray = intermediate values
Binary : Look for pixel patterns
Each pixel represents 8 channels as binary bits
Troubleshooting: No Data
If you don’t see any changes:
Verify your computer and lighting console are on the same network
Try pinging your computer from the console (or vice versa)
Temporarily disable Windows Firewall to test
Check Console Configuration
Verify ArtNet output is enabled
Check the output IP address is correct
Verify the universe number (try 0 and 1)
Look for ArtNet output indicators on the console
Verify ArtNet Port is 6454
Try setting ArtNet Address to 0.0.0.0
Check that HNode is allowed through Windows Firewall
Advanced: Capture network traffic to verify ArtNet packets:
Install Wireshark
Capture on your network interface
Filter: udp.port == 6454
Look for ArtNet packets when triggering cues
Set Spout Output Name
In the Serializer tab, find Spout Output Name . Default: HNode Output This is the name that will appear in OBS and other Spout-enabled applications.
Adjust Output Resolution
Set Output Resolution based on your needs:
1920x1080 (default) - Full HD, good balance
1280x720 - HD, better performance
3840x2160 - 4K, high channel count but performance intensive
Format: WIDTHxHEIGHT (e.g., 1920x1080)
Set Target Framerate
Target Framerate : 60 (default)
30 - Lower performance, sufficient for most use cases
60 - Smooth, responsive (recommended)
120 - Only if you have powerful hardware and need it
Higher framerates increase CPU/GPU load. Match your streaming framerate to avoid issues.
Step 6: Connect to OBS Studio
Add Spout2 Source
In OBS Studio:
Click + under Sources
Select Spout2 Capture
Name it “HNode” and click OK
Configure Source
In the Spout2 Capture properties:
SpoutSenders : Select HNode Output from the dropdown
Composite Mode : Set to “Default” (allows transparency)
Click OK.
Verify Capture
You should now see the HNode output in OBS. The output updates in real-time as you change DMX values on your console.
Optional: Crop Unused Area
If using VRSL or another format that doesn’t fill the frame:
Hold Alt + drag with left mouse button to crop
Or right-click source → Transform → Edit Transform
Set Crop values (Top/Bottom/Left/Right)
Step 7: Stream or Record
Now that HNode is feeding into OBS, you can:
Stream to VRChat
Stream to Cloud
Record Locally
For low-latency local streaming to VRChat using MediaMTX:
Configure OBS Stream Settings
Settings → Stream:
Service : Custom
Server : rtmp://localhost/
Stream Key : hnode (or any text)
Configure OBS Output Settings
Settings → Output → Streaming: Video Encoder :
NVIDIA: NVIDIA NVENC H.264
AMD: AMD HW H.264
CPU: x264 (if powerful CPU)
Rate Control : Constant BitrateBitrate : 5000 Kbps (higher for Binary formats)Keyframe Interval : 1sPreset : Slow (Good Quality) or Low Latency
Start Streaming
Click Start Streaming in OBS. MediaMTX console should show the incoming connection.
Use in VRChat
In your VRChat world video player, use the URL: rtspt://localhost:8554/hnode
Or for external access: rtspt://YOUR_IP_ADDRESS:8554/hnode
For streaming to Twitch, YouTube, or VRCDN:
Get Stream Key
From your streaming platform:
Twitch : Dashboard → Settings → Stream Key
YouTube : YouTube Studio → Go Live → Stream Key
VRCDN : VRCDN Dashboard
Configure OBS
Settings → Stream:
Service : Select your platform
Server : Usually auto-selected
Stream Key : Paste your key
Optimize Settings
Settings → Output:
Video Bitrate : Platform-dependent
Twitch: 3000-6000 Kbps
YouTube: 4500-9000 Kbps
Encoder : Hardware encoder recommended
Preset : Balance quality and latency
Start Streaming
Click Start Streaming in OBS.
Cloud streaming typically has 5-20 seconds of latency. Use MediaMTX for local/low-latency scenarios.
To record light shows for content creation:
Configure Recording Settings
Settings → Output → Recording:
Recording Format : mp4 or mkv
Encoder : Same as streaming or higher quality
Recording Quality : “High Quality, Medium File Size” or “Indistinguishable Quality”
Choose Output Path
Settings → Output → Recording:
Set Recording Path to desired folder
Start Recording
Click Start Recording in OBS. Recording and streaming can run simultaneously.
Step 8: Add Generators (Optional)
Generators create or modify DMX data beyond ArtNet input. Try adding a text generator:
Switch to Generator Tab
Click the Generator tab at the top of HNode.
Add Text Generator
Click Add Generator button
Select Text from the dropdown
A new text generator appears in the list
Configure Text Generator
In the generator settings:
Text : Enter any text (e.g., “Hello World”)
Channel Start : Set to 100 (or any unused channel range)
Unicode : Off for ASCII, On for UTF-16
Limit Length : Optional, restrict to max characters
Verify Output
Look at the preview window. You should see the text encoded into the DMX grid starting at your specified channel. Text generators are perfect for displaying song lyrics, event info, or dynamic messages in virtual worlds.
Step 9: Save Your Configuration
Click Save Button
At the bottom of any tab, click the Save button.
Choose Location
Select a location and filename for your show configuration. Example: MyShow.yaml
What's Saved
The YAML file contains:
Selected serializer and all its settings
All generators with their configurations
All exporters
Network settings (ArtNet port/address)
Resolution and framerate
Spout names
Load Configuration
To restore your setup:
Click Load button
Select your saved .yaml file
All settings are restored instantly
HNode does not auto-save. Always save your configuration before closing if you want to keep your settings.
Example Configurations
Here are some common configuration examples:
Basic VRSL Setup
VRSL with Text Generator
Binary with MIDIDMX Export
Transcoding Configuration
Serializer : !VRSL
GammaCorrection : true
RGBGridMode : false
OutputConfig : HorizontalTop
Deserializer : !VRSL
GammaCorrection : true
RGBGridMode : false
OutputConfig : HorizontalTop
Generators : []
Exporters : []
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
Next Steps
Congratulations! You now have a working ArtNet to video stream setup. Here’s what to explore next:
Explore Serializers Try different serializers like Binary Stage Flight for higher channel density
Use Generators Add subtitle generators (SRT, ASS, LRC) for synchronized text displays
Add Exporters Set up MIDIDMX for VRChat worlds or timecode export for synchronization
Optimize Performance Fine-tune resolution, framerate, and encoder settings for your hardware
Troubleshooting Common Issues
Symptoms : HNode or OBS uses excessive resourcesSolutions :
Lower Output Resolution (try 1280x720)
Reduce Target Framerate to 30
Use hardware encoder in OBS (NVENC, AMD VCE)
Close other GPU-intensive applications
Lower OBS encoding preset (“Fast” or “Very Fast”)
Symptoms : Video lags behind DMX changesSolutions :
Use MediaMTX instead of cloud streaming for local use
Reduce OBS bitrate slightly
Enable “Low Latency” or “Ultra Low Latency” preset in OBS
Ensure stable network connection
Check that HNode maintains 60 FPS (see Graphy overlay)
Artifacts in Binary Formats
Spout Not Appearing in OBS
Symptoms : HNode Output doesn’t show in Spout2 Capture dropdownSolutions :
Restart OBS Studio
Restart HNode
Verify Spout2 plugin is installed correctly
Check that both HNode and OBS are 64-bit
Try changing Spout Output Name to something unique
Reboot your computer (Spout registry may need refresh)
Symptoms : Load button shows error or doesn’t restore settingsSolutions :
Verify YAML file is not corrupted (open in text editor)
Check YAML syntax is correct (indentation matters)
Try loading on a fresh HNode start
Manually edit problematic fields in the YAML file
Create a new configuration and compare formats
Getting Help
If you encounter issues not covered here:
GitHub Issues Report bugs or request features on the HNode repository
GitHub Discussions Ask questions and share configurations with the community
When reporting issues, include:
HNode version
Your configuration YAML
Description of the problem
Steps to reproduce
Screenshots if applicable