Skip to content

Node Reference

Marko Koljancic edited this page Jul 14, 2026 · 6 revisions

Home

Node Reference

Every node type in Solarxy Web, with its ports, parameters and defaults.

This page is generated from the node registry itself (cargo run -p solarxy-graph --example gen_registry -- markdown), so it cannot drift from the application. Do not edit it by hand: change the node's descriptor in crates/solarxy-graph/src/nodes/ and regenerate.

33 node types across 6 categories.

Contents

Container
Geo

Import
Import Image · Import OBJ · Import PLY · Import STL · Import glTF

Lights
Ambient Light · Directional Light · Hemisphere Light · Point Light · Rect Area Light · Spot Light

Modifiers
Array · Compute Normals · Delete · Material · Merge · Mirror · Subdivide · Transform · UV Project · Validate

Primitives
Box · Cone · Cylinder · Plane · Sphere · Torus · Torus Knot

Utility
Bounds · Note · Null · Switch

Container

Geo

geo · v3 · Container · placed scene

A container node hosting a subflow; renders its subflow's active display object with this node's transform applied.

Parameter Type Default Range Notes
translate vec3 [0.0,0.0,0.0] meters
rotate vec3 [0.0,0.0,0.0] degrees
rotate_order enum (xyz / xzy / yxz / yzx / zxy / zyx) xyz
scale vec3 [1.0,1.0,1.0] 0.001 to 10000
uniform_scale float 1.0 0.001 to 10000
visible bool true Whether this object is displayed. Hidden objects stay cooked, so re-show is instant.
cast_shadow bool true Whether this object is drawn into the shadow map.

Bypassed: emits nothing.

Import

Import Image

import_image · v1 · Import · placed inside a geo

Loads an image file as a texture value for material map inputs.

Port Direction Type Notes
image out Image
Parameter Type Default Range Notes
file assetRef ``

Bypassed: emits nothing.

Import OBJ

import_obj · v3 · Import · placed inside a geo

Loads a Wavefront OBJ (MTL and textures via the asset resolver).

Port Direction Type Notes
geometry out Geometry
Parameter Type Default Range Notes
file assetRef ``
scale float 1.0 0 to 10000
center_to_origin bool false
preserve_materials bool true

Bypassed: emits nothing.

Import PLY

import_ply · v2 · Import · placed inside a geo

Loads a binary or ASCII PLY mesh.

Port Direction Type Notes
geometry out Geometry
Parameter Type Default Range Notes
file assetRef ``
scale float 1.0 0 to 10000
center_to_origin bool false

Bypassed: emits nothing.

Import STL

import_stl · v2 · Import · placed inside a geo

Loads a binary or ASCII STL mesh.

Port Direction Type Notes
geometry out Geometry
Parameter Type Default Range Notes
file assetRef ``
scale float 1.0 0 to 10000
center_to_origin bool false
recompute_normals bool true

Bypassed: emits nothing.

Import glTF

import_gltf · v2 · Import · placed inside a geo

Loads a glTF or GLB model.

Port Direction Type Notes
geometry out Geometry
Parameter Type Default Range Notes
file assetRef ``
scale float 1.0 0 to 10000
center_to_origin bool false
preserve_materials bool true

Bypassed: emits nothing.

Lights

Ambient Light

ambient_light · v1 · Lights · placed scene

A uniform fill light with no position or shadow; modulates the scene ambient/IBL term.

Parameter Type Default Range Notes
color color [1.0,1.0,1.0,1.0]
intensity float 0.5 0 to 1000
visible bool true
show_helper bool false
helper_size float 1.0 0.1 to 10

Bypassed: emits nothing.

Directional Light

directional_light · v1 · Lights · placed scene

A parallel light (like the sun); its shadow frustum auto-fits the scene bounds.

Parameter Type Default Range Notes
position vec3 [10.0,10.0,5.0] meters
target vec3 [0.0,0.0,0.0] meters
color color [1.0,1.0,1.0,1.0]
intensity float 1.5 0 to 1000
cast_shadow bool true
map_size enum (512 / 1024 / 2048) 2048
bias float 0.0001 -0.01 to 0.01
visible bool true
show_helper bool false
helper_size float 1.0 0.1 to 10

Bypassed: emits nothing.

Hemisphere Light

hemisphere_light · v1 · Lights · placed scene

