The Geometry Script Library contains a very broad range of functionality, from lowlevel mesh construction and queries, such as building a mesh trianglebytriangle or counting its vertices, to highlevel operations like mesh booleans and intersection tests.
For more information on using the Geometry Script Library, see Geometry Script Users Guide.
Most functions are available while working in the editor and at runtime. However, some are only available while working in the editor and have been noted in the tables below.
Asset and Component Read/Write
You can use these functions to read and write Dynamic Mesh instances, such as reading and writing to or from an existing or new Asset or Component.
Node Name 
Description 

Copy Mesh From Static Mesh 
Extracts a Dynamic Mesh from a Static Mesh Asset. 
Copy Mesh To Static Mesh 
Updates a Static Mesh Asset with new geometry converted from a Dynamic Mesh. 
Copy Mesh From Component 
Extracts a Dynamic Mesh Actor from any supported Component type, in World or Local space. 
Create New Volume From Mesh 
Creates a new Volume Actor, such as a Blocking Volume, from a Dynamic Mesh Actor. This node only works in the Editor. 
Create New Static Mesh Asset From Mesh 
Creates a new Static Mesh Asset from a Dynamic Mesh Actor. This node only works in the Editor. 
Set Static Mesh Collision From Mesh 
Generates Simple Collision shapes for a Static Mesh Asset based on the input Mesh. 
Set Dynamic Mesh Collision From Mesh 
Generate Simple Collision shapes for a Dynamic Mesh Component based on the input Mesh. 
Copy Collision Meshes From Object 
Extracts the Collision Geometry from From Object and copies it with meshes stored in To Dynamic Mesh.

Reset Dynamic Mesh Collision 
Clears Simple Collisions from the Dynamic Mesh Component. 
Copy Mesh From Skeletal Mesh 
Copies the Skeletal Mesh into the target Dynamic Mesh. 
Copy Mesh To Skeletal Mesh 
Copies the given Dynamic Mesh to the Skeletal Mesh. 
Primitive Generation
You can use these functions to generate and append a primitive mesh to the input Dynamic Mesh.
Node Name 
Description 

Append Box 
Appends a 3D box to a specified Dynamic Mesh. 
Append Sphere Lat Long 
Appends a 3D Sphere triangulated using latitude/longitude topology to a Dynamic Mesh. 
Append Sphere Box 
Appends a 3D sphere triangulated using box topology to a Dynamic Mesh. 
Append Capsule 
Appends a 3D Capsule to a Dynamic Mesh. 
Append Cylinder 
Appends a 3D Cylinder (with optional end caps) to a Dynamic Mesh. 
Append Cone 
Appends a 3D cone to a Dynamic Mesh. 
Append Torus 
Appends a 3D torus (donut) or partial torus to a Dynamic Mesh. 
Append Rectangle 
Appends a planar Rectangle to a Dynamic Mesh. 
Append Round Rectangle 
Appends a planar Rectangle with Rounded Corners (RoundRect) to a Dynamic Mesh. 
Append Disc 
Appends a planar disc to a Dynamic Mesh. 
Append Triangulated Polygon 
Appends a Delaunay triangulation of a planar 2D polygon to a Dynamic Mesh. 
Append Revolve Polygon 
Appends the surfaceofrevolution of a 2D polygon, full or optionallycapped partial revolution to a Dynamic Mesh. 
Append Spiral Revolve Polygon 
Revolves a 2D polygon on a helical path, like one used to create a vertical spiral. 
Append Revolve Path 
Revolves an open 2D path, with optional top and bottom end caps. 
Append Simple Extrude Polygon 
Extrudes a 2D polygon along a vertical path using a selected Dynamic Mesh. 
Append Simple Swept Polygon 
Sweeps a 2D polygon along an arbitrary 3D path using a selected Dynamic Mesh. 
Append Linear Stairs 
Appends a linear staircase using a selected Dynamic Mesh. 
Append Curved Stairs 
Appends a rising circular staircase using a selected Dynamic Mesh. 
Append Mesh Transformed 
Applies each transform to Append Mesh and then adds its geometry to the Target Mesh. 
Append Sweep Polygon 
Sweeps and rotates a 2D polygon along the Sweep Path to create a 3D mesh that appends to the provided mesh. 
Append Voronoi Diagram 2D 
Generates triangulated Voronoi Cells from the provided Voronoi Sites, identifying each with PolyGroups, and appends to the provided mesh. 
Transform and Deformation
You can use these functions to manipulate the vertex positions of a Dynamic Mesh. These manipulations do not change the mesh topology or connectivity.
Node Name 
Description 

