2024 Help

Node Reference

Add Geometry

lwo_objects.original.jpg
The Add Geometry node is used to add input geometry to the geometry collection. The Procedural Geometry input is evaluated before the Geometry input is added. Unique indicates that input geometry is added to a different object in the collection and includes a transform matrix.

If a name is not provided here the bin's name will be the same as the input geometry.

Weld will collapse the input geometry into one object and remove duplicate vertices.

Add Instance

add_instance.original.jpg
The Add Instance node is used to add input geometry to the Instance collection. This is intended to be with input scene objects. No geometry is made, It uses the target ItemID from the From Mesh node as the geometry input. Instancing the ProGeo object itself requires the Instance generator in Object Properties.

Boolean CSG

boolean_csg.original.jpg
The CSG node is used for creating Constructive Solid Geometry using mesh booleans. This is a non-destructive process. You can choose Union, which unifies geometry; Intersection, which purely shows the overlapping parts of the two objects used; or Subtraction, which takes the second object from the first. Objects need to be solid 3D shapes with no holes.

Branch

BranchGeometry.gif

New to 2024, the Branch Geometry node can be used to make all sorts of branches - from flowers and trees to lightning. The Position tab is for setting the initial disposition of your branch in a line between Position 1 and Position 2, with envelopes for animating those values over time. While the node has a vector input for Noise, you can also purely use the Branching tab. You have control over how many splits there will be, when they will take place, etc. The Mesh tab is for deciding whether your branch will use geometry or rely on edge rendering effects.

Cache Geometry

cache_geometry.png
You can save Procedural Geometry objects by adding a cache path into the node flow. If an object is particularly complex to make, or going to be rendered across multiple machines, using a cache is a good idea.

Options

Freeze

This will create purely polygonal mesh transforms for saving

Save Sequence

Clicking this will start saving every change at each frame for this object. Once your scene has been run through, you can disconnect the original nodes and just leave the cache node connected. This will be faster than having to evaluate all the nodes upstream from the cache

Save Path

The path upon which the .lwgo format cache files will be saved

Combine Geometry

combine_geometry.png
This unprepossessing node just has a Geometry input and a Result output. If you double-click the node, you just get a field for naming. As soon as you hook something to the input node, you'll notice you get a new Geometry_1 input. Hook something to that and you'll get another. This node will merely put separate objects into a single one for downstream calculation. There is no Boolean math, they are just stuck together.

Data Geometry

data_geometry.jpg
The Data node is used for getting mesh data such as point locations, polygon counts, center points and normals from a mesh object.

Evaluate Geometry

evaluate_geometry.png
This node can stop the For Loop operation if the result is not >0 (true).

Extrude Geometry

extrude_geometry.jpg
The Extrude node is used for extruding (keeping the original polygon) or beveling (removing the original polygon). Both can have an inset value and be driven by envelopes and textures. If you use the Select Polygons node upstream, you can specify exactly which polygons get extruded.

Options

Axis - X, Y, Z or the polygon normal

The axis chosen for the extrude

Offset

Distance to extrude to. Can be animated through the E button and textured with T

Bevel

Choose whether to extrude (polygons on both sides) or Bevel (polygons just on one side)

Inset

The distance to bring newly-extruded polygons from the bounds of the original polygon being extruded. Can be animated and textured

Name

Names the polygons to be extruded

Keep Selection

Checkbox to keep the polygons selected with the Select Polygon node further downstream in node connections

New Surface

Dropdown with four choices:

  • New Polygons - Only polygons created with the extrude will get new surfacing. Essentially, the sides of the extrude

  • Original Polygons - Resurfaces the original polygons from which the extrusion was made. Essentially the top of the extrude

  • Both - Surfaces original and extruded polygons the same way

  • None - Has no impact on surfaces

    extrude_surfaces.png

Filter Geometry

Filter_geometry.png
The Filter Geometry node is for selecting specific details you wish to use elsewhere. Procedural Geometry goes in and you can choose what comes out. Double-clicking on the node reveals a dropdown menu of network shapes, but there's a text entry in case the item you want is not on the list. The first output, Result, is used with the corresponding Geometry Filter input on the Info Geometry node. The Item Count output outputs the integer count of how many things have been filtered.

For Loop

For_loop.png
The For Loop node is used for repeating an operation between the start and end values.
For_loop-demo.png
For Loop can evaluate the input geometry multiple times with the Add Geometry transform position, rotation and scale. The loop can evaluate the Add Geometry and Add Instance nodes.

From Mesh

The From Mesh node will take existing mesh-based objects and use them in a Procedural Geometry context. Objects can be transformed or have additional options like MDD point caches or being categorised as Static. New to 2024, the dropdown menu now contains a Load Mesh entry.

Geometry VDB

This node converts Procedural Geometry objects into VDB objects. The output node for this node requires nodes from the OpenVDB group to continue operations before using the VDB Geometry node to continue as Procedural Geometry geometry.