A two-color sky/ground ambient light.

Parameter Type Default Range Notes
sky_color color [1.0,1.0,1.0,1.0]
ground_color color [0.2669999897480011,0.2669999897480011,0.2669999897480011,1.0]
intensity float 1.0 0 to 1000
visible bool true
show_helper bool false
helper_size float 1.0 0.1 to 10

Bypassed: emits nothing.

Point Light

point_light · v1 · Lights · placed scene

An omnidirectional light with distance falloff.

Parameter Type Default Range Notes
position vec3 [10.0,10.0,5.0] meters
color color [1.0,1.0,1.0,1.0]
intensity float 1.5 0 to 1000
range float 0.0 0 to 100000 meters
decay float 2.0 0 to 10
cast_shadow bool true
map_size enum (512 / 1024 / 2048) 1024
bias float -0.0001 -0.01 to 0.01
visible bool true
show_helper bool false
helper_size float 1.0 0.1 to 10

Bypassed: emits nothing.

Rect Area Light

rect_area_light · v2 · Lights · placed scene

A rectangular area light (rendered as a soft point-light approximation in v1).

Parameter Type Default Range Notes
translate vec3 [0.0,0.0,0.0] meters
color color [1.0,1.0,1.0,1.0]
intensity float 1.5 0 to 1000
width float 10.0 0.1 to 1000 meters
height float 10.0 0.1 to 1000 meters
visible bool true
show_helper bool false
helper_size float 1.0 0.1 to 10

Bypassed: emits nothing.

Spot Light

spot_light · v1 · Lights · placed scene

A cone light with an angle and soft-edge penumbra.

Parameter Type Default Range Notes
position vec3 [10.0,10.0,5.0] meters
target vec3 [0.0,0.0,0.0] meters
color color [1.0,1.0,1.0,1.0]
intensity float 1.5 0 to 1000
range float 0.0 0 to 100000 meters
decay float 2.0 0 to 10
angle float 45.0 1 to 89 degrees
penumbra float 0.0 0 to 1 normalized
cast_shadow bool true
map_size enum (512 / 1024 / 2048) 1024
bias float -0.0001 -0.01 to 0.01
visible bool true
show_helper bool false
helper_size float 1.0 0.1 to 10

Bypassed: emits nothing.

Modifiers

Array

array · v1 · Modifiers · placed inside a geo

Duplicates the input geometry, either in a line or around a circle. Materials are preserved and shared across the copies.

Port Direction Type Notes
geometry in Geometry required; The geometry to duplicate.
geometry out Geometry
Parameter Type Default Range Notes
mode enum (linear / radial) linear
count int 3 1 to 512 How many copies in total, counting the original. 1 is a no-op.
offset vec3 [1.0,0.0,0.0] meters; The step between copies: copy i is offset by i times this.
axis enum (x / y / z) y The axis the copies revolve about.
radius float 0.0 0 to 10000 meters; How far each copy sits from the axis before it revolves.
sweep float 360.0 -360 to 360 degrees; The total angle the copies span. Each copy steps by sweep/count, so a full 360 tiles evenly without doubling up at the seam.

Bypassed: passes geometry straight through.

Compute Normals

compute_normals · v2 · Modifiers · placed inside a geo

Recomputes per-vertex normals from the triangle topology.

Port Direction Type Notes
geometry in Geometry required; The geometry whose normals to recompute.
geometry out Geometry
Parameter Type Default Range Notes
flip_orientation bool false Reverses triangle winding and negates normals (fixes inside-out meshes).

Bypassed: passes geometry straight through.

Delete

delete · v1 · Modifiers · placed inside a geo

Removes triangles by region or by facing. Vertices left orphaned by the removal are compacted away. Deleting everything is allowed and produces empty geometry, not an error.

Port Direction Type Notes
geometry in Geometry required; The geometry to cull triangles from.
geometry out Geometry
Parameter Type Default Range Notes
mode enum (bbox / normal) bbox Select triangles by where they are, or by which way they face.
invert bool false Delete everything the selection does NOT cover.
center vec3 [0.0,0.0,0.0] meters; The center of the region box.
size vec3 [1.0,1.0,1.0] meters; The size of the region box. A triangle goes when its centroid is inside.
direction vec3 [0.0,1.0,0.0] The facing to match against.
angle float 45.0 0 to 180 degrees; How far off the direction a face can point and still be selected.