Translate Mesh 
Applies a translation to the vertices of a Mesh. 
Scale Mesh 
Applies a scale transformation to the vertices of a Mesh. 
Transform Mesh 
Applies an arbitrary FTransform to the vertices of a Mesh. 
Apply Bend Warp To Mesh 
Applies a bend warp around an axis defined by a Transform. 
Apply Twist Warp To Mesh 
Applies a twist warp around an axis defined by a Transform. 
Apply Flare Warp To Mesh 
Applies a Flare/Bulge warp. 
Apply Math Warp To Mesh 
Applies various simple mathfunctionbased warps, currently a 1D or 2D sinewave with arbitrary orientation. 
Apply Perlin Noise To Mesh 
Applies a 3D Perlin noise displacement to the entire mesh or regions of the mesh defined by optional Selection. 
Apply Iterative Smoothing To Mesh 
Applies several mesh smoothing iterations to the entire mesh or a subset defined by the optional Selection 
Apply Displace From Texture Map 
Applies a displacement to a Dynamic Mesh based on a Texture2D and a UV channel. 
Rotate Mesh 
Rotates the mesh relative to the specified origin. 
Composition and Decomposition
You can use these functions to combine meshes together, or split them apart.
Node Name 
Description 

Copy Mesh To Mesh 
Copies the mesh from one Dynamic Mesh into another. 
Get Sub Mesh From Mesh 
Copies a list of triangles from one Dynamic Mesh to another. 
Split Mesh By Components 
Separates a mesh into parts, one for each connected component, drawn from a Dynamic MeshPool. 
Split Mesh By Material IDs 
Separates a mesh into parts, one for each Material ID, drawn from a Dynamic MeshPool. 
Append Mesh 
Appends the geometry from one mesh to another, with optional Transform. 
Append Mesh Repeated 
Appends the geometry from one mesh to another based on the number of times it should repeat, accumulating a transform each time. This operation is useful for making patterns. 
Mesh Modeling
These functions provide standard highlevel modeling operations, but are generally calling the lowlevel mesh processing code that the similarlynamed Tool in Modeling Mode would call.
Node Name 
Description 

Apply Mesh Boolean 
Applies a Boolean operation (such as, Union, Intersect, and Subtract) to a Dynamic Mesh based on a second mesh. 
Apply Mesh Plane Cut 
Applies a plane cut to a mesh, optionally filling any holes created. 
Apply Mesh Plane Slice 
Slices a mesh into two halves, with optional hole filling. 
Apply Mesh Mirror 
Mirrors a mesh across a plane, with optional cutting and welding of triangles. 
Apply Mesh Offset 
Moves the vertices of a mesh to an offset surface. 
Apply Mesh Shell 
Moves a copy of the mesh's triangles to an offset surface, and stitches them to the original triangles. For example, to create a thickened shell. 
Apply Mesh Extrude 
Extrudes the triangles of a mesh along a constant direction. For example, it creates a solid from an open triangulated polygon. 
Apply Mesh Solidify 
Replaces the mesh with a voxelizedandmeshed approximation (VoxWrap operation). 
Apply Mesh Morphology 
Replaces the mesh with an SDFbased offset mesh approximation. 
Apply Mesh Self Union 
An object performs a Boolean Union operation with itself, computing actions such as repairing selfintersections and removing floating geometry. 
Apply Mesh Polygroup Bevel 
Applies Mesh Bevel operation to all Polygroup Edges. 
Mesh Selections
These functions identify regions of a mesh to different tools so they can operate locally. Several functions can work on the entire mesh or a subset defined by a Selection. Selection Types include: Triangle, Vertices, and PolyGroups.
Node Name 
Description 

Invert Mesh Selection 
Invert the Selection on the Target Mesh. 
Create Select All Mesh Selection 
Creates a Selection of the given Selection Type containing all the elements of the Target Mesh 
Convert Mesh Selection 
Converts a Mesh Selection to a different Type. By default, Vertices map to Triangles within a onering neighborhood and Triangles to all contained vertices. 
Combine Mesh Selections 
Combines two Mesh Selections into a new Mesh Selection. The two inputs, Selection A and Selection B must have the same Type. 
Convert Index Array To Mesh Selection 
Creates a Mesh Selection from the Index Array. 
Convert Index Set To Mesh Selection 
Creates a Mesh Selection from the Index Set. 
Convert Mesh Selection To Index Array 
Converts a Mesh Selection to an Index Array. 
Convert Index List To Mesh Selection 
Creates a Mesh Selection from the Index List. For cases where the Index List Type does not match the Selection Type, Convert Mesh Selection with 
Convert Mesh Selection To Index List 
Converts a Mesh Selection to an Index List. 
Select Mesh Elements In Box 
Creates a new Mesh Selection of the Selection Type for the Target Mesh by finding all elements contained in the Box. 
Select Mesh Elements In Sphere 
Creates a new Mesh Selection of the Selection Type for the Target Mesh by finding all elements contained in the Sphere. 
Select Mesh Elements With Plane 
Creates a new Mesh Selection of the Selection Type for the Target Mesh by finding all elements on one side of the plane, particularly the side that the surface normal of a Plane points towards. 
Select Mesh Elements By Normal Angle 
Creates a new Mesh Selection of the Selection Type for the Target Mesh by finding all elements that have a normal vector that is within an angular deviation threshold from the given Normal. For Triangle and Polygroup selections the triangle facet normal is used, for Vertex selections the pervertex averaged normal is used. 
Select Mesh Elements Inside Mesh 
Creates a new Mesh Selection of the Selection Type for the Target Mesh by finding all elements inside a second Selection Mesh. 
Expand Mesh Selection To Connected 
Expands the Selection on the Target Mesh to connected regions and returns the New Selection. 
Get Mesh Selection Bounding Box 
Gets the 3D Bounding Box of a Mesh Selection. 
Get Mesh Selection Boundary Loops 
Computes the set of Vertex Loops bordering a Mesh Selection. Both the 3D polylines and lists of vertex indices are returned for each Loop. For a Vertex selection, this function returns the border loops around the onering neighborhood of the vertex selection. 
Get Mesh Selection Info 
Queries information about a Mesh Selection. 
Debug Print Mesh Selection 
Prints information about the Mesh Selection to the Output Log. 
Modify Mesh by Selection
Functions for editing geometry from a given selection.
Transform Mesh
Node Name 
Description 