You can control over Voxel Size (basically the resolution of the object) and Inner and Outer Bandwidths for objects that might not have a consistent amount of detail.

Grid Geometry

grid_geometry.original.png
Makes a regular grid of x by y cells. You can choose to make the grid visible by using Make Polygons or just have it as a non-rendering base for other objects - instances on the grid points as an example.

Options

X, Y Count

How many squares your grid will be

Position X, Y, Z

Where your grid will be. This can be animated with the E button

Rotation X, Y, Z

How your grid will be rotated. This can be animated with the E button

Scale X, Y, Z

How your grid will be sized. This can be animated with the E button

Hyper Paint

There are two outputs for this node, Result and Stroke Count. Stroke Count should go to the End input on the For Loop node and Result goes to the Geometry Filter input on the Info Geometry node.

HyperPaint.png
Paint Points

Checking this puts your Layout viewport into paint mode. The viewport is surrounded with a green line.

Erase Stroke

Clicking or swiping over a stroke you have made will clear it.

Clear All Layers

This will clear all stroked listed below.

Target Item

A dropdown list of all scene items. Choose one to paint on

Resample Spacing

How far apart samples are taken

Offset From Viewport

How far off the surface of the object you are painting on. This value is in metres.

Keyframed Strokes

This checkbox is for creating a stroke that builds over time rather than a static one.

Lister

this window shows the Stroke layers you have created, how many keys they contain and how many strokes have been made

Info Geometry

The Info Geometry node

The Info Geometry node is most often paired with the Filter Geometry and Data Geometry nodes to extract information about the points, polygons and other details about the geometry it's attached to. Its Geometry Filter input can either be the Filter node's output or directly from Primitive Geometry or Add Geometry node outputs. The Collapse option available on double-clicking the node will output a single mesh, rather than separated components.

L-System

Introduction

lsystem.png
L-systems or Lindenmayer systems - named after Hungarian scientist Aristid Lindenmeyer - are parallel (the four lines of rules are run at the same time) rewriting systems. An L-system consists of an alphabet of symbols called Tokens. There are rules to expand each Token into a larger string of symbols, a Seed string that starts construction, and a mechanism for translating the generated strings into geometric structures that can either be solid geometry or lines shown at render time using edges. If you are familiar with Turtle graphics from school L-Systems should feel similar. With the default when you add the L-Systems node, just try the iterations setting to see how the rules work.

Presets

L-SystemPresets.png
There are several example presets for you to pick apart in the Preset dropdown at the top of the window. There is also a button to add your own. The Seed value is used to start building and four lines of "code" that will be run in parallel to create the L-System. Next is a button to show the complete Token List, which you can refer to while creating your own rules.
L-SystemTokens.png
Many L-Systems are available online and are easily translatable to LightWave's token format.

Other settings

L-System-meshoredge.gif
In the lower half of the window, there are three tabs:

Iterations

How many times to repeat the rules

Step Distance

The default unit of distance travelled for each F

Angle

The default angle to turn with each +, -, &, ^, \ or /

Tropism

The default angle T

Start Direction

This can be Forward, Up or Left and determines the direction of your L-System's travel

Random Seed

A random number to start your L-System's growth

Name

The surface name to apply to created geometry

Step Distance

This controls how fast your branch grows and can be animated over time with the E button and textured with the T

Angle Scale

Controls the variance of angle between branches. It can be animated with E and textured with T

Width Scale

This can be animated over time and textured. It is good for the simulation of tree growth

Mesh

A checkbox to decide if you'd like actual geometry created, which can be saved as an object. If you leave this off, you can still render your L-System using Object Properties > Primitive > Edges.

Width

Decides your mesh quality and can be animated over time or textured using the E and T buttons

Sides

Decides the sides for the branches - four will make a square branch

Lathe

Lathe_node-window.png

The Lathe node spins geometry around a chosen axis. You can decide how many turns to make, an offset and whether to close the ends. Lathed geometry can have a distinct surface.

Lerp Vector

lerpvector.jpg
The Lerp node linearly interpolates between vector1 and vector2 by the delta <0,1>.

Line Geometry

Line_geometry1.png
Using three nulls you can create procedural lines in Layout. The first null, call it Nodes, is used for the nodes to create the line, the other two nulls are base and target. Add the Procedural Geometry modifier to the Nodes null and use Item Info nodes with the Line Geometry node to create the procedural line. This line will be rendered using the Object Properties > Edge settings. Remember, a positive number here indicates a line measured in screen pixels (no matter how near or far it is); a negative number indicates a real-world size. The Subdivide Integer input can be used to deform the line using Nodal Displacement in Object Properties.
Line_geometry2.png

Point Geometry

Point_geometry.jpg
The Point node outputs points using an expanding list of input points. When you add an input another input will appear.

Poly Geometry

Poly_geometry.jpg
The Poly node outputs polygons of several different types.