Bypassed: passes geometry straight through.

Material

material · v1 · Modifiers · placed inside a geo

Assigns a PBR material to every mesh of the input; connected maps drive their channels, factors drive the rest.

Port Direction Type Notes
geometry in Geometry required
base_color_map in Image
normal_map in Image
metallic_roughness_map in Image
occlusion_map in Image
emissive_map in Image
geometry out Geometry
Parameter Type Default Range Notes
base_color color [0.800000011920929,0.800000011920929,0.800000011920929,1.0] overridden when base_color_map is connected
metallic float 0.0 0 to 1 overridden when metallic_roughness_map is connected
roughness float 0.5 0 to 1 overridden when metallic_roughness_map is connected
emissive color [0.0,0.0,0.0,1.0] overridden when emissive_map is connected
material_name text ``

Bypassed: passes geometry straight through.

Merge

merge · v2 · Modifiers · placed inside a geo

Concatenates its inputs into one geometry set, in port order, deduplicating identical materials.

Port Direction Type Notes
inputs in Geometry accepts many; The geometry sets to concatenate, in order.
geometry out Geometry

Bypassed: passes inputs straight through.

Mirror

mirror · v1 · Modifiers · placed inside a geo

Reflects the input across an axis-aligned plane, flipping the winding so the reflected surface faces outward. Keep Original merges both halves, which is the usual way to build a symmetric model from one side.

Port Direction Type Notes
geometry in Geometry required; The geometry to reflect.
geometry out Geometry
Parameter Type Default Range Notes
axis enum (x / y / z) x The axis the mirror plane is perpendicular to.
offset float 0.0 -10000 to 10000 meters; Where the mirror plane sits along the axis.
keep_original bool true Merge the reflection with the original instead of replacing it.

Bypassed: passes geometry straight through.

Subdivide

subdivide · v2 · Modifiers · placed inside a geo

Splits every triangle into four at its edge midpoints, interpolating normals, UVs, and attributes.

Port Direction Type Notes
geometry in Geometry required
geometry out Geometry
Parameter Type Default Range Notes
iterations int 1 1 to 5

Bypassed: passes geometry straight through.

Transform

transform · v2 · Modifiers · placed inside a geo

Translates, rotates, and scales the input geometry, baking the transform into point positions.

Port Direction Type Notes
geometry in Geometry required; The geometry to transform.
geometry out Geometry
Parameter Type Default Range Notes
translate vec3 [0.0,0.0,0.0] meters
rotate vec3 [0.0,0.0,0.0] degrees
rotate_order enum (xyz / xzy / yxz / yzx / zxy / zyx) xyz
scale vec3 [1.0,1.0,1.0] 0.0001 to 10000
uniform_scale float 1.0 0.0001 to 10000
pivot vec3 [0.0,0.0,0.0] meters

Bypassed: passes geometry straight through.

UV Project

uv_project · v1 · Modifiers · placed inside a geo

Projects UVs onto the input (planar, box, cylindrical, or spherical), normalized over its bounds.

Port Direction Type Notes
geometry in Geometry required
geometry out Geometry
Parameter Type Default Range Notes
mode enum (planar / box / cylindrical / spherical) planar
axis enum (x / y / z) y
scale vec2 [1.0,1.0]
offset vec2 [0.0,0.0]

Bypassed: passes geometry straight through.

Validate

validate · v2 · Modifiers · placed inside a geo

Runs the Solarxy validation checks over the input geometry, passing the geometry through and emitting a report.

Port Direction Type Notes
geometry in Geometry required; The geometry to validate (passed through unchanged).
geometry out Geometry
report out Report The validation report.
Parameter Type Default Range Notes
normals bool true
uvs bool true
topology bool true
materials bool true
budget bool true
triangle_budget int 0 0 to 2000000000

Bypassed: passes geometry straight through.

Primitives

Box

box · v2 · Primitives · placed inside a geo

A rectangular box, subdivided per axis.

Port Direction Type Notes
geometry out Geometry
Parameter Type Default Range Notes
width float 1.0 0.001 to 10000 meters
height float 1.0 0.001 to 10000 meters
depth float 1.0 0.001 to 10000 meters
width_segments int 1 1 to 512
height_segments int 1 1 to 512
depth_segments int 1 1 to 512