Transform Mesh Selection 
Applies the given transform to the selected part of the mesh. 
Translate Mesh Selection 
Applies the given translation to the selected part of the mesh. 
Rotate Mesh Selection 
Rotates the selected part of the mesh relative to the specified origin. 
Scale Mesh Selection 
Applies the given scale to the selection part of the mesh. 
Materials and PolyGroups
Node Name 
Description 

Set Material ID For Mesh Selection 
Sets a new Material ID on all the triangles of the given Selection. 
Set Polygroup For Mesh Selection 
Set a new Polygroup on all the triangles of the given Selection, for the given Group Layer. 
Mesh Modeling
Node Name 
Description 

Apply Mesh Disconnect Faces 
Disconnects the triangles of the Target Mesh identified by the Selection. 
Apply Mesh Duplicate Faces 
Duplicates the triangles of Target Mesh identified by the Selection input. 
Apply Mesh Linear Extrude Faces 
Applies Linear Extrusion to the triangles of Target Mesh identified by the Selection. 
Apply Mesh Offset Faces 
Applies an Offset to the faces of Target Mesh identified by the Selection, or all faces if the Selection is empty. 
Apply Mesh Inset Outset Faces 
Applies an Inset or Outset to the faces of Target Mesh identified by the Selection, or all faces if the Selection is empty. 
Apply Mesh Bevel Selection 
Applies a Mesh Bevel operation to parts of Target Mesh using the Bevel Options settings. 
Subdivision Functions
These functions apply various mesh subdivision strategies to a Dynamic Mesh.
Node Name 
Description 

Apply Recursive PNTessellation 
Apply PN (PointNormal) Tessellation to the input mesh using a recursive strategy, that is, 1to4 triangle splits. 
Apply Polygroup Catmull Clark SubD 
Apply Catmull Clark Subdivision to the Polygroup Topology of the Mesh (discards input triangulation). This node only works in the Editor. 
Apply Triangle Loop SubD 
Apply Loop Subdivision to the input mesh. This node only works in the Editor. 
Apply Selective Tessellation 
Tessellate the specified mesh Selection using the indicated Pattern Type. 
Apply PNTesselation 
Applies PN Tessellation to the input mesh. 
Apply Uniform Tessellation 
Applies uniform tessellation to the input mesh. 
Simplification Functions
These functions simplify a mesh using various strategies.
Node Name 
Description 

Apply Simplify To Triangle Count 
Simplifies the mesh until a target triangle count is reached. 
Apply Simplify To Vertex Count 
Simplifies the mesh until a target vertex count is reached. 
Apply Simplify To Tolerance 
Simplifies the mesh to a target geometric tolerance. For example, any further simplification would result in a deviation from the input mesh larger than the tolerance. 
Apply Simplify To Planar 
Simplifies planar areas of the mesh that have more triangles than necessary. This does not change the 3D shape of the mesh. 
Apply Simplify To Polygroup Topology 
Simplifies the mesh down to the Polygroup Topology. For example, the highlevel faces of the mesh polygroups. Another example would be on a default BoxSphere where simplifying to polygroup topology produces a box. 
Normals Functions
These functions recompute the Normals of a mesh.
Node Name 
Description 