Options

Point Polys

Single-point polygons

Polygon

Outputs a single polygon as x

Line Chain

Creates a chain of 2-point polys from the first indexed point to the last

Primitive Geometry

Primitive_geometry.png
The Primitive node outputs cubes, cylinders or spheres. You can dictate the number of sides for Cylinders or division level for spheres.

Options

Position X, Y and Z

This value can be animated over time

Rotation X, Y and Z

This value can be animated over time

Scale X, Y and Z

Can be animated over time

Name

This is the internal name for the polygonal object created

Sides

This setting appears if you have changed the object type to Cylinder and indicates the "polygonal resolution" of the end caps for your cylinder

Level

This setting appears when you have changed the object type to Sphere and indicates the subdivision level.

Scatter Points

Scatter_points.jpg
The Scatter Points node outputs points or single-point polygons offset from the input mesh surface.

Select Polygons

Select_polygons.png
When you don't want to affect an object completely - just some of its polys - this is the node for you.

Options

Select Polygons

Check this and then select the polygons you want with the LMB. If you want to remove polygons from the selection, use RMB on them.

Clear selected

Removes the whole selection, essentially deselecting the whole object. In line with the LightWave philosophy, if nothing is selected, everything is selected.

By Surface

The dropdown represents the object's complete surface list for selection by surface.

Set Position

Set position is used to modify the position of Mesh or Spline geometry in a Procedural Geometry context. The Position Vector input could be supplied by a texture or some other mechanism and the UVBlend scalar input is best fed with a gradient (because they have a built-in UV component).

Spline Geometry

SplineGeometry.gif

When you double-click on the Spline Geometry node, you will have a choice between Spline and Polyline geometry.

Spline Options

A spline here is a curved line. It has handles at either end to control the tangent. Additional knots can be placed by right-clicking on a knot.

Y Up

This constrains the spline to having its Y coordinate always in a vertical orientation

Segments

How many knots are along the whole spline (no matter how many knots)

Linear

A checkbox to create a spline with sharp corners (the spacing isn't changed, just the tangent interpolation)

Polyline Options

A polyline is a set of straight edges, much as though you are creating this polygonally. Again, additional knots can be placed by right-clicking a knot

Max Distance

The maximum distance between two knots without a subdivision. You will be able to see them as small bumps on the line or spline

Rotate

Rotate the items you are using along the spline about the spline. Using Y Up ghosts this option

Shared Controls

Rotate

Rotate the items you are using along the spline about the spline. Using Y Up ghosts this option

Radius

When using Skin with no other geometry, determines how thick to make the spline

Start

The visible start for your spline. This can be enveloped or textured

End

The visible end for your spline. This can be enveloped or textured

Output

A dropdown with four styles of spline or Polyline to choose from:

  • Points - Converts the user-created knots and Segments into points

  • Skin -The main option and the reason for the radius setting.

  • Knots - Uses the user-created knots and automatic tangential knots

  • Line Chain - Converts the Polyline into a chain of 2-point polygons

Sides

How many sides the Spline will consist of when made into polygons

U Subdivide

Subdivides the length of the spline's automatic UV map

Visualize

Shows the vectors for each segment of the spline

Rotation Scale Handles

Add handles to each knot to control that knot's scale and rotation (if you use the Y Up option, Rotation handles will not be shown)

Name

The surface name and name used for the Procedural Geometry destination node window

Gizmo

SplineGeometry-gizmo.jpg
The Spline node features a gizmo with transforms. and an edit menu.

SplineGeometry-menu.jpg
The gizmo has a right click menu.

Rotate and scale

SplineGeometry-rotateandscale.jpg
The gizmo has rotation and scaling handles per knot.

Visualization

SplineGeometry-vis.jpg
The gizmo has a visualization showing the changing transforms at each segment along the path.

Transform Path

SplineGeometry-transformpath.jpg
The Transform Item node can move an item along a spline path. In this example, the spline path has a multi-polygon profile extrusion.

Spline Info

SplineInfo.png
This node is used for downstream access to the Spline Geometry node. The input nodes are Spline, which is always only ever fed by the Spline Info output from the Spline Geometry node and Delta, which is used for the value of the distance from the start of the loop <0,1>. The node will output Position, Forward, Tangent, Normal, Rotation and Radius at the given distance from the start of the spline. Radius is the interpolated radius values along the length. Length refers to the distance between points and Count is the current iteration.

Thicken

Thicken_node-window.png

Thicken makes a shell offset of your mesh with few controls. The offset determines how thick the wall will be and you can offset outwards with a positive value or inward with a negative value; this can be enveloped. The New Surface choice is the same as with Extrude Geometry.

Transform Item

Used to transform (change position, rotation or scale) an item in a Procedural Geometry network.

VDB Geometry

Converts from an OpenVDB SDF to Procedural Geometry geometry. You can give the resulting object a new name if desired.

Last modified: 11 December 2024