Bypassed: emits nothing.

Cone

cone · v2 · Primitives · placed inside a geo

A cone with an apex along +Y.

Port Direction Type Notes
geometry out Geometry
Parameter Type Default Range Notes
radius float 0.5 0.001 to 10000 meters
height float 1.0 0.001 to 10000 meters
radial_segments int 32 3 to 512
height_segments int 1 1 to 512

Bypassed: emits nothing.

Cylinder

cylinder · v2 · Primitives · placed inside a geo

A cylinder (or capped cone when a radius is zero).

Port Direction Type Notes
geometry out Geometry
Parameter Type Default Range Notes
radius_top float 0.5 0 to 10000 meters
radius_bottom float 0.5 0 to 10000 meters
height float 1.0 0.001 to 10000 meters
radial_segments int 32 3 to 512
height_segments int 1 1 to 512

Bypassed: emits nothing.

Plane

plane · v2 · Primitives · placed inside a geo

A flat subdivided rectangle in the XY plane facing +Z.

Port Direction Type Notes
geometry out Geometry
Parameter Type Default Range Notes
width float 1.0 0.001 to 10000 meters
height float 1.0 0.001 to 10000 meters
width_segments int 1 1 to 1024
height_segments int 1 1 to 1024

Bypassed: emits nothing.

Sphere

sphere · v2 · Primitives · placed inside a geo

A UV sphere with poles along Y.

Port Direction Type Notes
geometry out Geometry
Parameter Type Default Range Notes
radius float 0.5 0.001 to 10000 meters
width_segments int 32 3 to 512
height_segments int 16 2 to 512

Bypassed: emits nothing.

Torus

torus · v2 · Primitives · placed inside a geo

A torus (donut) in the XY plane.

Port Direction Type Notes
geometry out Geometry
Parameter Type Default Range Notes
radius float 0.5 0.001 to 10000 meters
tube float 0.2 0.001 to 10000 meters
radial_segments int 16 3 to 1024
tubular_segments int 32 3 to 1024

Bypassed: emits nothing.

Torus Knot

torus_knot · v2 · Primitives · placed inside a geo

A (p, q) torus knot swept as a tube.

Port Direction Type Notes
geometry out Geometry
Parameter Type Default Range Notes
radius float 0.5 0.001 to 10000 meters
tube float 0.2 0.001 to 10000 meters
p int 2 1 to 10
q int 3 1 to 10
tubular_segments int 128 3 to 2048
radial_segments int 32 3 to 2048

Bypassed: emits nothing.

Utility

Bounds

bounds · v1 · Utility · placed inside a geo

Emits the input's axis-aligned bounding box as geometry, or a small marker cube at its center. Useful for measuring a model and for sanity-checking where a piece of geometry actually sits.

Port Direction Type Notes
geometry in Geometry required; The geometry to measure.
geometry out Geometry
Parameter Type Default Range Notes
mode enum (box / center) box Box emits the bounding box itself; Center emits a marker at its center.
marker_size float 0.1 0.001 to 100 meters; The size of the center marker cube.

Bypassed: passes geometry straight through.

Note

note · v1 · Utility · placed scene or inside a geo

A canvas annotation. Double-click to edit; resizable.

Parameter Type Default Range Notes
text text ``
color color [0.9919999837875366,0.9020000100135803,0.5410000085830688,1.0]
width float 160.0 120 to 800
height float 80.0 60 to 600

Bypassed: cannot be bypassed.

Null

null · v1 · Utility · placed inside a geo

Passes geometry through unchanged. Use it as a stable output anchor for a subflow: point the display flag at the null and it stays put while you rework the graph feeding it.

Port Direction Type Notes
geometry in Geometry required; The geometry to pass through unchanged.
geometry out Geometry

Bypassed: passes geometry straight through.

Switch

switch · v1 · Utility · placed inside a geo

Passes exactly one of its inputs through, chosen by index. The index counts wires in the order they are connected, so an input that fails to cook does not shift the selection.

Port Direction Type Notes
inputs in Geometry accepts many; The candidate geometries, in wire order. The index selects among them.
geometry out Geometry
Parameter Type Default Range Notes
index int 0 0 to 255 Which input wire to pass through, counting from 0 in wire order. Clamped to the number of connected wires.

Bypassed: passes inputs straight through.

Clone this wiki locally