Flip Normals 
Flips the mesh normals by reversing the orientation of each face. 
Set Per Vertex Normals 
Sets the mesh normals to pervertex normals. For example, no split normals at any vertex. 
Set Per Face Normals 
Sets the mesh normals to perface/triangle normals. For example, split normals along every edge of the mesh. 
Compute Split Normals 
Computes splitnormals for the mesh based on an angle tolerance and/or other factors such as polygroup topology. 
Recompute Normals 
Recomputes the existing mesh normals. Preserves existing split normals. For use after mesh deformations, for example. 
Compute Tangents 
Recomputes tangents for the mesh (various methods). 
Cleanup/Repair Functions
You can use these functions to fix issues in a mesh, or to apply other standard repairs.
Node Name 
Description 

Compact Mesh 
Compacts the mesh's vertices and triangles to remove any "holes" in the Vertex ID or Triangle ID lists (see discussion in LowLevel Mesh Queries section). 
Discard Mesh Attributes 
Removes the Attribute Set from a Dynamic Mesh, such as all UVs, Normals, Material IDs, Vertex Colors, and extended Polygroup Layers. Note that this may prevent many functions from working. 
Auto Repair Normals 
This function tries to automatically reorient the Normals of a mesh so that they are consistent, such as fixing flipped normals. 
Weld Mesh Edges 
Welds any open boundary edges of the mesh together if possible in order to remove "cracks." 
Fill All Mesh Holes 
Tries to fill all open boundary loops (such as holes in the geometry surface) of a mesh. 
Remove Small Components 
Removes connected components of the mesh that have a volume, area, or triangle count below a threshold. 
Remove Hidden Triangles 
Removes any triangles in the mesh that are not visible from the exterior view, under various definitions of "visible" and "outside." 
Resolve Mesh TJunctions 
Attempts to resolve tjunction in the Target Mesh. 
Split Mesh Bowties 
Splits vertices in the Target Mesh that otherwise produce a bowtie where only a single vertex connects regions of the mesh. 
Repair Mesh Degenerate Geometry 
Modifies the Target Mesh by deleting small triangles or merging triangles until all edges are greater than a specified minimum length. 
LowLevel Mesh Queries
These functions provide lowlevel information about the elements of a mesh. In this context, VertexID and TriangleID are integers.
In a Dynamic Mesh, there may be gaps in VertexID or TriangleID range — after vertices/triangles are deleted — and some operations (like Simplification) may return a mesh with gaps present. Gaps in the ID ranges are cleaned up using the Compact Mesh function.
Node Name 
Description 

Get Vertex Count 
Gets the number of vertices in the mesh. 
Get Num Vertex IDs 
Gets the number of Vertex IDs in the mesh, which may be larger than the Vertex Count, if the mesh is not dense. For example, after deleting vertices. 
Is Valid Vertex ID 
Returns true if a Vertex ID refers to a valid vertex. 
Get All Vertex IDs 
Returns an IndexList of all Vertex IDs in mesh. 
Get Vertex Position 
Gets the 3D position of a mesh vertex, by Vertex ID. 
Get All Vertex Positions 
Returns a Vector List of all the mesh vertex positions. This list may be extensive. 
Get Triangle Count 
Returns the number of triangles in the mesh. Note that this is a function on the Dynamic Mesh directly. 
Get Num Triangle IDs 
Gets the number of Triangle IDs in the mesh. The number may be larger than the Triangle Count if the mesh is not dense, even after deleting triangles. 
Is Valid Triangle ID 
Returns true if a TriangleID refers to a valid Triangle. 
Get All Triangle IDs 
Returns an Index List of all Triangle IDs in a mesh. 
Get Triangle Indices 
Returns the vertex indices triplet for a Triangle. 
Get All Triangle Indices 
Returns a TriangleList of all Triangle indices triplets in a mesh. 
Get TrianglePositions 
Returns the three corner positions for a Triangle. 
Get TriangleFace Normal 
Returns the face/facet normal of a Triangle. 
Get TriangleUVs 
Returns the three corner UVs for a Triangle. 
Get Triangle Material ID 
Returns the current Material ID for a Triangle. 
Get All Triangle Material IDs 
Returns an Index List of all triangle Material IDs. 
Get Triangle Polygroup ID 
Returns the current Polygroup ID for a Triangle, in a given Polygroup layer. 
Get Has Vertex ID Gaps 
Returns true if there are gaps in the Vertex ID list. For example, Get Number of Vertex IDs is greater than Get Vertex Count. 
Get Has Triangle ID Gaps 
Returns true if there are gaps in the Triangle ID list, such that Get Num Triangle IDs is greater than Get Triangle Count. 
Get Is Dense Mesh 
Returns true if the mesh is dense. For example, no gaps in Vertex IDs or Triangle IDs. 
Get Mesh Has Attribute Set 
Returns true if the mesh has an Attribute Set enabled to store UVs, Normals, Material IDs, and Vertex Colors. This is generally enabled by default.. 
LowLevel Mesh Building
These functions construct a mesh trianglebytriangle and perform other lowlevel mesh editing operations.
Using these functions in situations that involve looping over the elements of meshes with many thousands of triangles can be quite slow in Blueprint or Python scripting.
Node Name 
Description 

