NX Shader Graph · 2.4.10

Build your own
VRChat materials.

A node editor for Unity Built-In and PC VRChat avatars. Build Toon, PBR and Unlit materials, then add procedural textures, fur, particles or animated effects.

Unity 2022.3.22f1PC · Built-InDeveloped on LinuxVPM package
NX Shader Graph illustration with connected Unity-style material nodes

Made with NXSG

A few places to start.

These are real Unity renders from the included graphs. Open one, follow the wires, and change whatever you like.

Violet and cyan hologram layers on a sphere and capsule
Layered hologramScanlines, glow and floating layers.
Soft iridescent pearl material on a sphere and capsule
Pearl finishPBR shading with a color shift.
Short warm shell fur on a sphere and capsule
Short plush fur24 shells. Check the cost.

Put it in motion.

Scroll UVs, animate a mask, dissolve an edge or drive an effect with AudioLink inputs. A Time node is often all you need to get started.

Explore the example graphs ↗

Primitive-mesh studies, not VRChat client footage. No external textures were used for these examples.

Lighting and rendering

Toon bands, outlines and depth.

Unity renders showing toon bands and texture ramps, mesh outlines, and contact shadows with depth effects off and on

Shape three independent Toon shadow layers or use a texture ramp for colored lighting, add a world- or pixel-width outline, or connect camera-depth AO and contact shadows to a lit surface. Optional VRC Light Volumes supplies indirect lighting. Cubemap and texture-array nodes expose additional texture resources.

Soft Outline adds feathered silhouette fins. Geometry Dissolve breaks a mesh into moving triangles. Gem combines chromatic screen refraction, probe reflections, and optional interior sparkles. Directional hair highlights, stretched reflections, subsurface controls, per-layer shadow reception, and light-aware Toon rims provide finer material control. Surface details and limits ↗

Depth effects require a camera depth texture and only see geometry represented in it. These are Linux Unity renders; client and headset checks remain separate.

Rendering controls and setup ↗

Raymarching studies

Build shapes out of a shader.

Carve a hollow sculpture, layer violet dust, or fill a ring with glowing noise. These effects are evaluated inside a cube using Volume Surface and distance-field nodes.

A hollow sphere with six openings and fine gold bands.
Pearl & goldA hollow sphere with six openings and fine gold bands.
Layered noise, warm highlights and a fading edge.
Violet dustLayered noise, warm highlights and a fading edge.
Procedural detail inside a torus-shaped volume.
Burning ringProcedural detail inside a torus-shaped volume.

Rendered in Unity with presentation bloom and tone mapping. These three example graphs are included. PC Built-In only; use a closed cube proxy and check the GPU cost.

Read the volume guide and get the graphs ↗

Material controls

More control over the material.

Blend different front and back colors, soften cutout edges with MSAA, and choose separate transparency settings for each face pass. Bent-normal maps guide ambient light and reflections; a direction override offers additional control over Toon and PBR lighting.

Vertex Deform adds XYZ transforms and shape warping. Infinity Parallax stacks texture layers inside a surface. A network clock, MSDF decals, numeric SDF text and viewer-local stats support animated displays.

Setup, wiring and limitations ↗

What's in the box

Surfaces, effects and editor tools.

From a color swatch to generated fur and raymarched volumes. Pick a surface and build the rest around it.

01 / Surfaces

Surface shading

Toon, PBR with clearcoat and velvet sheen, and Unlit. Control lighting brightness and saturation on lit surfaces, choose whether to use albedo alpha, and add matcaps, rims or optional LTCGI.

02 / Fur

Fur

Shells, silhouette fins or cards-only fur generated from mesh edges. Shape it with masks, root and tip colors, grooming, wind and local self-shadowing.

03 / Detail

Material effects

View-dependent glitter, iridescence, stickers, nested shells, wireframes and parallax. Tessellation is there when you need actual displacement.

04 / Patterns

Procedural textures

Noise in 1D–4D, Voronoi, Musgrave-style fractals, waves and ramps. Connect distortion, Polar or Panosphere coordinates to change the whole pattern.

