Reference / Nodes

3D Geometry

Eight nodes that produce a geometry output , six built-in primitives plus a mesh importer (OBJ / USDZ / FBX / GLTF) and 3D text. Connect their geometry port into a scene3d composer or directly to a Root geo_N port to render.

Every geometry node shares a few things: a position / rotation / scale transform and an auto-rotate field on the inspector, an albedoColor input that becomes the diffuse color when no material port is wired, and a material input that, when connected to a pbrMaterial or one of the baked presets , replaces the default shading entirely.

Without a light wired into the same scene, primitives render as black. See 3D Lights & Camera for the smallest lit scene.

Cube 3D

cube3d3D / Geometry

Axis-aligned cube primitive with sharp corners and proper UV unwrapping per face. The simplest test object.

Inputs
PortTypeDefaultRangeNotes
sizefloat10.0110Edge length in scene units.
albedoColorcolor0.8, 0.8, 0.8, 1,Diffuse color when no material is connected.
materialmaterial,,Optional PBR Material override.
Outputs
PortTypeDefaultRangeNotes
geometrygeometry,,

24 vertices (4 per face × 6 faces) so per-face normals and UVs are crisp. Indexed as 12 triangles. Cheap enough to instance heavily, a field of 200 cubes still hits frame rate on M-series.

Pair with noiseDisplace3d + a chromeMirror3d material for a quick "melted chrome" look.

Sphere 3D

sphere3d3D / Geometry

UV-sphere with adjustable tessellation. Mesh density doubles every 2× of the segments value.

Inputs
PortTypeDefaultRangeNotes
radiusfloat0.50.055Sphere radius in scene units.
segmentsfloat324128Longitude segments, rings = segments / 2.
albedoColorcolor0.8, 0.8, 0.8, 1,
materialmaterial,,
Outputs
PortTypeDefaultRangeNotes
geometrygeometry,,

Polar UV mapping, there's a slight pinch at the poles, like every UV sphere. For procedural displacement (noise, twist, wave), 64 segments is the sweet spot. Below 16 you start to see the polygons.

The reference object for any new shader: it has every surface orientation in one place, so it's the fastest way to debug a PBR Material.

Plane 3D

plane3d3D / Geometry

Flat quad facing +Y. Useful as a floor, a screen for projection, or a backdrop.

Inputs
PortTypeDefaultRangeNotes
widthfloat10.150
heightfloat10.150
albedoColorcolor0.8, 0.8, 0.8, 1,
materialmaterial,,
Outputs
PortTypeDefaultRangeNotes
geometrygeometry,,

Two triangles, one normal. UV coordinates run 0–1 across the entire plane, useful when you want to sample a 2D texture as a sky-ground map or to set up screen-space projection.

Torus 3D

torus3d3D / Geometry

Donut. Two radii independently controlled. The crowd-favourite test geometry for materials.

Inputs
PortTypeDefaultRangeNotes
majorRadiusfloat0.50.055Distance from center to the tube center.
minorRadiusfloat0.150.012Tube thickness.
segmentsfloat324128Segments around the major axis.
ringsfloat24496Segments around the tube.
albedoColorcolor0.8, 0.8, 0.8, 1,
materialmaterial,,
Outputs
PortTypeDefaultRangeNotes
geometrygeometry,,

Slow auto-rotation on Y + chrome material + a single warm directional light is the original VJ test pattern for a reason. The double-curved surface stresses materials better than a sphere does.

Cylinder 3D

cylinder3d3D / Geometry

Capped cylinder, axis-aligned to Y. Inputs control radius, height and segment count.

Inputs
PortTypeDefaultRangeNotes
radiusfloat0.50.015
heightfloat10.110
segmentsfloat32396
albedoColorcolor0.8, 0.8, 0.8, 1,
materialmaterial,,
Outputs
PortTypeDefaultRangeNotes
geometrygeometry,,

Includes top and bottom caps. UV mapping wraps once around the side and projects radially on the caps. Useful as a column, a pillar, or (with low segment count) a faceted prism.

Cone 3D

cone3d3D / Geometry

Cone or pyramid, the segment count determines whether it reads as smooth or faceted.

Inputs
PortTypeDefaultRangeNotes
radiusfloat0.50.015Base radius.
heightfloat10.110
segmentsfloat323963 = tetrahedron, 4 = square pyramid, 32 = smooth cone.
albedoColorcolor0.8, 0.8, 0.8, 1,
materialmaterial,,
Outputs
PortTypeDefaultRangeNotes
geometrygeometry,,

Drop segments to 3 or 4 to use this as a low-poly pyramid. Beyond 32 the silhouette is indistinguishable from a true cone but the GPU cost grows linearly.

Mesh Loader 3D

meshLoader3d3D / Geometry

Loads a 3D mesh from disk. Supports OBJ, USDZ, USD, USDA, USDC, PLY, ABC, STL natively, plus FBX, GLTF, GLB, DAE, 3DS, BLEND and others through the bundled Assimp bridge.

Inputs
PortTypeDefaultRangeNotes
scalefloat10.01100Uniform scale applied at load time.
albedoColorcolor0.85, 0.85, 0.85, 1,
materialmaterial,,
Outputs
PortTypeDefaultRangeNotes
geometrygeometry,,

Use the Load… button on the inspector. ModelIO handles the Apple-native formats (OBJ / USD family / PLY / ABC / STL). Anything else routes through Assimp 6, it's included inside the app bundle, no extra install required.

Missing normals and UVs are generated automatically. Multi-mesh files get merged into a single vertex / index buffer at load time, so the whole asset shares a single transform and material.

Triangulated assets ship best. If a model loads with holes, retriangulate it in your DCC and re-export, R3NE doesn't auto-triangulate ngons.

Text 3D

text3d3D / Geometry

A 3D-positioned text card. CoreText rasterizes the string at the chosen font + size, the result becomes an alpha-tested quad with crisp glyph silhouettes that take light, fog, DoF and bloom like any other geometry.

Inputs
PortTypeDefaultRangeNotes
heightfloat10.150World-space height of the rendered text. Width follows the rasterized aspect ratio.
albedoColorcolor1, 1, 1, 1,
materialmaterial,,
Outputs
PortTypeDefaultRangeNotes
geometrygeometry,,

Type the string, font name and pixel size in the inspector. The node sets materialData.alphaTest = true internally so transparent areas around the glyphs are discarded in the G-buffer pass, the result feels native, not like a billboard.

Combine with chromeMirror3d for hard reflective type, or neon3d for a glowing emissive look that interacts with bloom.


A minimal scene

Three nodes plus the Root. This is the smallest reproducible 3D scene in R3NE:

json
{
  "nodes": [
    {"type": "torus3d", "params": {"autoRotateY": 0.3, "metallic": 1.0, "roughness": 0.15}},
    {"type": "directionalLight3d", "params": {"rotationX": -0.7, "rotationY": 0.5, "intensity": 1.5}},
    {"type": "camera3d", "params": {"positionZ": 4.0, "fov": 50}}
  ],
  "connections": [
    {"sourceIndex": 0, "sourcePort": "geometry", "targetIndex": -1, "targetPort": "geo_1"},
    {"sourceIndex": 1, "sourcePort": "light",    "targetIndex": -1, "targetPort": "light_1"},
    {"sourceIndex": 2, "sourcePort": "camera",   "targetIndex": -1, "targetPort": "camera"}
  ]
}

Pasted into the MCP create_composition tool, this paints a slowly rotating chrome-ish torus on screen. From there you stack: add a light or two, swap in chromeMirror3d, wrap the geometry through noiseDisplace3d, etc.