Set Vertex Position 
Sets the 3D position of a mesh vertex. 
Add Vertex To Mesh 
Adds a new vertex to the mesh and returns a new Vertex ID. 
Add Vertices To Mesh 
Adds a list of vertices to the mesh. 
Delete Vertex From Mesh 
Removes a vertex from the mesh. 
Delete Vertices From Mesh 
Removes a list of vertices from the mesh. 
Add Triangle To Mesh 
Adds a triangle (3element Vertex ID tuple) to the mesh. 
Add Triangles To Mesh 
Adds a list of triangles to the mesh. 
Delete Triangle From Mesh 
Removes a triangle from the mesh. 
Delete Triangles From Mesh 
Removes a list of triangles from the mesh. 
Delete Triangles In Polygroup 
Deletes all triangles from the mesh that have a particular polygroup, in a specific Polygroup layer. 
Append Buffers To Mesh 
Adds a set of vertices/triangles to the mesh, with attributes such as Normals and UVs. Similar to Create Mesh Section in Proc Mesh Component. 
Set Mesh Triangle Normals 
Sets the Normals of a mesh triangle. 
Set Mesh Triangle UVs 
Sets the UVs of a mesh triangle. 
Set Triangle Material ID 
Sets the Material ID of a mesh triangle. 
LowLevel List Management
These functions cover list management for: Index List, Scalar List, Vector List, UV List, and Color List.
Node Name 
Description 

Get Index List Length 
Returns the number of items in the Index List. 
Get Index List Last Index 
Returns the index of the last item in the Index List. 
Get Index List Item 
Returns the item stored in the Index List at the specified location. 
Set Index List Item 
Updates the value of the item stored in the Index List at the specified location. 
Convert Index List To Array 
Converts an Index List to an array of integers. 
Convert Array To Index List 
Converts an array of integers to an Index List. 
Duplicate Index List 
Duplicates the contents Index List into Duplicate List. 
Clear Index List 
Resets all the items in the Index List to the Clear Value. 
Get Scalar List Length 
Returns the number of items in the Scalar List. 
Get Scalar List Last Index 
Returns the index of the last item in the Scalar List. 
Get Scalar List Item 
Returns the Scalar (double) stored in the Scalar List at the specified location. 
Set Scalar List Item 
Updates the value of the Scalar stored in the Scalar List at the specified location. 
Convert Scalar List To Array 
Converts a Scalar List to an array of doubles. 
Convert Array To Scalar List 
Converts an array of doubles to a Scalar List. 
Duplicate Scalar List 
Copies the contents of Scalar List into Duplicate List. 
Clear Scalar List 
Reset all the items in the Scalar List to the Clear Value. 
Get Vector List Length 
Returns the number of items in the Vector List. 
Get Vector List Last Index 
Return the index of the last item in the Vector List. 
Get Vector List Item 
Return the FVector stored in the VectorList at the specified location. 
Set Vector List Item 
Updates the value of the FVector stored in the Vector List at the specified location. 
Convert Vector List To Array 
Converts a Vector List to an array of FVectors. 
Convert Array To Vector List 
Converts an Array of FVectors to a Vector List. 
Duplicate Vector List 
Copies the contents of Vector List into Duplicate Vector List. 
Clear Vector List 
Resets all the items in the Vector List to the Clear Value. 
Get UV List Length 
Returns the number of items in the UV List. 
Get UV List Last Index 
Returns the index of the last item in the UV List. 
Get UV List Item 
Returns the FVector2D stored in the UV List at the specified location. 
Set UV List Item 
Updates the value of the FVector2D stored in the UV List at the specified location. 
Convert UV List To Array 
Converts a UV List to an array of FVector2Ds. 
Convert Array To UV List 
Converts an array of FVector2D to UVList. 
Duplicate UV List 
Duplicates the contents of UV List into Duplicate List. 
Get Color List Length 
Returns the number of items in the Color List. 
Get Color List Last Index 
Returns the index of the last item in the Color List. 
Get Color List Item 
Returns the FLinearColor stored in the Color List at the specified location. 
Set Color List Item 
Updates the value of the FLinearColor stored in the Color List at the specified location. 
Convert Color List To Array 
Converts the Color List to an array of FLinearColor. 
Convert Array To Color List 
Converts an array of FLinearColor to a Color List. 
Extract Color List Channel 
Creates a Scalar List that corresponds to the 0,1, or 2 channel of a Color List. 
Extract Color List Channels 
Creates a Vector List from a Color List. The channels in the Color List are mapped to vector components by means of X Channel Index, Y Channel Index, and Z Channel Index. 
LowLevel Math
Functions that operate on the Vector Lists and Scalar Lists in a component wise fashion. The functions that take multiple lists, such as Vector Dot, require the lists to have the same number of elements.
Node Name 
Description 

