Skip to main content

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

1

Start the Application

Double-click HNode.exe to launch.The application window opens at 1200x600 resolution with the default VRSL serializer active.
2

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)
3

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.

Step 2: Configure Network Settings

1

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:
  1. Find your computer’s IP address (e.g., 192.168.1.100)
  2. Enter it in the ArtNet Address field
  3. Press Enter to apply
2

Verify ArtNet Port

The ArtNet Port should be 6454 (the ArtNet standard).
Only change this if your lighting console uses a non-standard port.
3

Configure Your Lighting Console

On your lighting console or software (e.g., QLC+, LightJams, etc.):
  1. Set ArtNet Output to enabled
  2. 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
  3. Set Port to 6454
  4. 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:
Best for: VRChat worlds using VRSL lighting systems
1

Select VRSL

In the Serializer dropdown, select VRSL (default).
2

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.
3

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
4

Gamma Correction

Gamma Correction should be enabled (default) for VRSL.This matches VRSL’s color space expectations.

Step 4: Test DMX Reception

1

Send Test Data

From your lighting console:
  1. Create a simple cue or scene
  2. Set some channels to non-zero values (e.g., channel 1 = 255)
  3. Trigger the cue
2

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
3

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
  • 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:
  1. Install Wireshark
  2. Capture on your network interface
  3. Filter: udp.port == 6454
  4. Look for ArtNet packets when triggering cues

Step 5: Configure Spout Output

1

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.
2

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)
3

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

You must have the Spout2 plugin for OBS installed first.
1

Add Spout2 Source

In OBS Studio:
  1. Click + under Sources
  2. Select Spout2 Capture
  3. Name it “HNode” and click OK
2

Configure Source

In the Spout2 Capture properties:
  • SpoutSenders: Select HNode Output from the dropdown
  • Composite Mode: Set to “Default” (allows transparency)
Click OK.
3

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.
4

Optional: Crop Unused Area

If using VRSL or another format that doesn’t fill the frame:
  1. Hold Alt + drag with left mouse button to crop
  2. Or right-click source → Transform → Edit Transform
  3. Set Crop values (Top/Bottom/Left/Right)

Step 7: Stream or Record

Now that HNode is feeding into OBS, you can:
For low-latency local streaming to VRChat using MediaMTX:
1

Start MediaMTX

Run mediamtx.exe (see installation guide).
2

Configure OBS Stream Settings

Settings → Stream:
  • Service: Custom
  • Server: rtmp://localhost/
  • Stream Key: hnode (or any text)
3

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
4

Start Streaming

Click Start Streaming in OBS.MediaMTX console should show the incoming connection.
5

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

Step 8: Add Generators (Optional)

Generators create or modify DMX data beyond ArtNet input. Try adding a text generator:
1

Switch to Generator Tab

Click the Generator tab at the top of HNode.
2

Add Text Generator

  1. Click Add Generator button
  2. Select Text from the dropdown
  3. A new text generator appears in the list
3

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
4

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

1

Click Save Button

At the bottom of any tab, click the Save button.
2

Choose Location

Select a location and filename for your show configuration.Example: MyShow.yaml
3

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
4

Load Configuration

To restore your setup:
  1. Click Load button
  2. Select your saved .yaml file
  3. 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:
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)
Symptoms: Binary/Ternary formats show incorrect values after streamingSolutions:
  • Increase streaming bitrate (try 7000-10000 Kbps)
  • Use better encoder preset (“Slow” or “Medium”)
  • Disable B-frames in encoder settings
  • Increase keyframe interval to 2s
  • Consider using VRSL instead if artifacts persist
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

Build docs developers (and LLMs) love