05 / Animation

Animation and AudioLink

UV scrolling, flipbooks, vertex animation and particles emitted from the mesh. AudioLink spectrum bars, frequency bins, chronotensity and theme colors can drive graph inputs.

06 / Workflow

Editor tools

Live previews, named texture slots, intermediate node previews and reusable Patterns. Auto-organize graphs into labelled branches, arrange selections, snap nodes to the grid, compare material snapshots, scrub time, import texture sets and bake static branches.

Graph editor

Follow the wires.

Blender-like node editing, built for Unity. Drag from either socket, drop a wire into empty space to add a node, or switch related operations from the header.

Actual NXSG node editor running in Unity on Linux, with connected material nodes and a live preview

Automatic branch groups

Auto-organize follows the wires and labels branches by what they feed: albedo, emission, particle motion and other surface inputs. Shared controls and material outputs get their own frames. Short input chains stay near the nodes they control.

NXSG editor in Unity with automatically labelled material and particle branches

Rename a frame to keep your own grouping. Manual frames and Patterns are preserved; one Undo restores the previous layout. Connections and shader values stay unchanged. Dense graphs can still have crossing wires.

Organization and grid snapping ↗

Inspector settings are grouped into collapsible sections. Changed values and their section headings show an asterisk; connected inputs stay visible on folded nodes. XYZ fields use a full row, and the Tools menu groups preview, texture, material and scene actions.

Connect.

Search for a node, shape a mask and preview its output before it reaches the surface.

Build.

Build for VRChat creates a shader and material locally. Assign the material to your mesh.

Keep tweaking.

Auto scene applies saved edits after a short pause. Turn it off when you want manual builds.

Android avatar workflow

Bake a mobile material.

Bake for Mobile captures connected color and texture branches at the current preview time and creates a separate VRChat Toon Standard material. NXSG swaps matching materials in open scenes when you change Unity's build target to Android, then restores desktop materials when you switch back.

A mobile bake is one opaque snapshot. Particles, displacement and live or view-dependent effects cannot carry over exactly. Inspect the Android avatar and rebake after edits.

Try it

Install NXSG

Add the repository to ALCOM or Creator Companion, then install NX Shader Graph in your project.

Version 2.4.10 is available. Refresh your repository listing to install or update. Prerelease packages do not need to be enabled.

Manual repository URL · ALCOM / VCChttps://nerdrx.github.io/nxsg/index.json

The VCC button needs a registered vcc:// handler. On Linux, paste the URL into your package manager's repository settings.

Then, in Unity

  1. Open Tools → NXSG → Open Graph Editor.
  2. Create a graph, or import Example Graphs from NXSG's Unity Package Manager entry.
  3. Save the graph inside Assets and click Build for VRChat.
  4. Assign the generated material from Assets/NXSGGenerated to your mesh.

Build creates local assets. It does not upload your avatar.

Compatibility

Supported environment and current limits.

Developed and tested on Linux with Unity 2022.3.22f1 for PC Built-In shaders. Quest avatars use separate baked Toon Standard materials. The creator has reported VR and mirror use; reproducible native Windows, headset and client validation remains open. Start in a test project.

Performance and compatibility

Fur, shells, particles and tessellation can get expensive. Cards follow mesh edges and can overlap; shell LOD doesn't apply to cards. Cost warnings are estimates, not GPU measurements. Additional pixel lights affect Toon/PBR base surfaces; overlays have more limited lighting. Brightness limits apply per contribution. AudioLink and VRCFury still need live integration testing.

Read the test record ↗
Source, credits and what's next

The editable graph, compiler and Unity editor are separate. A community node SDK, Blender bridge, CLI and web viewer are longer-term plans. The source is public; no project-wide open-source license has been selected.

Panosphere filtering follows Poiyomi's derivative-aware approach under its MIT license. Graphlit and ShaderGraphVRC are research references.

Third-party notices ↗

Found a broken graph or a confusing control? A small example and a screenshot help a lot.

Report a bug or suggest an idea ↗