Vector Length 
Computes the length of each vector in Vector List A and returns the value in the Scalar List. 
Vector Dot 
Computes the dotproduct between each pair of vectors in Vector List A and Vector List B, and returns the value in the new Scalar List. 
Vector Cross 
Computes the crossproduct between each pair of vectors in Vector List A and Vector List B and returns the value in the new Vector List. 
Vector Normalize In Place 
Normalizes each vector in Vector List, and stores the value in a Vector List. If a vector is degenerate, set the normal to the Set On Failure vector. 
Vector Blend 
Computes By default this (constants = 1) adds the two vectors. Set You can also use the function to Linear Interpolate, by setting 
Vector Blend In Place 
Computes By default this (constants = 1) adds the two vectors. Set You can also use the function to Linear Interpolate, by setting 
Scalar Vector Multiply 
Computes 
Scalar Vector Multiply In Place 
Computes 
Constant Vector Multiply 
Computes 
Constant Vector Multiply In Place 
Computes 
Vector To Scalar 
Converts each Vector in Vector List to a Scalar by computing You can use it to extract the X, Y, and Z values from a Vector, or other componentwise math. 
Scalar Invert 
Computes If Abs(Scalar) < Epsilon, set to Set On Failure value. 
Scalar Invert In Place 
Computes If Abs(Scalar) < Epsilon, set to Set On Failure value. 
Scalar Blend 
Computes By default this (constants = 1) just adds the two values. Set The function can also be used to Linear Interpolate, by setting 
Scalar Blend In Place 
Computes By default this (constants = 1) just adds the two values. Set Can also be used to Linear Interpolate, by setting 
Scalar Multiply 
Computes 
Scalar Multiply In Place 
Computes 
Constant Scalar Multiply 
Computes 
Constant Scalar Multiply In Place 
Computes 
MaterialID Functions
Functions for manipulating Material IDs of a mesh. A Material ID is a pertriangle integer and is not directly connected to any specific Material. Each Material ID is associated with a Mesh Section when converting to or from a Static Mesh.
Node Name 
Description 

Get Has Material IDs 
Returns true if the mesh has Material IDs available/enabled. 
Enable Material IDs 
Enables Material IDs on a mesh, initialize to 0. 
Clear Material IDs 
Resets all Material IDs on a mesh to 0. 
Get Max Material ID 
Returns the maximum Material ID currently set on a mesh. 
Remap Material IDs 
For all triangles with a Material ID matching a given value, and sets the Material ID to a new value. 
Set All Triangle Material IDs 
Sets the Material ID of all triangles in a mesh to the values in an input Index List. 
Set Polygroup Material ID 
Sets the Material ID of all triangles in a mesh that have a specified Polygroup ID (in a given Polygroup layer) to the specified Material ID. 
Vertex Values
You use these values to get and manipulate mesh values stored at vertices, including Vertex Colors
Multiple values, such as Normals, can be stored at a given vertex but these methods will only return one.
Node Name 
Description 

Set Mesh Constant Vertex Color 
Sets all vertex colors to a specific color. 
Set Mesh Per Vertex Colors 
Sets the color for every vertex using a Color List. 
Get Mesh Per Vertex Colors 
Gets a list of single vertex colors for each mesh vertex in the Target Mesh, derived from the Vertex Color Overlay. 
Set Mesh Selection Vertex Color 
Sets the colors in the Target Mesh's Vertex Color Overlay, identified by the Selection, to a constant value.

Convert Mesh Vertex Colors SRGB To Linear 
Apply an SRGB to Linear color transformation on all vertex colors. 
Convert Mesh Vertex Colors Linear To SRGB 
Apply a Linear to SRGB color transformation on all vertex colors. 
Get Mesh Per Vertex Normals 
Get a list of single normal vectors for each mesh vertex in the Target Mesh, derived from the Normals Overlay. 
Get Mesh Per Vertex UVs 
Get a list of single vertex UVs for each mesh vertex in the Target Mesh, derived from the specified UV Overlay. 
Texture Sampling and Creation
Functions for reading and creating texture data.
Node Name 
Description 

Sample Texture 2D At UV Positions 
Sample the given Texture Map at the list of UV positions and return the color at each position in the Color List output. 
Create New Texture 2D Asset 
Create a serialized Texture 2D Asset from a temporary UTexture2D. 
Baking
These functions bake data between a source and target mesh into texture or vertex color data. You can bake various mesh data such as normals, curvature, and ambient occlusion.
Node Name 
Description 

Bake Texture 
Creates Textures for the Target Mesh from data sampled in the Source Mesh. 
Bake Vertex 
Populates the vertex colors in the Target Mesh with the results of the Baking properties of the given Source Mesh. 
UV Functions
You use these functions to manipulate the UVs of a mesh.
Node Name 
Description 

