Builtin Library
- ..
- .metadata231 B
- README.md3.4 KB
- bevel.procNode
- blank.procNode
- boolean.procNode
- bvh.procNode
- decimate.procNode
- delete.procNode
- extrude.procNode
- first.procNode
- flip.procNode
- following.procNode
- kept.procNode
- loft.procNode
- measure.procNode
- merge.procNode
- offsets.procNode
- perpendicular.procNode
- profile.procNode
- recalculate_normals.procNode
- revolve.procNode
- ribbon.procNode
- rings.procNode
- rotate.procNode
- selected.procNode
- separate.procNode
- set_material.procNode
- set_position.procNode
- shared.procNode
- sides.procNode
- smooth_normals.procNode
- solidify.procNode
- split.procNode
- subdivide.procNode
- sweep.procNode
- tangents.procNode
- to_sdf.procNode
- transform.procNode
- transport.procNode
- triangulate.procNode
- trim.procNode
- unit.procNode
- voxelize.procNode
- weld.procNode
README.md
geometry
Nodes that move, join, cut, round, thicken and sample meshes. A graph transforms a geometry (geometry.transform, geometry.set_position, geometry.merge), welds and shades it (geometry.weld, geometry.smooth_normals), models it (geometry.extrude, geometry.solidify, geometry.bevel, geometry.subdivide, geometry.decimate), builds surfaces from outlines (geometry.sweep, geometry.revolve, geometry.loft, geometry.ribbon) and reads it into volumes (geometry.voxelize, geometry.to_sdf). Each is built from the core nodes and the kernels of the library.
Nodes
geometry.transform,geometry.set_position,geometry.set_material,geometry.merge,geometry.triangulate,geometry.measure: the basic edits and the measurement of a geometry.geometry.mergealso joins pieces into a piece set forinstances.to_points; a part that lacks an attribute another part carries takes the value an element without it has: an instance attribute's identity, else zero (its README says exactly how).geometry.weld(withmatch = "position+normal"it keeps hard edges),geometry.smooth_normals: merging points and shading normals.geometry.extrude,geometry.solidify,geometry.bevel,geometry.subdivide,geometry.decimate: modelling.geometry.sweep,geometry.revolve,geometry.loft,geometry.ribbon: surfaces from outlines and paths.geometry.voxelize,geometry.to_sdf: a mesh as cells and as a distance field.geometry.boolean: union, subtract or intersect of two closed meshes, over theintersectkernels.geometry.delete,geometry.separate: the triangles a mask field or primitive attribute selects, taken away or split into two geometries (elements.keepon the primitives);geometry.recalculate_normals:geometry.smooth_normalsat 180 degrees, area-weighted.geometry.selected,geometry.flip,geometry.profile,geometry.tangents,geometry.sides,geometry.shared,geometry.bvh,geometry.rings,geometry.first: the parts the nodes above are built from, each usable on its own.geometry.unit,geometry.perpendicular,geometry.rotate,geometry.transport,geometry.split: vector arithmetic over sockets that the nodes which orient points and normals share.geometry.offsets,geometry.kept,geometry.following,geometry.trim,geometry.blank: column arithmetic the nodes above share (a prefix sum of counts, the places a mask keeps, a ring read one place on, the primitives of no area dropped, a one-word column to bind).
Conventions
- Each node's folder name is its call name inside the box:
geometry.<folder>. - Inputs and outputs carry the names of the op each node replaces.
- A node that answers a Data table from numbers read back off the device holds the Luau for it in a
readings.moduleinside its own folder. - A node with one output answers that output's value; a node with several answers a record by output name.
- A fold's index runs from 1: the first pass is 1, so a pass that works on level, chunk or step
nreadsindex - 1when it counts from 0 (geometry.bvh,geometry.to_sdf,geometry.sweep,geometry.loft). - A field bound to a kernel takes the length of that dispatch, so a node writes a value out as a column (a gather with an explicit
count) before it binds one whose length differs from the dispatch's.