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.
NX Shader Graph · 2.4.10
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.
Made with NXSG
These are real Unity renders from the included graphs. Open one, follow the wires, and change whatever you like.



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

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



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
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
From a color swatch to generated fur and raymarched volumes. Pick a surface and build the rest around it.
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.
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.
View-dependent glitter, iridescence, stickers, nested shells, wireframes and parallax. Tessellation is there when you need actual displacement.
Noise in 1D–4D, Voronoi, Musgrave-style fractals, waves and ramps. Connect distortion, Polar or Panosphere coordinates to change the whole pattern.
UV scrolling, flipbooks, vertex animation and particles emitted from the mesh. AudioLink spectrum bars, frequency bins, chronotensity and theme colors can drive graph inputs.
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
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.

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.

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.
Search for a node, shape a mask and preview its output before it reaches the surface.
Build for VRChat creates a shader and material locally. Assign the material to your mesh.
Auto scene applies saved edits after a short pause. Turn it off when you want manual builds.
Android avatar workflow
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
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.
https://nerdrx.github.io/nxsg/index.jsonThe VCC button needs a registered vcc:// handler. On Linux, paste the URL into your package manager's repository settings.
Build creates local assets. It does not upload your avatar.
Compatibility
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.
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 ↗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 ↗