Get Num UV Sets 
Gets the number of UV Layers on a Mesh. 
Set Num UV Sets 
Sets the number of UV Layers on a Mesh. 
Get UV Set Bounding Box 
Gets the 2D bounding box of all UVs in a UV Set. 
CopyUVSet 
Replaces target UV set with values from source UV set. 
Translate Mesh UVs 
Applies 2D Translation to all UVs, or a subset of UVs if you provide a Selection, in the UVSet Index. 
Scale Mesh UVs 
Applies 2D Scale to all UVs, or a subset of UVs if you provide a Selection, in the UVSet Index. 
Rotate Mesh UVs 
Apples 2D Rotation to all UVs, or a subset of UVs if you provide a Selection, in the UVSet Index. 
Recompute Mesh UVs 
Recomputes UVs for a Mesh based on different types of welldefined UV islands, such as existing UV islands, PolyGroups, or the Selection input. 
Repack Mesh UVs 
Packs the existing UV islands into standard UV space. 
Set Mesh UVs From Planar Projection 
Using Planar projection, set UVs for an entire mesh or a subset you define by the Selection input. 
Set Mesh UVs From Box Projection 
Using Box Projection, set UVs for an entire mesh or a subset you define by the Selection input. 
Set Mesh UVs From Cylinder Projection 
Using Cylinder Projection, set UVs for an entire mesh or a subset you define by the Selection input. 
Auto Generate Patch Builder Mesh UVs 
Computes new UVs using PatchBuilder method, and optionally pack. 
Auto Generate X Atlas Mesh UVs 
Computes new UVs using XAtlas, and optionally packs. 
Get Mesh UVSize Info 
Computes information about dimensions and areas for a UVSet of a Mesh, with an optional Mesh Selection. 
Get Mesh Per Vertex UVs 
Gets a list of single vertex UVs for each mesh vertex in the TargetMesh, derived from the specified UV Overlay. 
Copy Mesh UV Layer To Mesh 
Copies the 2D UVs from the given UVSet Index in Copy From Mesh to the 3D vertex positions in Copy To UV Mesh. Polygroup IDs and Material IDs are preserved in the UV Mesh. 
Copy Mesh To Mesh UV Layer 
Transfers the 3D vertex positions and triangles of Copy From UVMesh to the given UV Layer identified by To UV Set Index of Copy To Mesh. The 3D positions (X,Y,Z) will be copied as UV positions (X,Y). 
PolyGroup Functions
Functions for manipulating PolyGroups of a mesh. PolyGroups are pertriangle integers that implicitly define regions and patches of triangles in Modeling Tools and some Geometry Script operations. However, a PolyGroup layer is ultimately a pertriangle number, and you can use it for any other purpose.
Node Name 
Description 

Get Has Polygroups 
Returns true if the mesh has a standard Polygroup Layer. 
Enable Polygroups 
Enables standard Polygroup Layer on a Mesh. 
GetNum Extended Polygroup Layers 
Returns the count of extended Polygroup Layers. Note that extended Polygroup Layers are not yet fully supported by all operations or modeling tools. 
Set Num Extended Polygroup Layers 
Sets the number of extended Polygroup Layers on a Mesh. 
Clear Polygroups 
Resets the triangle Polygroup assignments to a constant value for a given Polygroup Layer. 
Copy Polygroups Layer 
Copies Polygroups from one layer to another. 
Convert UV Islands To Polygroups 
Creates and assigns a new Polygroup for each disconnected UV island of a Mesh. 
Convert Components To Polygroups 
Creates and assigns a new Polygroup for each disconnected component of a Mesh. 
Compute Polygroups From Angle Threshold 
Sets Polygroups by partitioning the mesh based on an edge crease/openingangle. 
Compute Polygroups From Polygon Detection 
Identifies polygons and assigns Polygroup IDs. 
Mesh Geometric Queries
These functions allow for highlevel geometric queries of a mesh.
Node Name 
Description 

Get Mesh Bounding Box 
Computes the bounding box of the mesh vertices. 
Get Mesh Volume Area 
Computes the volume and area of the mesh. 
Get Is Closed Mesh 
Returns true if the mesh is closed, such as no topological boundary edges. 
Get Num Open Border Loops 
Returns the number of open border loops, such as "holes" in the mesh. 
Get Num Open Border Edges 
Returns the number of topological boundary edges in the mesh. 
Get Num Connected Components 
Returns the number of separate connectedcomponents in the mesh, such as "triangle patches" connected by shared edges. 
Compute Mesh Convex Hull 
Computes the Convex Hull of a given Mesh, or part of the mesh you define by the Selection input, and returns in a separate mesh. 
Compute Mesh Swept Hull 
Computes a 2D swepthull of the input mesh and returns in a separate mesh. 
Compute Mesh Convex Decomposition 
Computes a Convex Hull Decomposition of the given Target Mesh. Assuming more than one hull is requested, multiple hulls will be returned that attempt to approximate the mesh. There is no guarantee that the entire mesh is contained in the hulls. 
PolyPath
These functions perform PolyPath manipulations. A PolyPath is a path defined by an ordering of vertices.
Node Name 
Description 

Get Poly Path Num Vertices 
Returns the number of vertices in the PolyPath 
Get Poly Path Last Index 
Returns the index of the last vertex in the PolyPath. 
Get Poly Path Vertex 
Returns the 3D location of the specified vertex. 
Get Poly Path Tangent 
Returns the local tangent vector of the PolyPath at the specified vertex index. 
Get PolyPath Arc Length 
Returns the length of the PolyPath. 
Get NearestVertexIndex 
Returns the index of the nearest PolyPath vertex to the specified point in 3D. 
Flatten To 2D On Axis 
Creates a 2D flatten copy of the path, by dropping the given axis and using the other two coordinates as the new X, Y coordinates. 
Convert Spline To PolyPath 
Samples the positions from a USplineComponent into a PolyPath, based on the given Sampling Options. 
Convert PolyPath To Array 
Populates an array of 3D vectors with the PolyPath vertex locations. 
Convert Array To PolyPath 
Creates a PolyPath from an array of 3D position vectors. 
Convert PolyPath To Array Of Vector 2D 
Creates an array of 2D Vectors with the PolyPath vertex locations projected onto the XY plane. 
Convert Array Of Vector 2D To PolyPath 
Creates a PolyPath from an array of 2D position vectors. The Zcoordinate of the corresponding PolyPath vertices will be zero. 
Create Circle Path 3D 
Creates a closed circle around the origin on the XY plane, then is repositioned by the Transform input. 
Create Circle Path 2D 
Creates a closed circle on the XY plane around the given Center. For closed paths, the end vertex is not a duplicate of the start vertex. 
Create Arc Path 3D 
Creates an open arc around the origin on the XY plane, then is repositioned by the Transform input. 
Create Arc Path 2D 
Creates an open arc on the XY plane around the given Center. 
Mesh Comparisons
These functions enable comparisons between two meshes. These nodes do not modify either mesh through their usage.
Node Name 
Description 

Is Same Mesh As 
Returns true if the two input meshes are equivalent under the comparisons defined by the input options. 
Measure Distances Between Meshes 
Measures the min/max and average closestpoint distances between two meshes. 
Is Intersecting Mesh 
Returns true if the two input meshes (with optional transforms) are geometrically intersecting. 
BVH & Spatial Queries
These functions create and query a Bounding Volume Hierarchy (BVH) object for a mesh.
Node Name 
Description 

Build BVH For Mesh 
Builds a BVH object for a mesh that can be used by Is BVH Valid For Mesh, Rebuild BVH for Mesh, Find Nearest Point On Mesh, Find Nearest Ray Intersection With Mesh, and Is Point Inside Mesh nodes. The function returns a Geometry Script Dynamic Mesh BVH struct. 
Is BVH Valid For Mesh 
Checks if the BVH object can still be used with the Mesh — it generally returns false if the mesh has been changed. 
Rebuild BVH For Mesh 
Rebuilds the BVH object for the mesh inplace, which can reduce memory allocations, compared to building a new BVH. 
Find Nearest Point On Mesh 
Finds the nearest point on the mesh/BVH to a given 3D point. 
Find Nearest Ray Intersection With Mesh 
Finds the nearest intersection of a 3D ray with the mesh/BVH. 
Is Point Inside Mesh 
Tests if a point is inside the mesh/BVH using the Fast Winding Number query. 
Utilities
These helper functions are useful in Geometry Script mesh processing and procedural generators.
Node Name 
Description 

Create Dynamic Mesh Pool 
Creates a new Dynamic Mesh Pool object. 
Create Unique New Asset Path Name 
Create a new unique asset name given a base path and base asset name, which is useful with functions like Create New Static Mesh Asset From Mesh. This node only works in the Editor. 
Get Mesh Info String 
Returns a debug string that contains mesh statistics and other information. 
Sample Spline To Transforms 
Sample a USplineComponent into a list of FTransforms, based on the given Sampling Options. 
Glossary
Term 
Definition 

Overlay 
A data structure representing a type of vertex data applied to a mesh.These types include: vertex color, normal, tangent, and UV. Multiple values of the specified type can be stored at a single vertex. In such cases, depending on the type, one of the following occurs: the last value is used, the values are averaged, or an arbitrary value is used. 
Onering 
The neighboring vertices of the selected vertex, connected by an edge.

UV Set/Layer 
Contains the UV coordinates of a mesh, also referred to as the UV Channel. You can use multiple UV Channels to represent different UV maps. 