pynodes.geosocks#

Important

Geometry nodes in blender

Geometry nodes can modify different types of geometry:

Module Contents#

Classes#

Geometry

Represents a green ouput socket of a node, the base class of all geometry data socket

Curve

A Curve data socket

Mesh

A mesh data socket

Points

A points cloud data socket

Instances

A instances data socket

Volume

A volume data socket

Functions#

CurveArc

The Arc node generates a poly spline arc. The node has two modes, Radius and Points.

CurveArcPoints

The Arc node generates a poly spline arc. The node has two modes, Radius and Points.

BezierSegment

The Bézier Segment node generates a 2D Bézier spline from the given control points and handles.

CurveCircle

The Curve Circle node generates a poly spline circle.

CurveCirclePoints

The Curve Circle node generates a poly spline circle.

CurveLine

The Curve Line node generates poly spline line.

CurveSpiral

The Curve Spiral node generates a poly spline in a spiral shape. It can be used to create springs or other similar objects. By default the spiral twists in a clockwise fashion.

CurveQuadraticBezier

The Quadratic Bézier node generates a poly spline curve from the given control points. The generated shape is a parabola.

Rectangle

The Quadrilateral node generates a polygon with four points, with different modes.

Parallelogram

The Quadrilateral node generates a polygon with four points, with different modes.

Trapezoid

The Quadrilateral node generates a polygon with four points, with different modes.

Kite

The Quadrilateral node generates a polygon with four points, with different modes.

Quadrangle

The Quadrilateral node generates a polygon with four points, with different modes.

CurveStar

The Star node generates a poly spline in a star pattern by connecting alternating points of two circles. The points on the inner circle are offset by a rotation so that they lie in between the points on the outer circle. This offset can be changed with the twist input.

MeshCone

The Cone node generates a cone mesh that is optionally truncated.

MeshCube

The Cube node generates a cuboid mesh with variable side lengths and subdivisions. The inside of the mesh is still hollow like a normal cube.

MeshCylinder

The Cylinder node generates a cylinder mesh. It is similar to the Cone node but always uses the same radius for the circles at the top and bottom.

MeshGrid

The Grid node generates a planar mesh on the XY plane.

MeshIcoSphere

The Icosphere node generates a spherical mesh that consists of equally sized triangles.

MeshCircle

The Mesh Circle node generates a circular ring of edges that is optionally filled with faces.

MeshCircleFilledNgon

The Mesh Circle node generates a circular ring of edges that is optionally filled with faces.

MeshCircleFilledTriangle

The Mesh Circle node generates a circular ring of edges that is optionally filled with faces.

MeshLine

The Mesh Line node generates vertices in a line and connects them with edges.

MeshLineEndPoints

The Mesh Line node generates vertices in a line and connects them with edges.

MeshUVSphere

The UV Sphere node generates a spherical mesh mostly out of quads except for triangles at the top and bottom.

InputPoints

The Points node generate a point cloud with positions and radii defined by fields.

VolumeCube

The Volume Cube generates a volume from scratch by evaluating an input field on every single voxel in a rectangular prism. The Density field defines the output volume grid’s value at every voxel. The field can only depend on the Position Node.

join

The Join Geometry node merges separately generated geometries into a single one. If the geometry inputs contain different types of data, the output will also contain different data types.

join_to_instances

The Geometry to Instance node turns every connected input geometry into an instance. Visually, the node has a similar result as the Join Geometry Node, but it outputs the result as separate instances instead. The geometry data itself isn’t actually joined.

SplineParameter

The Spline Parameter node outputs how far along each spline a control point is. The Factor output is different from dividing the index by the total number of control points, because the control points might not be equally spaced along the curve.

API#

class pynodes.geosocks.Geometry(bsocket: bpy.types.NodeSocket)#

Bases: pynodes.core.Socket

Represents a green ouput socket of a node, the base class of all geometry data socket

Initialization

bl_idname = 'NodeSocketGeometry'#
__getitem__(selection)#
__mul__(other)#
property selection#
float_statistic_on_points(attribute=0.0, selection=True)#

The Attribute Statistic node evaluates a field on a geometry and outputs a statistic about the entire data set.

Path#

  • Attribute > Attribute Statistic Node

Outputs:#

  • #0 mean: Float = 0.0

  • #1 median: Float = 0.0

  • #2 sum: Float = 0.0

  • #3 min: Float = 0.0

  • #4 max: Float = 0.0

  • #5 range: Float = 0.0

  • #6 standard_deviation: Float = 0.0

  • #7 variance: Float = 0.0

[Manual] [API]

float_statistic_on_edges(attribute=0.0, selection=True)#

The Attribute Statistic node evaluates a field on a geometry and outputs a statistic about the entire data set.

Path#

  • Attribute > Attribute Statistic Node

Outputs:#

  • #0 mean: Float = 0.0

  • #1 median: Float = 0.0

  • #2 sum: Float = 0.0

  • #3 min: Float = 0.0

  • #4 max: Float = 0.0

  • #5 range: Float = 0.0

  • #6 standard_deviation: Float = 0.0

  • #7 variance: Float = 0.0

[Manual] [API]

float_statistic_on_faces(attribute=0.0, selection=True)#

The Attribute Statistic node evaluates a field on a geometry and outputs a statistic about the entire data set.

Path#

  • Attribute > Attribute Statistic Node

Outputs:#

  • #0 mean: Float = 0.0

  • #1 median: Float = 0.0

  • #2 sum: Float = 0.0

  • #3 min: Float = 0.0

  • #4 max: Float = 0.0

  • #5 range: Float = 0.0

  • #6 standard_deviation: Float = 0.0

  • #7 variance: Float = 0.0

[Manual] [API]

float_statistic_on_corners(attribute=0.0, selection=True)#

The Attribute Statistic node evaluates a field on a geometry and outputs a statistic about the entire data set.

Path#

  • Attribute > Attribute Statistic Node

Outputs:#

  • #0 mean: Float = 0.0

  • #1 median: Float = 0.0

  • #2 sum: Float = 0.0

  • #3 min: Float = 0.0

  • #4 max: Float = 0.0

  • #5 range: Float = 0.0

  • #6 standard_deviation: Float = 0.0

  • #7 variance: Float = 0.0

[Manual] [API]

float_statistic_on_curves(attribute=0.0, selection=True)#

The Attribute Statistic node evaluates a field on a geometry and outputs a statistic about the entire data set.

Path#

  • Attribute > Attribute Statistic Node

Outputs:#

  • #0 mean: Float = 0.0

  • #1 median: Float = 0.0

  • #2 sum: Float = 0.0

  • #3 min: Float = 0.0

  • #4 max: Float = 0.0

  • #5 range: Float = 0.0

  • #6 standard_deviation: Float = 0.0

  • #7 variance: Float = 0.0

[Manual] [API]

float_statistic_on_instances(attribute=0.0, selection=True)#

The Attribute Statistic node evaluates a field on a geometry and outputs a statistic about the entire data set.

Path#

  • Attribute > Attribute Statistic Node

Outputs:#

  • #0 mean: Float = 0.0

  • #1 median: Float = 0.0

  • #2 sum: Float = 0.0

  • #3 min: Float = 0.0

  • #4 max: Float = 0.0

  • #5 range: Float = 0.0

  • #6 standard_deviation: Float = 0.0

  • #7 variance: Float = 0.0

[Manual] [API]

integer_statistic_on_points(attribute=0, selection=True)#

The Attribute Statistic node evaluates a field on a geometry and outputs a statistic about the entire data set.

Path#

  • Attribute > Attribute Statistic Node

Outputs:#

  • #0 mean: Float = 0.0

  • #1 median: Float = 0.0

  • #2 sum: Float = 0.0

  • #3 min: Float = 0.0

  • #4 max: Float = 0.0

  • #5 range: Float = 0.0

  • #6 standard_deviation: Float = 0.0

  • #7 variance: Float = 0.0

[Manual] [API]

integer_statistic_on_edges(attribute=0, selection=True)#

The Attribute Statistic node evaluates a field on a geometry and outputs a statistic about the entire data set.

Path#

  • Attribute > Attribute Statistic Node

Outputs:#

  • #0 mean: Float = 0.0

  • #1 median: Float = 0.0

  • #2 sum: Float = 0.0

  • #3 min: Float = 0.0

  • #4 max: Float = 0.0

  • #5 range: Float = 0.0

  • #6 standard_deviation: Float = 0.0

  • #7 variance: Float = 0.0

[Manual] [API]

integer_statistic_on_faces(attribute=0, selection=True)#

The Attribute Statistic node evaluates a field on a geometry and outputs a statistic about the entire data set.

Path#

  • Attribute > Attribute Statistic Node

Outputs:#

  • #0 mean: Float = 0.0

  • #1 median: Float = 0.0

  • #2 sum: Float = 0.0

  • #3 min: Float = 0.0

  • #4 max: Float = 0.0

  • #5 range: Float = 0.0

  • #6 standard_deviation: Float = 0.0

  • #7 variance: Float = 0.0

[Manual] [API]

integer_statistic_on_corners(attribute=0, selection=True)#

The Attribute Statistic node evaluates a field on a geometry and outputs a statistic about the entire data set.

Path#

  • Attribute > Attribute Statistic Node

Outputs:#

  • #0 mean: Float = 0.0

  • #1 median: Float = 0.0

  • #2 sum: Float = 0.0

  • #3 min: Float = 0.0

  • #4 max: Float = 0.0

  • #5 range: Float = 0.0

  • #6 standard_deviation: Float = 0.0

  • #7 variance: Float = 0.0

[Manual] [API]

integer_statistic_on_curves(attribute=0, selection=True)#

The Attribute Statistic node evaluates a field on a geometry and outputs a statistic about the entire data set.

Path#

  • Attribute > Attribute Statistic Node

Outputs:#

  • #0 mean: Float = 0.0

  • #1 median: Float = 0.0

  • #2 sum: Float = 0.0

  • #3 min: Float = 0.0

  • #4 max: Float = 0.0

  • #5 range: Float = 0.0

  • #6 standard_deviation: Float = 0.0

  • #7 variance: Float = 0.0

[Manual] [API]

integer_statistic_on_instances(attribute=0, selection=True)#

The Attribute Statistic node evaluates a field on a geometry and outputs a statistic about the entire data set.

Path#

  • Attribute > Attribute Statistic Node

Outputs:#

  • #0 mean: Float = 0.0

  • #1 median: Float = 0.0

  • #2 sum: Float = 0.0

  • #3 min: Float = 0.0

  • #4 max: Float = 0.0

  • #5 range: Float = 0.0

  • #6 standard_deviation: Float = 0.0

  • #7 variance: Float = 0.0

[Manual] [API]

vector_statistic_on_points(attribute=(0.0, 0.0, 0.0), selection=True)#

The Attribute Statistic node evaluates a field on a geometry and outputs a statistic about the entire data set.

Path#

  • Attribute > Attribute Statistic Node

Outputs:#

  • #8 mean: Vector = (0.0, 0.0, 0.0)

  • #9 median: Vector = (0.0, 0.0, 0.0)

  • #10 sum: Vector = (0.0, 0.0, 0.0)

  • #11 min: Vector = (0.0, 0.0, 0.0)

  • #12 max: Vector = (0.0, 0.0, 0.0)

  • #13 range: Vector = (0.0, 0.0, 0.0)

  • #14 standard_deviation: Vector = (0.0, 0.0, 0.0)

  • #15 variance: Vector = (0.0, 0.0, 0.0)

[Manual] [API]

vector_statistic_on_edges(attribute=(0.0, 0.0, 0.0), selection=True)#

The Attribute Statistic node evaluates a field on a geometry and outputs a statistic about the entire data set.

Path#

  • Attribute > Attribute Statistic Node

Outputs:#

  • #8 mean: Vector = (0.0, 0.0, 0.0)

  • #9 median: Vector = (0.0, 0.0, 0.0)

  • #10 sum: Vector = (0.0, 0.0, 0.0)

  • #11 min: Vector = (0.0, 0.0, 0.0)

  • #12 max: Vector = (0.0, 0.0, 0.0)

  • #13 range: Vector = (0.0, 0.0, 0.0)

  • #14 standard_deviation: Vector = (0.0, 0.0, 0.0)

  • #15 variance: Vector = (0.0, 0.0, 0.0)

[Manual] [API]

vector_statistic_on_faces(attribute=(0.0, 0.0, 0.0), selection=True)#

The Attribute Statistic node evaluates a field on a geometry and outputs a statistic about the entire data set.

Path#

  • Attribute > Attribute Statistic Node

Outputs:#

  • #8 mean: Vector = (0.0, 0.0, 0.0)

  • #9 median: Vector = (0.0, 0.0, 0.0)

  • #10 sum: Vector = (0.0, 0.0, 0.0)

  • #11 min: Vector = (0.0, 0.0, 0.0)

  • #12 max: Vector = (0.0, 0.0, 0.0)

  • #13 range: Vector = (0.0, 0.0, 0.0)

  • #14 standard_deviation: Vector = (0.0, 0.0, 0.0)

  • #15 variance: Vector = (0.0, 0.0, 0.0)

[Manual] [API]

vector_statistic_on_corners(attribute=(0.0, 0.0, 0.0), selection=True)#

The Attribute Statistic node evaluates a field on a geometry and outputs a statistic about the entire data set.

Path#

  • Attribute > Attribute Statistic Node

Outputs:#

  • #8 mean: Vector = (0.0, 0.0, 0.0)

  • #9 median: Vector = (0.0, 0.0, 0.0)

  • #10 sum: Vector = (0.0, 0.0, 0.0)

  • #11 min: Vector = (0.0, 0.0, 0.0)

  • #12 max: Vector = (0.0, 0.0, 0.0)

  • #13 range: Vector = (0.0, 0.0, 0.0)

  • #14 standard_deviation: Vector = (0.0, 0.0, 0.0)

  • #15 variance: Vector = (0.0, 0.0, 0.0)

[Manual] [API]

vector_statistic_on_curves(attribute=(0.0, 0.0, 0.0), selection=True)#

The Attribute Statistic node evaluates a field on a geometry and outputs a statistic about the entire data set.

Path#

  • Attribute > Attribute Statistic Node

Outputs:#

  • #8 mean: Vector = (0.0, 0.0, 0.0)

  • #9 median: Vector = (0.0, 0.0, 0.0)

  • #10 sum: Vector = (0.0, 0.0, 0.0)

  • #11 min: Vector = (0.0, 0.0, 0.0)

  • #12 max: Vector = (0.0, 0.0, 0.0)

  • #13 range: Vector = (0.0, 0.0, 0.0)

  • #14 standard_deviation: Vector = (0.0, 0.0, 0.0)

  • #15 variance: Vector = (0.0, 0.0, 0.0)

[Manual] [API]

vector_statistic_on_instances(attribute=(0.0, 0.0, 0.0), selection=True)#

The Attribute Statistic node evaluates a field on a geometry and outputs a statistic about the entire data set.

Path#

  • Attribute > Attribute Statistic Node

Outputs:#

  • #8 mean: Vector = (0.0, 0.0, 0.0)

  • #9 median: Vector = (0.0, 0.0, 0.0)

  • #10 sum: Vector = (0.0, 0.0, 0.0)

  • #11 min: Vector = (0.0, 0.0, 0.0)

  • #12 max: Vector = (0.0, 0.0, 0.0)

  • #13 range: Vector = (0.0, 0.0, 0.0)

  • #14 standard_deviation: Vector = (0.0, 0.0, 0.0)

  • #15 variance: Vector = (0.0, 0.0, 0.0)

[Manual] [API]

domain_size(component='MESH')#

The Domain Size outputs the size of an attribute domain on the selected geometry type, for example, the number of edges in a mesh, or the number of points in a point cloud.

Path#

  • Attribute > Domain Size Node

Properties#

  • component: MESH, POINTCLOUD, CURVE, INSTANCES

Outputs:#

  • #0 point_count: Integer = 0

  • #1 edge_count: Integer = 0

  • #2 face_count: Integer = 0

  • #3 face_corner_count: Integer = 0

  • #4 spline_count: Integer = 0

  • #5 instance_count: Integer = 0

[Manual] [API]

static blur_float_attribute(value_float=0.0, iterations=1, weight=1.0)#

The Blur Attribute node smooths attribute values between neighboring geometry elements.

Path#

  • Attribute > Blur Attribute Node

Outputs:#

  • #0 value_float: Float = 0.0

[Manual] [API]

static blur_integer_attribute(value_int=0, iterations=1, weight=1.0)#

The Blur Attribute node smooths attribute values between neighboring geometry elements.

Path#

  • Attribute > Blur Attribute Node

Outputs:#

  • #1 value_int: Integer = 0

[Manual] [API]

static blur_vector_attribute(value_vector=(0.0, 0.0, 0.0), iterations=1, weight=1.0)#

The Blur Attribute node smooths attribute values between neighboring geometry elements.

Path#

  • Attribute > Blur Attribute Node

Outputs:#

  • #2 value_vector: Vector = (0.0, 0.0, 0.0)

[Manual] [API]

static blur_color_attribute(value_color=(0.0, 0.0, 0.0, 0.0), iterations=1, weight=1.0)#

The Blur Attribute node smooths attribute values between neighboring geometry elements.

Path#

  • Attribute > Blur Attribute Node

Outputs:#

  • #3 value_color: Color = (0.0, 0.0, 0.0, 0.0)

[Manual] [API]

switch(switch=False, true_geometry=None)#

The Switch node outputs one of two inputs depending on a condition. Only the input that is passed through the node is computed.

  • In-Place Operation

Path#

  • Utilities > Switch Node

Outputs:#

  • #6 output_006: Geometry = None

[Manual] [API]

capture_vector_on_points(value=(0.0, 0.0, 0.0))#

The Capture Attribute node stores the result of a field on a geometry, and outputs the data as a node socket so it can be used by other nodes.

  • In-Place Operation

Path#

  • Attribute > Capture Attribute Node

Outputs:#

  • #0 geometry: Geometry = None

  • #1 attribute: Vector = (0.0, 0.0, 0.0)

[Manual] [API]

capture_vector_on_edges(value=(0.0, 0.0, 0.0))#

The Capture Attribute node stores the result of a field on a geometry, and outputs the data as a node socket so it can be used by other nodes.

  • In-Place Operation

Path#

  • Attribute > Capture Attribute Node

Outputs:#

  • #0 geometry: Geometry = None

  • #1 attribute: Vector = (0.0, 0.0, 0.0)

[Manual] [API]

capture_vector_on_faces(value=(0.0, 0.0, 0.0))#

The Capture Attribute node stores the result of a field on a geometry, and outputs the data as a node socket so it can be used by other nodes.

  • In-Place Operation

Path#

  • Attribute > Capture Attribute Node

Outputs:#

  • #0 geometry: Geometry = None

  • #1 attribute: Vector = (0.0, 0.0, 0.0)

[Manual] [API]

capture_vector_on_corners(value=(0.0, 0.0, 0.0))#

The Capture Attribute node stores the result of a field on a geometry, and outputs the data as a node socket so it can be used by other nodes.

  • In-Place Operation

Path#

  • Attribute > Capture Attribute Node

Outputs:#

  • #0 geometry: Geometry = None

  • #1 attribute: Vector = (0.0, 0.0, 0.0)

[Manual] [API]

capture_vector_on_curves(value=(0.0, 0.0, 0.0))#

The Capture Attribute node stores the result of a field on a geometry, and outputs the data as a node socket so it can be used by other nodes.

  • In-Place Operation

Path#

  • Attribute > Capture Attribute Node

Outputs:#

  • #0 geometry: Geometry = None

  • #1 attribute: Vector = (0.0, 0.0, 0.0)

[Manual] [API]

capture_vector_on_instances(value=(0.0, 0.0, 0.0))#

The Capture Attribute node stores the result of a field on a geometry, and outputs the data as a node socket so it can be used by other nodes.

  • In-Place Operation

Path#

  • Attribute > Capture Attribute Node

Outputs:#

  • #0 geometry: Geometry = None

  • #1 attribute: Vector = (0.0, 0.0, 0.0)

[Manual] [API]

capture_float_on_points(value=0.0)#

The Capture Attribute node stores the result of a field on a geometry, and outputs the data as a node socket so it can be used by other nodes.

  • In-Place Operation

Path#

  • Attribute > Capture Attribute Node

Outputs:#

  • #0 geometry: Geometry = None

  • #2 attribute: Float = 0.0

[Manual] [API]

capture_float_on_edges(value=0.0)#

The Capture Attribute node stores the result of a field on a geometry, and outputs the data as a node socket so it can be used by other nodes.

  • In-Place Operation

Path#

  • Attribute > Capture Attribute Node

Outputs:#

  • #0 geometry: Geometry = None

  • #2 attribute: Float = 0.0

[Manual] [API]

capture_float_on_faces(value=0.0)#

The Capture Attribute node stores the result of a field on a geometry, and outputs the data as a node socket so it can be used by other nodes.

  • In-Place Operation

Path#

  • Attribute > Capture Attribute Node

Outputs:#

  • #0 geometry: Geometry = None

  • #2 attribute: Float = 0.0

[Manual] [API]

capture_float_on_corners(value=0.0)#

The Capture Attribute node stores the result of a field on a geometry, and outputs the data as a node socket so it can be used by other nodes.

  • In-Place Operation

Path#

  • Attribute > Capture Attribute Node

Outputs:#

  • #0 geometry: Geometry = None

  • #2 attribute: Float = 0.0

[Manual] [API]

capture_float_on_curves(value=0.0)#

The Capture Attribute node stores the result of a field on a geometry, and outputs the data as a node socket so it can be used by other nodes.

  • In-Place Operation

Path#

  • Attribute > Capture Attribute Node

Outputs:#

  • #0 geometry: Geometry = None

  • #2 attribute: Float = 0.0

[Manual] [API]

capture_float_on_instances(value=0.0)#

The Capture Attribute node stores the result of a field on a geometry, and outputs the data as a node socket so it can be used by other nodes.

  • In-Place Operation

Path#

  • Attribute > Capture Attribute Node

Outputs:#

  • #0 geometry: Geometry = None

  • #2 attribute: Float = 0.0

[Manual] [API]

capture_color_on_points(value=(0.0, 0.0, 0.0, 0.0))#

The Capture Attribute node stores the result of a field on a geometry, and outputs the data as a node socket so it can be used by other nodes.

  • In-Place Operation

Path#

  • Attribute > Capture Attribute Node

Outputs:#

  • #0 geometry: Geometry = None

  • #3 attribute: Color = (0.0, 0.0, 0.0, 0.0)

[Manual] [API]

capture_color_on_edges(value=(0.0, 0.0, 0.0, 0.0))#

The Capture Attribute node stores the result of a field on a geometry, and outputs the data as a node socket so it can be used by other nodes.

  • In-Place Operation

Path#

  • Attribute > Capture Attribute Node

Outputs:#

  • #0 geometry: Geometry = None

  • #3 attribute: Color = (0.0, 0.0, 0.0, 0.0)

[Manual] [API]

capture_color_on_faces(value=(0.0, 0.0, 0.0, 0.0))#

The Capture Attribute node stores the result of a field on a geometry, and outputs the data as a node socket so it can be used by other nodes.

  • In-Place Operation

Path#

  • Attribute > Capture Attribute Node

Outputs:#

  • #0 geometry: Geometry = None

  • #3 attribute: Color = (0.0, 0.0, 0.0, 0.0)

[Manual] [API]

capture_color_on_corners(value=(0.0, 0.0, 0.0, 0.0))#

The Capture Attribute node stores the result of a field on a geometry, and outputs the data as a node socket so it can be used by other nodes.

  • In-Place Operation

Path#

  • Attribute > Capture Attribute Node

Outputs:#

  • #0 geometry: Geometry = None

  • #3 attribute: Color = (0.0, 0.0, 0.0, 0.0)

[Manual] [API]

capture_color_on_curves(value=(0.0, 0.0, 0.0, 0.0))#

The Capture Attribute node stores the result of a field on a geometry, and outputs the data as a node socket so it can be used by other nodes.

  • In-Place Operation

Path#

  • Attribute > Capture Attribute Node

Outputs:#

  • #0 geometry: Geometry = None

  • #3 attribute: Color = (0.0, 0.0, 0.0, 0.0)

[Manual] [API]

capture_color_on_instances(value=(0.0, 0.0, 0.0, 0.0))#

The Capture Attribute node stores the result of a field on a geometry, and outputs the data as a node socket so it can be used by other nodes.

  • In-Place Operation

Path#

  • Attribute > Capture Attribute Node

Outputs:#

  • #0 geometry: Geometry = None

  • #3 attribute: Color = (0.0, 0.0, 0.0, 0.0)

[Manual] [API]

capture_boolean_on_points(value=False)#

The Capture Attribute node stores the result of a field on a geometry, and outputs the data as a node socket so it can be used by other nodes.

  • In-Place Operation

Path#

  • Attribute > Capture Attribute Node

Outputs:#

  • #0 geometry: Geometry = None

  • #4 attribute: Boolean = False

[Manual] [API]

capture_boolean_on_edges(value=False)#

The Capture Attribute node stores the result of a field on a geometry, and outputs the data as a node socket so it can be used by other nodes.

  • In-Place Operation

Path#

  • Attribute > Capture Attribute Node

Outputs:#

  • #0 geometry: Geometry = None

  • #4 attribute: Boolean = False

[Manual] [API]

capture_boolean_on_faces(value=False)#

The Capture Attribute node stores the result of a field on a geometry, and outputs the data as a node socket so it can be used by other nodes.

  • In-Place Operation

Path#

  • Attribute > Capture Attribute Node

Outputs:#

  • #0 geometry: Geometry = None

  • #4 attribute: Boolean = False

[Manual] [API]

capture_boolean_on_corners(value=False)#

The Capture Attribute node stores the result of a field on a geometry, and outputs the data as a node socket so it can be used by other nodes.

  • In-Place Operation

Path#

  • Attribute > Capture Attribute Node

Outputs:#

  • #0 geometry: Geometry = None

  • #4 attribute: Boolean = False

[Manual] [API]

capture_boolean_on_curves(value=False)#

The Capture Attribute node stores the result of a field on a geometry, and outputs the data as a node socket so it can be used by other nodes.

  • In-Place Operation

Path#

  • Attribute > Capture Attribute Node

Outputs:#

  • #0 geometry: Geometry = None

  • #4 attribute: Boolean = False

[Manual] [API]

capture_boolean_on_instances(value=False)#

The Capture Attribute node stores the result of a field on a geometry, and outputs the data as a node socket so it can be used by other nodes.

  • In-Place Operation

Path#

  • Attribute > Capture Attribute Node

Outputs:#

  • #0 geometry: Geometry = None

  • #4 attribute: Boolean = False

[Manual] [API]

capture_integer_on_points(value=0)#

The Capture Attribute node stores the result of a field on a geometry, and outputs the data as a node socket so it can be used by other nodes.

  • In-Place Operation

Path#

  • Attribute > Capture Attribute Node

Outputs:#

  • #0 geometry: Geometry = None

  • #5 attribute: Integer = 0

[Manual] [API]

capture_integer_on_edges(value=0)#

The Capture Attribute node stores the result of a field on a geometry, and outputs the data as a node socket so it can be used by other nodes.

  • In-Place Operation

Path#

  • Attribute > Capture Attribute Node

Outputs:#

  • #0 geometry: Geometry = None

  • #5 attribute: Integer = 0

[Manual] [API]

capture_integer_on_faces(value=0)#

The Capture Attribute node stores the result of a field on a geometry, and outputs the data as a node socket so it can be used by other nodes.

  • In-Place Operation

Path#

  • Attribute > Capture Attribute Node

Outputs:#

  • #0 geometry: Geometry = None

  • #5 attribute: Integer = 0

[Manual] [API]

capture_integer_on_corners(value=0)#

The Capture Attribute node stores the result of a field on a geometry, and outputs the data as a node socket so it can be used by other nodes.

  • In-Place Operation

Path#

  • Attribute > Capture Attribute Node

Outputs:#

  • #0 geometry: Geometry = None

  • #5 attribute: Integer = 0

[Manual] [API]

capture_integer_on_curves(value=0)#

The Capture Attribute node stores the result of a field on a geometry, and outputs the data as a node socket so it can be used by other nodes.

  • In-Place Operation

Path#

  • Attribute > Capture Attribute Node

Outputs:#

  • #0 geometry: Geometry = None

  • #5 attribute: Integer = 0

[Manual] [API]

capture_integer_on_instances(value=0)#

The Capture Attribute node stores the result of a field on a geometry, and outputs the data as a node socket so it can be used by other nodes.

  • In-Place Operation

Path#

  • Attribute > Capture Attribute Node

Outputs:#

  • #0 geometry: Geometry = None

  • #5 attribute: Integer = 0

[Manual] [API]

remove_attribute(name='')#

The Remove Named Attribute node deletes an attribute with a certain name from its geometry input. Any attribute that exists on geometry data will be automatically propagated when the geometry storing it is changed, which can be an expensive operation, so using this node can be a simple way to optimize the performance of a geometry node tree or even to lower the memory usage of the entire scene.

  • In-Place Operation

Path#

  • Attribute > Remove Named Attribute Node

Outputs:#

  • #0 geometry: Geometry = None

[Manual] [API]

remove_attributes(*names: list[str])#

The Remove Named Attribute node deletes an attribute with a certain name from its geometry input. Any attribute that exists on geometry data will be automatically propagated when the geometry storing it is changed, which can be an expensive operation, so using this node can be a simple way to optimize the performance of a geometry node tree or even to lower the memory usage of the entire scene.

  • In-Place Operation

Path#

  • Attribute > Remove Named Attribute Node

Outputs:#

  • #0 geometry: Geometry = None

[Manual] [API]

_store_named_attribute(data_type='FLOAT', domain='POINT', selection=True, name='', value_vector=(0.0, 0.0, 0.0), value_float=0.0, value_color=(0.0, 0.0, 0.0, 0.0), value_bool=False, value_int=0)#
store_named_attribute(name: str, value, domain='POINT', selection=True)#

The Store Named Attribute node stores the result of a field on a geometry as an attribute with the specified name. If the attribute already exists, the data type and domain will be updated to the values chosen in the node. However, keep in mind that the domain and data type of Built-In Attributes cannot be changed.

  • In-Place Operation

Path#

  • Attribute > Store Named Attribute Node

Properties#

  • data_type: FLOAT, INT, FLOAT_VECTOR, FLOAT_COLOR, BYTE_COLOR, BOOLEAN, FLOAT2

  • domain: POINT, EDGE, FACE, CORNER, CURVE, INSTANCE

Outputs:#

  • #0 geometry: Geometry = None

[Manual] [API]

store_integer(domain='POINT', selection=True, **kwargs)#

The Store Named Attribute node stores the result of a field on a geometry as an attribute with the specified name. If the attribute already exists, the data type and domain will be updated to the values chosen in the node. However, keep in mind that the domain and data type of Built-In Attributes cannot be changed.

  • In-Place Operation

Path#

  • Attribute > Store Named Attribute Node

store_float(domain='POINT', selection=True, **kwargs)#

The Store Named Attribute node stores the result of a field on a geometry as an attribute with the specified name. If the attribute already exists, the data type and domain will be updated to the values chosen in the node. However, keep in mind that the domain and data type of Built-In Attributes cannot be changed.

  • In-Place Operation

Path#

  • Attribute > Store Named Attribute Node

store_boolean(domain='POINT', selection=True, **kwargs)#

The Store Named Attribute node stores the result of a field on a geometry as an attribute with the specified name. If the attribute already exists, the data type and domain will be updated to the values chosen in the node. However, keep in mind that the domain and data type of Built-In Attributes cannot be changed.

  • In-Place Operation

Path#

  • Attribute > Store Named Attribute Node

store_vector(domain='POINT', selection=True, **kwargs)#

The Store Named Attribute node stores the result of a field on a geometry as an attribute with the specified name. If the attribute already exists, the data type and domain will be updated to the values chosen in the node. However, keep in mind that the domain and data type of Built-In Attributes cannot be changed.

  • In-Place Operation

Path#

  • Attribute > Store Named Attribute Node

store_named_attributes(data: dict[str], domain='POINT', selection=True)#

The Store Named Attribute node stores the result of a field on a geometry as an attribute with the specified name. If the attribute already exists, the data type and domain will be updated to the values chosen in the node. However, keep in mind that the domain and data type of Built-In Attributes cannot be changed.

  • In-Place Operation

Path#

  • Attribute > Store Named Attribute Node

Properties#

  • data_type: FLOAT, INT, FLOAT_VECTOR, FLOAT_COLOR, BYTE_COLOR, BOOLEAN, FLOAT2

  • domain: POINT, EDGE, FACE, CORNER, CURVE, INSTANCE

Outputs:#

  • #0 geometry: Geometry = None

property ID#

The ID node gives an integer value indicating the stable random identifier of each element on the point domain, which is stored in the id attribute.

Path#

  • Geometry > Read > ID Node

Outputs:#

  • #0 id: Integer = 0

[Manual] [API]

property index#

The Index node gives an integer value indicating the position of each element in the list, starting at zero. This depends on the internal order of the data in the geometry, which is not necessarily visible in the 3D Viewport. However, the index value is visible in the left-most column in the Spreadsheet Editor.

Path#

  • Geometry > Read > Index Node

Outputs:#

  • #0 index: Integer = 0

[Manual] [API]

static named_attribute_vector(name='')#

The Named Attribute node outputs the data of an attribute based on the context of where it is connected (the Field Context).

Path#

  • Geometry > Read > Named Attribute Node

Outputs:#

  • #0 attribute_vector: Vector = (0.0, 0.0, 0.0)

  • #5 exists: Boolean = False

[Manual] [API]

static named_attribute_float(name='')#

The Named Attribute node outputs the data of an attribute based on the context of where it is connected (the Field Context).

Path#

  • Geometry > Read > Named Attribute Node

Outputs:#

  • #1 attribute_float: Float = 0.0

  • #5 exists: Boolean = False

[Manual] [API]

static named_attribute_color(name='')#

The Named Attribute node outputs the data of an attribute based on the context of where it is connected (the Field Context).

Path#

  • Geometry > Read > Named Attribute Node

Outputs:#

  • #2 attribute_color: Color = (0.0, 0.0, 0.0, 0.0)

  • #5 exists: Boolean = False

[Manual] [API]

static named_attribute_boolean(name='')#

The Named Attribute node outputs the data of an attribute based on the context of where it is connected (the Field Context).

Path#

  • Geometry > Read > Named Attribute Node

Outputs:#

  • #3 attribute_bool: Boolean = False

  • #5 exists: Boolean = False

[Manual] [API]

static named_attribute_integer(name='')#

The Named Attribute node outputs the data of an attribute based on the context of where it is connected (the Field Context).

Path#

  • Geometry > Read > Named Attribute Node

Outputs:#

  • #4 attribute_int: Integer = 0

  • #5 exists: Boolean = False

[Manual] [API]

property normal#

The Normal node returns a vector for each evaluated point indicating the normal direction. The output can depend on the attribute domain used in the node evaluating the field, but the output is always a normalized unit vector.

Path#

  • Geometry > Read > Normal Node

Outputs:#

  • #0 normal: Vector = (0.0, 0.0, 0.0)

[Manual] [API]

property position#

The Position node outputs a vector of each point of the geometry the node is connected to.

Path#

  • Geometry > Read > Position Node

Outputs:#

  • #0 position: Vector = (0.0, 0.0, 0.0)

[Manual] [API]

property radius#

The Radius node outputs the radius value at each point on the evaluated geometry. For curves, this value is used for things like determining the size of the mesh created in the Curve to Mesh node. For point clouds, the value is used for the display size of the point in the viewport.

Path#

  • Geometry > Read > Radius Node

Outputs:#

  • #0 radius: Float = 1.0

[Manual] [API]

set_id(id: pynodes.datasocks.Integer = None, selection=True)#

The Set ID node fills the id attribute on the input geometry. If the attribute does not exist yet, it will be created with a default value of zero. The ID is also created by the Distribute Points on Faces, and it is used in the Random Value Node and other nodes if it exists.

  • In-Place Operation

Path#

  • Geometry > Write > Set ID Node

Outputs:#

  • #0 geometry: Geometry = None

[Manual] [API]

set_position(position: pynodes.datasocks.Vector = None, offset=(0.0, 0.0, 0.0), selection=True)#

The Set Position node controls the location of each point, the same way as controlling the position attribute. If the input geometry contains instances, this node will affect the location of the origin of each instance.

  • In-Place Operation

Path#

  • Geometry > Write > Set Position Node

Outputs:#

  • #0 geometry: Geometry = None

[Manual] [API]

proximity(target_element='FACES', source_position: pynodes.datasocks.Vector = None)#

The Geometry Proximity node computes the closest location on the target geometry.

Path#

  • Geometry > Sample > Geometry Proximity Node

Properties#

  • target_element: FACES, POINTS, EDGES

Outputs:#

  • #0 position: Vector = (0.0, 0.0, 0.0)

  • #1 distance: Float = 0.0

[Manual] [API]

sample_index(data_type='FLOAT', domain='POINT', clamp=False, value_float=0.0, value_int=0, value_vector=(0.0, 0.0, 0.0), value_color=(0.0, 0.0, 0.0, 0.0), value_bool=False, index=0)#

The Sample Index node retrieves values from a source geometry at a specific index.

Path#

  • Geometry > Sample > Sample Index Node

Properties#

  • data_type: FLOAT, INT, FLOAT_VECTOR, FLOAT_COLOR, BOOLEAN

  • domain: POINT, EDGE, FACE, CORNER, CURVE, INSTANCE

Outputs:#

  • #0 value_float: Float = 0.0

  • #1 value_int: Integer = 0

  • #2 value_vector: Vector = (0.0, 0.0, 0.0)

  • #3 value_color: Color = (0.0, 0.0, 0.0, 0.0)

  • #4 value_bool: Boolean = False

[Manual] [API]

sample_float_at_index(value=0.0, index=0, domain='POINT', clamp=False)#

The Sample Index node retrieves values from a source geometry at a specific index.

Path#

  • Geometry > Sample > Sample Index Node

Properties#

  • domain: POINT, EDGE, FACE, CORNER, CURVE, INSTANCE

Outputs:#

  • #0 value_float: Float = 0.0

[Manual] [API]

sample_integer_at_index(value=0, index=0, domain='POINT', clamp=False)#

The Sample Index node retrieves values from a source geometry at a specific index.

Path#

  • Geometry > Sample > Sample Index Node

Properties#

  • domain: POINT, EDGE, FACE, CORNER, CURVE, INSTANCE

Outputs:#

  • #1 value_int: Integer = 0

[Manual] [API]

sample_vector_at_index(value=(0.0, 0.0, 0.0), index=0, domain='POINT', clamp=False)#

The Sample Index node retrieves values from a source geometry at a specific index.

Path#

  • Geometry > Sample > Sample Index Node

Properties#

  • domain: POINT, EDGE, FACE, CORNER, CURVE, INSTANCE

Outputs:#

  • #2 value_vector: Vector = (0.0, 0.0, 0.0)

[Manual] [API]

sample_color_at_index(value=(0.0, 0.0, 0.0, 0.0), index=0, domain='POINT', clamp=False)#

The Sample Index node retrieves values from a source geometry at a specific index.

Path#

  • Geometry > Sample > Sample Index Node

Properties#

  • domain: POINT, EDGE, FACE, CORNER, CURVE, INSTANCE

Outputs:#

  • #3 value_color: Color = (0.0, 0.0, 0.0, 0.0)

[Manual] [API]

sample_boolean_at_index(value=False, index=0, domain='POINT', clamp=False)#

The Sample Index node retrieves values from a source geometry at a specific index.

Path#

  • Geometry > Sample > Sample Index Node

Properties#

  • domain: POINT, EDGE, FACE, CORNER, CURVE, INSTANCE

Outputs:#

  • #4 value_bool: Boolean = False

[Manual] [API]

sample_nearest(sample_position: pynodes.datasocks.Vector = None, domain='POINT')#

The Sample Nearest node retrieves the index of the geometry element in its input geometry that is closest to the input position. This node is similar to the Geometry Proximity Node, but it outputs the index of the closest element instead of its distance from the current location.

Path#

  • Geometry > Sample > Sample Nearest Node

Properties#

  • domain: POINT, EDGE, FACE, CORNER

Outputs:#

  • #0 index: Integer = 0

[Manual] [API]

sample_nearest_on_points(sample_position: pynodes.datasocks.Vector = None)#

The Sample Nearest node retrieves the index of the geometry element in its input geometry that is closest to the input position. This node is similar to the Geometry Proximity Node, but it outputs the index of the closest element instead of its distance from the current location.

Path#

  • Geometry > Sample > Sample Nearest Node

Properties#

  • domain: POINT, EDGE, FACE, CORNER

Outputs:#

  • #0 index: Integer = 0

[Manual] [API]

sample_nearest_on_edges(sample_position: pynodes.datasocks.Vector = None)#

The Sample Nearest node retrieves the index of the geometry element in its input geometry that is closest to the input position. This node is similar to the Geometry Proximity Node, but it outputs the index of the closest element instead of its distance from the current location.

Path#

  • Geometry > Sample > Sample Nearest Node

Properties#

  • domain: POINT, EDGE, FACE, CORNER

Outputs:#

  • #0 index: Integer = 0

[Manual] [API]

sample_nearest_on_faces(sample_position: pynodes.datasocks.Vector = None)#

The Sample Nearest node retrieves the index of the geometry element in its input geometry that is closest to the input position. This node is similar to the Geometry Proximity Node, but it outputs the index of the closest element instead of its distance from the current location.

Path#

  • Geometry > Sample > Sample Nearest Node

Properties#

  • domain: POINT, EDGE, FACE, CORNER

Outputs:#

  • #0 index: Integer = 0

[Manual] [API]

sample_nearest_on_corners(sample_position: pynodes.datasocks.Vector = None)#

The Sample Nearest node retrieves the index of the geometry element in its input geometry that is closest to the input position. This node is similar to the Geometry Proximity Node, but it outputs the index of the closest element instead of its distance from the current location.

Path#

  • Geometry > Sample > Sample Nearest Node

Properties#

  • domain: POINT, EDGE, FACE, CORNER

Outputs:#

  • #0 index: Integer = 0

[Manual] [API]

bounding_box()#

The Bounding Box node creates a box mesh with the minimum volume that encapsulates the geometry of the input. The node also can output the vector positions of the bounding dimensions.

Path#

  • Geometry > Operations > Bounding Box Node

Outputs:#

  • #0 bounding_box: Geometry = None

  • #1 min: Vector = (0.0, 0.0, 0.0)

  • #2 max: Vector = (0.0, 0.0, 0.0)

[Manual] [API]

convex_hull()#

The Convex Hull node outputs a convex mesh that is enclosing all points in the input geometry.

Path#

  • Geometry > Operations > Convex Hull Node

Outputs:#

  • #0 convex_hull: Geometry = None

[Manual] [API]

delete(domain='POINT', mode='ALL', selection=True)#

The Delete Geometry node removes the selected part of a geometry. It behaves similarly to the Delete tool in Edit Mode. The type of elements to be deleted can be specified with the domain and mode properties.

  • In-Place Operation

Path#

  • Geometry > Operations > Delete Geometry Node

Properties#

  • domain: POINT, EDGE, FACE, CURVE, INSTANCE

  • mode: ALL, EDGE_FACE, ONLY_FACE

Outputs:#

  • #0 geometry: Geometry = None

[Manual] [API]

delete_points(mode='ALL', selection=True)#

The Delete Geometry node removes the selected part of a geometry. It behaves similarly to the Delete tool in Edit Mode. The type of elements to be deleted can be specified with the domain and mode properties.

  • In-Place Operation

Path#

  • Geometry > Operations > Delete Geometry Node

Properties#

  • mode: ALL, EDGE_FACE, ONLY_FACE

Outputs:#

  • #0 geometry: Geometry = None

[Manual] [API]

delete_edges(mode='ALL', selection=True)#

The Delete Geometry node removes the selected part of a geometry. It behaves similarly to the Delete tool in Edit Mode. The type of elements to be deleted can be specified with the domain and mode properties.

  • In-Place Operation

Path#

  • Geometry > Operations > Delete Geometry Node

Properties#

  • mode: ALL, EDGE_FACE, ONLY_FACE

Outputs:#

  • #0 geometry: Geometry = None

[Manual] [API]

delete_faces(mode='ALL', selection=True)#

The Delete Geometry node removes the selected part of a geometry. It behaves similarly to the Delete tool in Edit Mode. The type of elements to be deleted can be specified with the domain and mode properties.

  • In-Place Operation

Path#

  • Geometry > Operations > Delete Geometry Node

Properties#

  • mode: ALL, EDGE_FACE, ONLY_FACE

Outputs:#

  • #0 geometry: Geometry = None

[Manual] [API]

delete_curves(mode='ALL', selection=True)#

The Delete Geometry node removes the selected part of a geometry. It behaves similarly to the Delete tool in Edit Mode. The type of elements to be deleted can be specified with the domain and mode properties.

  • In-Place Operation

Path#

  • Geometry > Operations > Delete Geometry Node

Properties#

  • mode: ALL, EDGE_FACE, ONLY_FACE

Outputs:#

  • #0 geometry: Geometry = None

[Manual] [API]

delete_instances(mode='ALL', selection=True)#

The Delete Geometry node removes the selected part of a geometry. It behaves similarly to the Delete tool in Edit Mode. The type of elements to be deleted can be specified with the domain and mode properties.

  • In-Place Operation

Path#

  • Geometry > Operations > Delete Geometry Node

Properties#

  • mode: ALL, EDGE_FACE, ONLY_FACE

Outputs:#

  • #0 geometry: Geometry = None

[Manual] [API]

duplicate_elements(amount=1, domain='POINT', selection=True)#

The Duplicate Elements node creates a new geometry with the specified elements from the input duplicated an arbitrary number of times. The positions of elements are not changed, so all of the duplicates will be at the exact same location.

Path#

  • Geometry > Operations > Duplicate Elements Node

Properties#

  • domain: POINT, EDGE, FACE, SPLINE, INSTANCE

Outputs:#

  • #0 geometry: Geometry = None

  • #1 duplicate_index: Integer = 0

[Manual] [API]

merge_by_distance(distance=0.001, mode='ALL', selection=True)#

The Merge by Distance node merges selected mesh vertices or point cloud points within a given distance, merging surrounding geometry where necessary. This operation is similar to the Merge by Distance operator or the Weld Modifier.

Path#

  • Geometry > Operations > Merge by Distance Node

Properties#

  • mode: ALL, CONNECTED

Outputs:#

  • #0 geometry: Geometry = None

[Manual] [API]

transform(translation=(0.0, 0.0, 0.0), rotation=(0.0, 0.0, 0.0), scale=(1.0, 1.0, 1.0))#

The Transform Geometry Node allows you to move, rotate or scale the geometry. The transformation is applied to the entire geometry, and not per element. The Set Position Node is used for moving individual points of a geometry. For transforming instances individually, the instance translate, rotate, or scale nodes can be used.

  • In-Place Operation

Path#

  • Geometry > Operations > Transform Geometry Node

Outputs:#

  • #0 geometry: Geometry = None

[Manual] [API]

translate(translation=(0.0, 0.0, 0.0))#

The Transform Geometry Node allows you to move, rotate or scale the geometry. The transformation is applied to the entire geometry, and not per element. The Set Position Node is used for moving individual points of a geometry. For transforming instances individually, the instance translate, rotate, or scale nodes can be used.

  • In-Place Operation

Path#

  • Geometry > Operations > Transform Geometry Node

Outputs:#

  • #0 geometry: Geometry = None

[Manual] [API]

rotate(rotation=(0.0, 0.0, 0.0))#

The Transform Geometry Node allows you to move, rotate or scale the geometry. The transformation is applied to the entire geometry, and not per element. The Set Position Node is used for moving individual points of a geometry. For transforming instances individually, the instance translate, rotate, or scale nodes can be used.

  • In-Place Operation

Path#

  • Geometry > Operations > Transform Geometry Node

Outputs:#

  • #0 geometry: Geometry = None

[Manual] [API]

scale(scale=(1.0, 1.0, 1.0))#

The Transform Geometry Node allows you to move, rotate or scale the geometry. The transformation is applied to the entire geometry, and not per element. The Set Position Node is used for moving individual points of a geometry. For transforming instances individually, the instance translate, rotate, or scale nodes can be used.

  • In-Place Operation

Path#

  • Geometry > Operations > Transform Geometry Node

Outputs:#

  • #0 geometry: Geometry = None

[Manual] [API]

separate_components()#

The Separate Components node splits a geometry into a separate output for each type of data in the geometry.

Path#

  • Geometry > Operations > Separate Components Node

Outputs:#

  • #0 mesh: Geometry = None

  • #1 curve: Geometry = None

  • #2 point_cloud: Geometry = None

  • #3 volume: Geometry = None

  • #4 instances: Geometry = None

[Manual] [API]

separate(selection=True, domain='POINT')#

The Separate Geometry node produces two geometry outputs. Based on the Selection input, the input geometry is split between the two outputs.

Path#

  • Geometry > Operations > Separate Geometry Node

Properties#

  • domain: POINT, EDGE, FACE, CURVE, INSTANCE

Outputs:#

  • #0 selection: Geometry = None

  • #1 inverted: Geometry = None

[Manual] [API]

separate_edges(selection=True)#

The Separate Geometry node produces two geometry outputs. Based on the Selection input, the input geometry is split between the two outputs.

Path#

  • Geometry > Operations > Separate Geometry Node

Outputs:#

  • #0 selection: Geometry = None

  • #1 inverted: Geometry = None

[Manual] [API]

separate_faces(selection=True)#

The Separate Geometry node produces two geometry outputs. Based on the Selection input, the input geometry is split between the two outputs.

Path#

  • Geometry > Operations > Separate Geometry Node

Outputs:#

  • #0 selection: Geometry = None

  • #1 inverted: Geometry = None

[Manual] [API]

separate_curves(selection=True)#

The Separate Geometry node produces two geometry outputs. Based on the Selection input, the input geometry is split between the two outputs.

Path#

  • Geometry > Operations > Separate Geometry Node

Outputs:#

  • #0 selection: Geometry = None

  • #1 inverted: Geometry = None

[Manual] [API]

separate_instances(selection=True)#

The Separate Geometry node produces two geometry outputs. Based on the Selection input, the input geometry is split between the two outputs.

Path#

  • Geometry > Operations > Separate Geometry Node

Outputs:#

  • #0 selection: Geometry = None

  • #1 inverted: Geometry = None

[Manual] [API]

select(selection=True, domain='POINT')#

The Separate Geometry node produces two geometry outputs. Based on the Selection input, the input geometry is split between the two outputs.

  • In-Place Operation

Path#

  • Geometry > Operations > Separate Geometry Node

Properties#

  • domain: POINT, EDGE, FACE, CURVE, INSTANCE

[Manual] [API]

select_points(selection=True)#

The Separate Geometry node produces two geometry outputs. Based on the Selection input, the input geometry is split between the two outputs.

  • In-Place Operation

Path#

  • Geometry > Operations > Separate Geometry Node

Outputs:#

  • #0 selection: Geometry = None

  • #1 inverted: Geometry = None

[Manual] [API]

select_edges(selection=True)#

The Separate Geometry node produces two geometry outputs. Based on the Selection input, the input geometry is split between the two outputs.

  • In-Place Operation

Path#

  • Geometry > Operations > Separate Geometry Node

Outputs:#

  • #0 selection: Geometry = None

  • #1 inverted: Geometry = None

[Manual] [API]

select_faces(selection=True)#

The Separate Geometry node produces two geometry outputs. Based on the Selection input, the input geometry is split between the two outputs.

  • In-Place Operation

Path#

  • Geometry > Operations > Separate Geometry Node

Outputs:#

  • #0 selection: Geometry = None

  • #1 inverted: Geometry = None

[Manual] [API]

select_curves(selection=True)#

The Separate Geometry node produces two geometry outputs. Based on the Selection input, the input geometry is split between the two outputs.

  • In-Place Operation

Path#

  • Geometry > Operations > Separate Geometry Node

Outputs:#

  • #0 selection: Geometry = None

  • #1 inverted: Geometry = None

[Manual] [API]

select_instances(selection=True)#

The Separate Geometry node produces two geometry outputs. Based on the Selection input, the input geometry is split between the two outputs.

  • In-Place Operation

Path#

  • Geometry > Operations > Separate Geometry Node

Outputs:#

  • #0 selection: Geometry = None

  • #1 inverted: Geometry = None

[Manual] [API]

join(*others: pynodes.geosocks.Geometry)#

The Join Geometry node merges separately generated geometries into a single one. If the geometry inputs contain different types of data, the output will also contain different data types.

  • In-Place Operation

Path#

  • Geometry > Join Geometry Node

Outputs:#

  • #0 geometry: Geometry = None

[Manual] [API]

__add__(*others: pynodes.geosocks.Geometry)#
join_to_instances(*others: pynodes.geosocks.Geometry)#

The Geometry to Instance node turns every connected input geometry into an instance. Visually, the node has a similar result as the Join Geometry Node, but it outputs the result as separate instances instead. The geometry data itself isn’t actually joined.

Path#

  • Geometry > Geometry to Instance Node

Outputs:#

  • #0 instances: Geometry = None

[Manual] [API]

on_points(points: pynodes.geosocks.Points = None, pick_instance=False, instance_index: pynodes.datasocks.Integer = None, rotation=(0.0, 0.0, 0.0), scale=(1.0, 1.0, 1.0), selection=True)#

The Instance on Points node adds a reference to a geometry to each of the points present in the input geometry. Instances are a fast way to add the same geometry to a scene many times without duplicating the underlying data. The node works on any geometry type with a Point domain, including meshes, point clouds, and curve control points.

  • In-Place Operation

Path#

  • Instances > Instance on Points Node

Outputs:#

  • #0 instances: Geometry = None

[Manual] [API]

replace_material(old=None, new=None)#

The Replace Material node swaps one material with another. Replacing a material with this node is more efficient than creating a selection of all faces with the old material with the Material Selection Node and then using the Set Material Node.

Path#

  • Material > Replace Material Node

Outputs:#

  • #0 geometry: Geometry = None

[Manual] [API]

set_material(material=None, selection=True)#

The Set Material changes the material assignment in the specified selection, by adjusting the material_index attribute. If the material is already used on the geometry, the existing material index will be reused.

  • In-Place Operation

Path#

  • Material > Set Material Node

Outputs:#

  • #0 geometry: Geometry = None

[Manual] [API]

set_material_index(material_index=0, selection=True)#

The Set Material Index node sets the material index for a geometry.

  • In-Place Operation

Path#

  • Material > Set Material Index Node

Outputs:#

  • #0 geometry: Geometry = None

[Manual] [API]

property material_index#

The Material Index node outputs which material in the list of materials of the geometry each element corresponds to. Currently the node supports mesh data, where material_index is a built-in attribute on faces.

Path#

  • Material > Material Index Node

Outputs:#

  • #0 material_index: Integer = 0

[Manual] [API]

static accumulate_float_on_points(value=0.0, group_index=0)#

The Accumulate Field node counts a running total of its input values, in the order defined by the geometry’s indices. The node’s essential operation is just addition, but instead of only outputting the final total, it outputs the current value at every element.

Path#

  • Utilities > Field > Accumulate Field Node

Outputs:#

  • #0 leading_float: Float = 0.0

  • #3 trailing_float: Float = 0.0

  • #6 total_float: Float = 0.0

[Manual] [API]

static accumulate_float_on_edges(value=0.0, group_index=0)#

The Accumulate Field node counts a running total of its input values, in the order defined by the geometry’s indices. The node’s essential operation is just addition, but instead of only outputting the final total, it outputs the current value at every element.

Path#

  • Utilities > Field > Accumulate Field Node

Outputs:#

  • #0 leading_float: Float = 0.0

  • #3 trailing_float: Float = 0.0

  • #6 total_float: Float = 0.0

[Manual] [API]

static accumulate_float_on_faces(value=0.0, group_index=0)#

The Accumulate Field node counts a running total of its input values, in the order defined by the geometry’s indices. The node’s essential operation is just addition, but instead of only outputting the final total, it outputs the current value at every element.

Path#

  • Utilities > Field > Accumulate Field Node

Outputs:#

  • #0 leading_float: Float = 0.0

  • #3 trailing_float: Float = 0.0

  • #6 total_float: Float = 0.0

[Manual] [API]

static accumulate_float_on_corners(value=0.0, group_index=0)#

The Accumulate Field node counts a running total of its input values, in the order defined by the geometry’s indices. The node’s essential operation is just addition, but instead of only outputting the final total, it outputs the current value at every element.

Path#

  • Utilities > Field > Accumulate Field Node

Outputs:#

  • #0 leading_float: Float = 0.0

  • #3 trailing_float: Float = 0.0

  • #6 total_float: Float = 0.0

[Manual] [API]

static accumulate_float_on_curves(value=0.0, group_index=0)#

The Accumulate Field node counts a running total of its input values, in the order defined by the geometry’s indices. The node’s essential operation is just addition, but instead of only outputting the final total, it outputs the current value at every element.

Path#

  • Utilities > Field > Accumulate Field Node

Outputs:#

  • #0 leading_float: Float = 0.0

  • #3 trailing_float: Float = 0.0

  • #6 total_float: Float = 0.0

[Manual] [API]

static accumulate_float_on_instances(value=0.0, group_index=0)#

The Accumulate Field node counts a running total of its input values, in the order defined by the geometry’s indices. The node’s essential operation is just addition, but instead of only outputting the final total, it outputs the current value at every element.

Path#

  • Utilities > Field > Accumulate Field Node

Outputs:#

  • #0 leading_float: Float = 0.0

  • #3 trailing_float: Float = 0.0

  • #6 total_float: Float = 0.0

[Manual] [API]

static accumulate_integer_on_points(value=0, group_index=0)#

The Accumulate Field node counts a running total of its input values, in the order defined by the geometry’s indices. The node’s essential operation is just addition, but instead of only outputting the final total, it outputs the current value at every element.

Path#

  • Utilities > Field > Accumulate Field Node

Outputs:#

  • #1 leading_integer: Integer = 0

  • #4 trailing_integer: Integer = 0

  • #7 total_integer: Integer = 0

[Manual] [API]

static accumulate_integer_on_edges(value=0, group_index=0)#

The Accumulate Field node counts a running total of its input values, in the order defined by the geometry’s indices. The node’s essential operation is just addition, but instead of only outputting the final total, it outputs the current value at every element.

Path#

  • Utilities > Field > Accumulate Field Node

Outputs:#

  • #1 leading_integer: Integer = 0

  • #4 trailing_integer: Integer = 0

  • #7 total_integer: Integer = 0

[Manual] [API]

static accumulate_integer_on_faces(value=0, group_index=0)#

The Accumulate Field node counts a running total of its input values, in the order defined by the geometry’s indices. The node’s essential operation is just addition, but instead of only outputting the final total, it outputs the current value at every element.

Path#

  • Utilities > Field > Accumulate Field Node

Outputs:#

  • #1 leading_integer: Integer = 0

  • #4 trailing_integer: Integer = 0

  • #7 total_integer: Integer = 0

[Manual] [API]

static accumulate_integer_on_corners(value=0, group_index=0)#

The Accumulate Field node counts a running total of its input values, in the order defined by the geometry’s indices. The node’s essential operation is just addition, but instead of only outputting the final total, it outputs the current value at every element.

Path#

  • Utilities > Field > Accumulate Field Node

Outputs:#

  • #1 leading_integer: Integer = 0

  • #4 trailing_integer: Integer = 0

  • #7 total_integer: Integer = 0

[Manual] [API]

static accumulate_integer_on_curves(value=0, group_index=0)#

The Accumulate Field node counts a running total of its input values, in the order defined by the geometry’s indices. The node’s essential operation is just addition, but instead of only outputting the final total, it outputs the current value at every element.

Path#

  • Utilities > Field > Accumulate Field Node

Outputs:#

  • #1 leading_integer: Integer = 0

  • #4 trailing_integer: Integer = 0

  • #7 total_integer: Integer = 0

[Manual] [API]

static accumulate_integer_on_instances(value=0, group_index=0)#

The Accumulate Field node counts a running total of its input values, in the order defined by the geometry’s indices. The node’s essential operation is just addition, but instead of only outputting the final total, it outputs the current value at every element.

Path#

  • Utilities > Field > Accumulate Field Node

Outputs:#

  • #1 leading_integer: Integer = 0

  • #4 trailing_integer: Integer = 0

  • #7 total_integer: Integer = 0

[Manual] [API]

static accumulate_vector_on_points(value=(0.0, 0.0, 0.0), group_index=0)#

The Accumulate Field node counts a running total of its input values, in the order defined by the geometry’s indices. The node’s essential operation is just addition, but instead of only outputting the final total, it outputs the current value at every element.

Path#

  • Utilities > Field > Accumulate Field Node

Outputs:#

  • #2 leading_vector: Vector = (0.0, 0.0, 0.0)

  • #5 trailing_vector: Vector = (0.0, 0.0, 0.0)

  • #8 total_vector: Vector = (0.0, 0.0, 0.0)

[Manual] [API]

static accumulate_vector_on_edges(value=(0.0, 0.0, 0.0), group_index=0)#

The Accumulate Field node counts a running total of its input values, in the order defined by the geometry’s indices. The node’s essential operation is just addition, but instead of only outputting the final total, it outputs the current value at every element.

Path#

  • Utilities > Field > Accumulate Field Node

Outputs:#

  • #2 leading_vector: Vector = (0.0, 0.0, 0.0)

  • #5 trailing_vector: Vector = (0.0, 0.0, 0.0)

  • #8 total_vector: Vector = (0.0, 0.0, 0.0)

[Manual] [API]

static accumulate_vector_on_faces(value=(0.0, 0.0, 0.0), group_index=0)#

The Accumulate Field node counts a running total of its input values, in the order defined by the geometry’s indices. The node’s essential operation is just addition, but instead of only outputting the final total, it outputs the current value at every element.

Path#

  • Utilities > Field > Accumulate Field Node

Outputs:#

  • #2 leading_vector: Vector = (0.0, 0.0, 0.0)

  • #5 trailing_vector: Vector = (0.0, 0.0, 0.0)

  • #8 total_vector: Vector = (0.0, 0.0, 0.0)

[Manual] [API]

static accumulate_vector_on_corners(value=(0.0, 0.0, 0.0), group_index=0)#

The Accumulate Field node counts a running total of its input values, in the order defined by the geometry’s indices. The node’s essential operation is just addition, but instead of only outputting the final total, it outputs the current value at every element.

Path#

  • Utilities > Field > Accumulate Field Node

Outputs:#

  • #2 leading_vector: Vector = (0.0, 0.0, 0.0)

  • #5 trailing_vector: Vector = (0.0, 0.0, 0.0)

  • #8 total_vector: Vector = (0.0, 0.0, 0.0)

[Manual] [API]

static accumulate_vector_on_curves(value=(0.0, 0.0, 0.0), group_index=0)#

The Accumulate Field node counts a running total of its input values, in the order defined by the geometry’s indices. The node’s essential operation is just addition, but instead of only outputting the final total, it outputs the current value at every element.

Path#

  • Utilities > Field > Accumulate Field Node

Outputs:#

  • #2 leading_vector: Vector = (0.0, 0.0, 0.0)

  • #5 trailing_vector: Vector = (0.0, 0.0, 0.0)

  • #8 total_vector: Vector = (0.0, 0.0, 0.0)

[Manual] [API]

static accumulate_vector_on_instances(value=(0.0, 0.0, 0.0), group_index=0)#

The Accumulate Field node counts a running total of its input values, in the order defined by the geometry’s indices. The node’s essential operation is just addition, but instead of only outputting the final total, it outputs the current value at every element.

Path#

  • Utilities > Field > Accumulate Field Node

Outputs:#

  • #2 leading_vector: Vector = (0.0, 0.0, 0.0)

  • #5 trailing_vector: Vector = (0.0, 0.0, 0.0)

  • #8 total_vector: Vector = (0.0, 0.0, 0.0)

[Manual] [API]

static evaluate_float_at_index_on_points(value=0.0, index=0)#

The Evaluate at Index node allows accessing data of other elements in the context geometry. It is similar to the Sample Index Node. The main difference is that this node does not require a geometry input, because the geometry from the field context is used.

Path#

  • Utilities > Field > Evaluate at Index Node

Outputs:#

  • #0 value_float: Float = 0.0

[Manual] [API]

static evaluate_float_at_index_on_edges(value=0.0, index=0)#

The Evaluate at Index node allows accessing data of other elements in the context geometry. It is similar to the Sample Index Node. The main difference is that this node does not require a geometry input, because the geometry from the field context is used.

Path#

  • Utilities > Field > Evaluate at Index Node

Outputs:#

  • #0 value_float: Float = 0.0

[Manual] [API]

static evaluate_float_at_index_on_faces(value=0.0, index=0)#

The Evaluate at Index node allows accessing data of other elements in the context geometry. It is similar to the Sample Index Node. The main difference is that this node does not require a geometry input, because the geometry from the field context is used.

Path#

  • Utilities > Field > Evaluate at Index Node

Outputs:#

  • #0 value_float: Float = 0.0

[Manual] [API]

static evaluate_float_at_index_on_corners(value=0.0, index=0)#

The Evaluate at Index node allows accessing data of other elements in the context geometry. It is similar to the Sample Index Node. The main difference is that this node does not require a geometry input, because the geometry from the field context is used.

Path#

  • Utilities > Field > Evaluate at Index Node

Outputs:#

  • #0 value_float: Float = 0.0

[Manual] [API]

static evaluate_float_at_index_on_curves(value=0.0, index=0)#

The Evaluate at Index node allows accessing data of other elements in the context geometry. It is similar to the Sample Index Node. The main difference is that this node does not require a geometry input, because the geometry from the field context is used.

Path#

  • Utilities > Field > Evaluate at Index Node

Outputs:#

  • #0 value_float: Float = 0.0

[Manual] [API]

static evaluate_float_at_index_on_instances(value=0.0, index=0)#

The Evaluate at Index node allows accessing data of other elements in the context geometry. It is similar to the Sample Index Node. The main difference is that this node does not require a geometry input, because the geometry from the field context is used.

Path#

  • Utilities > Field > Evaluate at Index Node

Outputs:#

  • #0 value_float: Float = 0.0

[Manual] [API]

static evaluate_integer_at_index_on_points(value=0, index=0)#

The Evaluate at Index node allows accessing data of other elements in the context geometry. It is similar to the Sample Index Node. The main difference is that this node does not require a geometry input, because the geometry from the field context is used.

Path#

  • Utilities > Field > Evaluate at Index Node

Outputs:#

  • #1 value_int: Integer = 0

[Manual] [API]

static evaluate_integer_at_index_on_edges(value=0, index=0)#

The Evaluate at Index node allows accessing data of other elements in the context geometry. It is similar to the Sample Index Node. The main difference is that this node does not require a geometry input, because the geometry from the field context is used.

Path#

  • Utilities > Field > Evaluate at Index Node

Outputs:#

  • #1 value_int: Integer = 0

[Manual] [API]

static evaluate_integer_at_index_on_faces(value=0, index=0)#

The Evaluate at Index node allows accessing data of other elements in the context geometry. It is similar to the Sample Index Node. The main difference is that this node does not require a geometry input, because the geometry from the field context is used.

Path#

  • Utilities > Field > Evaluate at Index Node

Outputs:#

  • #1 value_int: Integer = 0

[Manual] [API]

static evaluate_integer_at_index_on_corners(value=0, index=0)#

The Evaluate at Index node allows accessing data of other elements in the context geometry. It is similar to the Sample Index Node. The main difference is that this node does not require a geometry input, because the geometry from the field context is used.

Path#

  • Utilities > Field > Evaluate at Index Node

Outputs:#

  • #1 value_int: Integer = 0

[Manual] [API]

static evaluate_integer_at_index_on_curves(value=0, index=0)#

The Evaluate at Index node allows accessing data of other elements in the context geometry. It is similar to the Sample Index Node. The main difference is that this node does not require a geometry input, because the geometry from the field context is used.

Path#

  • Utilities > Field > Evaluate at Index Node

Outputs:#

  • #1 value_int: Integer = 0

[Manual] [API]

static evaluate_integer_at_index_on_instances(value=0, index=0)#

The Evaluate at Index node allows accessing data of other elements in the context geometry. It is similar to the Sample Index Node. The main difference is that this node does not require a geometry input, because the geometry from the field context is used.

Path#

  • Utilities > Field > Evaluate at Index Node

Outputs:#

  • #1 value_int: Integer = 0

[Manual] [API]

static evaluate_vector_at_index_on_points(value=(0.0, 0.0, 0.0), index=0)#

The Evaluate at Index node allows accessing data of other elements in the context geometry. It is similar to the Sample Index Node. The main difference is that this node does not require a geometry input, because the geometry from the field context is used.

Path#

  • Utilities > Field > Evaluate at Index Node

Outputs:#

  • #2 value_vector: Vector = (0.0, 0.0, 0.0)

[Manual] [API]

static evaluate_vector_at_index_on_edges(value=(0.0, 0.0, 0.0), index=0)#

The Evaluate at Index node allows accessing data of other elements in the context geometry. It is similar to the Sample Index Node. The main difference is that this node does not require a geometry input, because the geometry from the field context is used.

Path#

  • Utilities > Field > Evaluate at Index Node

Outputs:#

  • #2 value_vector: Vector = (0.0, 0.0, 0.0)

[Manual] [API]

static evaluate_vector_at_index_on_faces(value=(0.0, 0.0, 0.0), index=0)#

The Evaluate at Index node allows accessing data of other elements in the context geometry. It is similar to the Sample Index Node. The main difference is that this node does not require a geometry input, because the geometry from the field context is used.

Path#

  • Utilities > Field > Evaluate at Index Node

Outputs:#

  • #2 value_vector: Vector = (0.0, 0.0, 0.0)

[Manual] [API]

static evaluate_vector_at_index_on_corners(value=(0.0, 0.0, 0.0), index=0)#

The Evaluate at Index node allows accessing data of other elements in the context geometry. It is similar to the Sample Index Node. The main difference is that this node does not require a geometry input, because the geometry from the field context is used.

Path#

  • Utilities > Field > Evaluate at Index Node

Outputs:#

  • #2 value_vector: Vector = (0.0, 0.0, 0.0)

[Manual] [API]

static evaluate_vector_at_index_on_curves(value=(0.0, 0.0, 0.0), index=0)#

The Evaluate at Index node allows accessing data of other elements in the context geometry. It is similar to the Sample Index Node. The main difference is that this node does not require a geometry input, because the geometry from the field context is used.

Path#

  • Utilities > Field > Evaluate at Index Node

Outputs:#

  • #2 value_vector: Vector = (0.0, 0.0, 0.0)

[Manual] [API]

static evaluate_vector_at_index_on_instances(value=(0.0, 0.0, 0.0), index=0)#

The Evaluate at Index node allows accessing data of other elements in the context geometry. It is similar to the Sample Index Node. The main difference is that this node does not require a geometry input, because the geometry from the field context is used.

Path#

  • Utilities > Field > Evaluate at Index Node

Outputs:#

  • #2 value_vector: Vector = (0.0, 0.0, 0.0)

[Manual] [API]

static evaluate_color_at_index_on_points(value=(0.0, 0.0, 0.0, 0.0), index=0)#

The Evaluate at Index node allows accessing data of other elements in the context geometry. It is similar to the Sample Index Node. The main difference is that this node does not require a geometry input, because the geometry from the field context is used.

Path#

  • Utilities > Field > Evaluate at Index Node

Outputs:#

  • #3 value_color: Color = (0.0, 0.0, 0.0, 0.0)

[Manual] [API]

static evaluate_color_at_index_on_edges(value=(0.0, 0.0, 0.0, 0.0), index=0)#

The Evaluate at Index node allows accessing data of other elements in the context geometry. It is similar to the Sample Index Node. The main difference is that this node does not require a geometry input, because the geometry from the field context is used.

Path#

  • Utilities > Field > Evaluate at Index Node

Outputs:#

  • #3 value_color: Color = (0.0, 0.0, 0.0, 0.0)

[Manual] [API]

static evaluate_color_at_index_on_faces(value=(0.0, 0.0, 0.0, 0.0), index=0)#

The Evaluate at Index node allows accessing data of other elements in the context geometry. It is similar to the Sample Index Node. The main difference is that this node does not require a geometry input, because the geometry from the field context is used.

Path#

  • Utilities > Field > Evaluate at Index Node

Outputs:#

  • #3 value_color: Color = (0.0, 0.0, 0.0, 0.0)

[Manual] [API]

static evaluate_color_at_index_on_corners(value=(0.0, 0.0, 0.0, 0.0), index=0)#

The Evaluate at Index node allows accessing data of other elements in the context geometry. It is similar to the Sample Index Node. The main difference is that this node does not require a geometry input, because the geometry from the field context is used.

Path#

  • Utilities > Field > Evaluate at Index Node

Outputs:#

  • #3 value_color: Color = (0.0, 0.0, 0.0, 0.0)

[Manual] [API]

static evaluate_color_at_index_on_curves(value=(0.0, 0.0, 0.0, 0.0), index=0)#

The Evaluate at Index node allows accessing data of other elements in the context geometry. It is similar to the Sample Index Node. The main difference is that this node does not require a geometry input, because the geometry from the field context is used.

Path#

  • Utilities > Field > Evaluate at Index Node

Outputs:#

  • #3 value_color: Color = (0.0, 0.0, 0.0, 0.0)

[Manual] [API]

static evaluate_color_at_index_on_instances(value=(0.0, 0.0, 0.0, 0.0), index=0)#

The Evaluate at Index node allows accessing data of other elements in the context geometry. It is similar to the Sample Index Node. The main difference is that this node does not require a geometry input, because the geometry from the field context is used.

Path#

  • Utilities > Field > Evaluate at Index Node

Outputs:#

  • #3 value_color: Color = (0.0, 0.0, 0.0, 0.0)

[Manual] [API]

static evaluate_boolean_at_index_on_points(value=False, index=0)#

The Evaluate at Index node allows accessing data of other elements in the context geometry. It is similar to the Sample Index Node. The main difference is that this node does not require a geometry input, because the geometry from the field context is used.

Path#

  • Utilities > Field > Evaluate at Index Node

Outputs:#

  • #4 value_bool: Boolean = False

[Manual] [API]

static evaluate_boolean_at_index_on_edges(value=False, index=0)#

The Evaluate at Index node allows accessing data of other elements in the context geometry. It is similar to the Sample Index Node. The main difference is that this node does not require a geometry input, because the geometry from the field context is used.

Path#

  • Utilities > Field > Evaluate at Index Node

Outputs:#

  • #4 value_bool: Boolean = False

[Manual] [API]

static evaluate_boolean_at_index_on_faces(value=False, index=0)#

The Evaluate at Index node allows accessing data of other elements in the context geometry. It is similar to the Sample Index Node. The main difference is that this node does not require a geometry input, because the geometry from the field context is used.

Path#

  • Utilities > Field > Evaluate at Index Node

Outputs:#

  • #4 value_bool: Boolean = False

[Manual] [API]

static evaluate_boolean_at_index_on_corners(value=False, index=0)#

The Evaluate at Index node allows accessing data of other elements in the context geometry. It is similar to the Sample Index Node. The main difference is that this node does not require a geometry input, because the geometry from the field context is used.

Path#

  • Utilities > Field > Evaluate at Index Node

Outputs:#

  • #4 value_bool: Boolean = False

[Manual] [API]

static evaluate_boolean_at_index_on_curves(value=False, index=0)#

The Evaluate at Index node allows accessing data of other elements in the context geometry. It is similar to the Sample Index Node. The main difference is that this node does not require a geometry input, because the geometry from the field context is used.

Path#

  • Utilities > Field > Evaluate at Index Node

Outputs:#

  • #4 value_bool: Boolean = False

[Manual] [API]

static evaluate_boolean_at_index_on_instances(value=False, index=0)#

The Evaluate at Index node allows accessing data of other elements in the context geometry. It is similar to the Sample Index Node. The main difference is that this node does not require a geometry input, because the geometry from the field context is used.

Path#

  • Utilities > Field > Evaluate at Index Node

Outputs:#

  • #4 value_bool: Boolean = False

[Manual] [API]

static evaluate_float_on_points(value=0.0)#

The Evaluate on Domain allows evaluating a field for a different attribute domain than the domain from the field context. For example, the face index could be used instead of the face corner index, when setting the values of a UV Map

Path#

  • Utilities > Field > Evaluate on Domain Node

Outputs:#

  • #0 value_float: Float = 0.0

[Manual] [API]

static evaluate_float_on_edges(value=0.0)#

The Evaluate on Domain allows evaluating a field for a different attribute domain than the domain from the field context. For example, the face index could be used instead of the face corner index, when setting the values of a UV Map

Path#

  • Utilities > Field > Evaluate on Domain Node

Outputs:#

  • #0 value_float: Float = 0.0

[Manual] [API]

static evaluate_float_on_faces(value=0.0)#

The Evaluate on Domain allows evaluating a field for a different attribute domain than the domain from the field context. For example, the face index could be used instead of the face corner index, when setting the values of a UV Map

Path#

  • Utilities > Field > Evaluate on Domain Node

Outputs:#

  • #0 value_float: Float = 0.0

[Manual] [API]

static evaluate_float_on_corners(value=0.0)#

The Evaluate on Domain allows evaluating a field for a different attribute domain than the domain from the field context. For example, the face index could be used instead of the face corner index, when setting the values of a UV Map

Path#

  • Utilities > Field > Evaluate on Domain Node

Outputs:#

  • #0 value_float: Float = 0.0

[Manual] [API]

static evaluate_float_on_curves(value=0.0)#

The Evaluate on Domain allows evaluating a field for a different attribute domain than the domain from the field context. For example, the face index could be used instead of the face corner index, when setting the values of a UV Map

Path#

  • Utilities > Field > Evaluate on Domain Node

Outputs:#

  • #0 value_float: Float = 0.0

[Manual] [API]

static evaluate_float_on_instances(value=0.0)#

The Evaluate on Domain allows evaluating a field for a different attribute domain than the domain from the field context. For example, the face index could be used instead of the face corner index, when setting the values of a UV Map

Path#

  • Utilities > Field > Evaluate on Domain Node

Outputs:#

  • #0 value_float: Float = 0.0

[Manual] [API]

static evaluate_integer_on_points(value=0)#

The Evaluate on Domain allows evaluating a field for a different attribute domain than the domain from the field context. For example, the face index could be used instead of the face corner index, when setting the values of a UV Map

Path#

  • Utilities > Field > Evaluate on Domain Node

Outputs:#

  • #1 value_int: Integer = 0

[Manual] [API]

static evaluate_integer_on_edges(value=0)#

The Evaluate on Domain allows evaluating a field for a different attribute domain than the domain from the field context. For example, the face index could be used instead of the face corner index, when setting the values of a UV Map

Path#

  • Utilities > Field > Evaluate on Domain Node

Outputs:#

  • #1 value_int: Integer = 0

[Manual] [API]

static evaluate_integer_on_faces(value=0)#

The Evaluate on Domain allows evaluating a field for a different attribute domain than the domain from the field context. For example, the face index could be used instead of the face corner index, when setting the values of a UV Map

Path#

  • Utilities > Field > Evaluate on Domain Node

Outputs:#

  • #1 value_int: Integer = 0

[Manual] [API]

static evaluate_integer_on_corners(value=0)#

The Evaluate on Domain allows evaluating a field for a different attribute domain than the domain from the field context. For example, the face index could be used instead of the face corner index, when setting the values of a UV Map

Path#

  • Utilities > Field > Evaluate on Domain Node

Outputs:#

  • #1 value_int: Integer = 0

[Manual] [API]

static evaluate_integer_on_curves(value=0)#

The Evaluate on Domain allows evaluating a field for a different attribute domain than the domain from the field context. For example, the face index could be used instead of the face corner index, when setting the values of a UV Map

Path#

  • Utilities > Field > Evaluate on Domain Node

Outputs:#

  • #1 value_int: Integer = 0

[Manual] [API]

static evaluate_integer_on_instances(value=0)#

The Evaluate on Domain allows evaluating a field for a different attribute domain than the domain from the field context. For example, the face index could be used instead of the face corner index, when setting the values of a UV Map

Path#

  • Utilities > Field > Evaluate on Domain Node

Outputs:#

  • #1 value_int: Integer = 0

[Manual] [API]

static evaluate_vector_on_points(value=(0.0, 0.0, 0.0))#

The Evaluate on Domain allows evaluating a field for a different attribute domain than the domain from the field context. For example, the face index could be used instead of the face corner index, when setting the values of a UV Map

Path#

  • Utilities > Field > Evaluate on Domain Node

Outputs:#

  • #2 value_vector: Vector = (0.0, 0.0, 0.0)

[Manual] [API]

static evaluate_vector_on_edges(value=(0.0, 0.0, 0.0))#

The Evaluate on Domain allows evaluating a field for a different attribute domain than the domain from the field context. For example, the face index could be used instead of the face corner index, when setting the values of a UV Map

Path#

  • Utilities > Field > Evaluate on Domain Node

Outputs:#

  • #2 value_vector: Vector = (0.0, 0.0, 0.0)

[Manual] [API]

static evaluate_vector_on_faces(value=(0.0, 0.0, 0.0))#

The Evaluate on Domain allows evaluating a field for a different attribute domain than the domain from the field context. For example, the face index could be used instead of the face corner index, when setting the values of a UV Map

Path#

  • Utilities > Field > Evaluate on Domain Node

Outputs:#

  • #2 value_vector: Vector = (0.0, 0.0, 0.0)

[Manual] [API]

static evaluate_vector_on_corners(value=(0.0, 0.0, 0.0))#

The Evaluate on Domain allows evaluating a field for a different attribute domain than the domain from the field context. For example, the face index could be used instead of the face corner index, when setting the values of a UV Map

Path#

  • Utilities > Field > Evaluate on Domain Node

Outputs:#

  • #2 value_vector: Vector = (0.0, 0.0, 0.0)

[Manual] [API]

static evaluate_vector_on_curves(value=(0.0, 0.0, 0.0))#

The Evaluate on Domain allows evaluating a field for a different attribute domain than the domain from the field context. For example, the face index could be used instead of the face corner index, when setting the values of a UV Map

Path#

  • Utilities > Field > Evaluate on Domain Node

Outputs:#

  • #2 value_vector: Vector = (0.0, 0.0, 0.0)

[Manual] [API]

static evaluate_vector_on_instances(value=(0.0, 0.0, 0.0))#

The Evaluate on Domain allows evaluating a field for a different attribute domain than the domain from the field context. For example, the face index could be used instead of the face corner index, when setting the values of a UV Map

Path#

  • Utilities > Field > Evaluate on Domain Node

Outputs:#

  • #2 value_vector: Vector = (0.0, 0.0, 0.0)

[Manual] [API]

static evaluate_color_on_points(value=(0.0, 0.0, 0.0, 0.0))#

The Evaluate on Domain allows evaluating a field for a different attribute domain than the domain from the field context. For example, the face index could be used instead of the face corner index, when setting the values of a UV Map

Path#

  • Utilities > Field > Evaluate on Domain Node

Outputs:#

  • #3 value_color: Color = (0.0, 0.0, 0.0, 0.0)

[Manual] [API]

static evaluate_color_on_edges(value=(0.0, 0.0, 0.0, 0.0))#

The Evaluate on Domain allows evaluating a field for a different attribute domain than the domain from the field context. For example, the face index could be used instead of the face corner index, when setting the values of a UV Map

Path#

  • Utilities > Field > Evaluate on Domain Node

Outputs:#

  • #3 value_color: Color = (0.0, 0.0, 0.0, 0.0)

[Manual] [API]

static evaluate_color_on_faces(value=(0.0, 0.0, 0.0, 0.0))#

The Evaluate on Domain allows evaluating a field for a different attribute domain than the domain from the field context. For example, the face index could be used instead of the face corner index, when setting the values of a UV Map

Path#

  • Utilities > Field > Evaluate on Domain Node

Outputs:#

  • #3 value_color: Color = (0.0, 0.0, 0.0, 0.0)

[Manual] [API]

static evaluate_color_on_corners(value=(0.0, 0.0, 0.0, 0.0))#

The Evaluate on Domain allows evaluating a field for a different attribute domain than the domain from the field context. For example, the face index could be used instead of the face corner index, when setting the values of a UV Map

Path#

  • Utilities > Field > Evaluate on Domain Node

Outputs:#

  • #3 value_color: Color = (0.0, 0.0, 0.0, 0.0)

[Manual] [API]

static evaluate_color_on_curves(value=(0.0, 0.0, 0.0, 0.0))#

The Evaluate on Domain allows evaluating a field for a different attribute domain than the domain from the field context. For example, the face index could be used instead of the face corner index, when setting the values of a UV Map

Path#

  • Utilities > Field > Evaluate on Domain Node

Outputs:#

  • #3 value_color: Color = (0.0, 0.0, 0.0, 0.0)

[Manual] [API]

static evaluate_color_on_instances(value=(0.0, 0.0, 0.0, 0.0))#

The Evaluate on Domain allows evaluating a field for a different attribute domain than the domain from the field context. For example, the face index could be used instead of the face corner index, when setting the values of a UV Map

Path#

  • Utilities > Field > Evaluate on Domain Node

Outputs:#

  • #3 value_color: Color = (0.0, 0.0, 0.0, 0.0)

[Manual] [API]

static evaluate_boolean_on_points(value=False)#

The Evaluate on Domain allows evaluating a field for a different attribute domain than the domain from the field context. For example, the face index could be used instead of the face corner index, when setting the values of a UV Map

Path#

  • Utilities > Field > Evaluate on Domain Node

Outputs:#

  • #4 value_bool: Boolean = False

[Manual] [API]

static evaluate_boolean_on_edges(value=False)#

The Evaluate on Domain allows evaluating a field for a different attribute domain than the domain from the field context. For example, the face index could be used instead of the face corner index, when setting the values of a UV Map

Path#

  • Utilities > Field > Evaluate on Domain Node

Outputs:#

  • #4 value_bool: Boolean = False

[Manual] [API]

static evaluate_boolean_on_faces(value=False)#

The Evaluate on Domain allows evaluating a field for a different attribute domain than the domain from the field context. For example, the face index could be used instead of the face corner index, when setting the values of a UV Map

Path#

  • Utilities > Field > Evaluate on Domain Node

Outputs:#

  • #4 value_bool: Boolean = False

[Manual] [API]

static evaluate_boolean_on_corners(value=False)#

The Evaluate on Domain allows evaluating a field for a different attribute domain than the domain from the field context. For example, the face index could be used instead of the face corner index, when setting the values of a UV Map

Path#

  • Utilities > Field > Evaluate on Domain Node

Outputs:#

  • #4 value_bool: Boolean = False

[Manual] [API]

static evaluate_boolean_on_curves(value=False)#

The Evaluate on Domain allows evaluating a field for a different attribute domain than the domain from the field context. For example, the face index could be used instead of the face corner index, when setting the values of a UV Map

Path#

  • Utilities > Field > Evaluate on Domain Node

Outputs:#

  • #4 value_bool: Boolean = False

[Manual] [API]

static evaluate_boolean_on_instances(value=False)#

The Evaluate on Domain allows evaluating a field for a different attribute domain than the domain from the field context. For example, the face index could be used instead of the face corner index, when setting the values of a UV Map

Path#

  • Utilities > Field > Evaluate on Domain Node

Outputs:#

  • #4 value_bool: Boolean = False

[Manual] [API]

realize_instances(legacy_behavior=False)#

The Realize Instances node makes any instances (efficient duplicates of the same geometry) into real geometry data. This makes it possible to affect each instance individually, whereas without this node, the exact same changes are applied to every instance of the same geometry. However, performance can become much worse when the input contains many instances of complex geometry, which is a fundamental limitation when procedurally processing geometry.

  • In-Place Operation

Path#

  • Instances > Realize Instances Node

Outputs:#

  • #0 geometry: Geometry = None

[Manual] [API]

index_of_nearest(position=None, group_id=0)#

The Index of Nearest node is a way to find other close elements in the same geometry. If needed you can use Group ID to determine the group of neighbors to be analyzed together.This is an alternative to the Sample Nearest Node node. The main difference is that this node does not require a geometry input, because the geometry from the field context is used.

  • New in Blender 3.6.0

Path#

  • Geometry > Sample

Outputs:#

  • #0 index: Integer = 0

  • #1 has_neighbor: Boolean = False

[Manual] [API]

class pynodes.geosocks.Curve(bsocket: bpy.types.NodeSocket)#

Bases: pynodes.geosocks.Geometry

A Curve data socket

Initialization

property domain_size#

The Domain Size outputs the size of an attribute domain on the selected geometry type, for example, the number of edges in a mesh, or the number of points in a point cloud.

Path#

  • Attribute > Domain Size Node

Outputs:#

  • #0 point_count: Integer = 0

  • #4 spline_count: Integer = 0

[Manual] [API]

static handle_positions(relative=False)#

The Curve Handle Position node outputs the position of each of a Bézier spline’s handles. If the curve does not contain Bézier splines, the node will output zero.

Path#

  • Curve > Read > Curve Handle Position Node

Outputs:#

  • #0 left: Vector = (0.0, 0.0, 0.0)

  • #1 right: Vector = (0.0, 0.0, 0.0)

[Manual] [API]

property curve_length#

The Curve Length node outputs the length of all splines added together.

Path#

  • Curve > Read > Curve Length Node

Outputs:#

  • #0 length: Float = 0.0

[Manual] [API]

property spline_length#

The Spline Length node outputs the total length of each spline, as a distance, or a number of points. This is different than the Curve Length node, which adds up the total length for all of the curve’s splines.

Path#

  • Curve > Read > Spline Length Node

Outputs:#

  • #0 length: Float = 0.0

  • #1 point_count: Integer = 0

[Manual] [API]

property tangent#

The Curve Tangent node outputs the direction that a curve points in at each control point, depending on the direction of the curve (which can be controlled with the Reverse Curve Node). The output values are normalized vectors.

Path#

  • Curve > Read > Curve Tangent Node

Outputs:#

  • #0 tangent: Vector = (0.0, 0.0, 0.0)

[Manual] [API]

property tilt#

The Curve Tilt node outputs the angle used to turn the curve normal around the direction of the curve tangent in its evaluated points. Keep in mind that the output is per control point, just like the values that can be controlled in curve Edit Mode. For NURBS and Bézier splines, the values will be interpolated to the final evaluated points.

Path#

  • Curve > Read > Curve Tilt Node

Outputs:#

  • #0 tilt: Float = 0.0

[Manual] [API]

static endpoint_selection(start_size=1, end_size=1)#

The Endpoint Selection node provides a selection for an arbitrary number of endpoints in each spline in a curve.

Path#

  • Curve > Read > Endpoint Selection Node

Outputs:#

  • #0 selection: Boolean = False

[Manual] [API]

static handle_type_selection(handle_type='AUTO', mode: set = {'LEFT', 'RIGHT'})#

Creates a selection based on the handle types of the control points.

Path#

  • Curve > Read > Handle Type Selection Node

Properties#

  • handle_type: AUTO, FREE, VECTOR, ALIGN

Outputs:#

  • #0 selection: Boolean = False

[Manual] [API]

property is_cyclic#

The Is Spline Cyclic controls whether each of the curve splines start and endpoints form a connection. Its output corresponds to the built-in cyclic attribute on the curve spline domain.

Path#

  • Curve > Read > Is Spline Cyclic Node

Outputs:#

  • #0 cyclic: Boolean = False

[Manual] [API]

property parameter#

The Spline Parameter node outputs how far along each spline a control point is. The Factor output is different from dividing the index by the total number of control points, because the control points might not be equally spaced along the curve.

Path#

  • Curve > Read > Spline Parameter Node

Outputs:#

  • #0 factor: Float = 0.0

  • #1 length: Float = 0.0

  • #2 index: Integer = 0

[Manual] [API]

property resolution#

The Spline Resolution outputs the number of evaluated curve points that will be generated for every control point on the spline. This node works for NURBS and Bézier splines, for poly splines, there is a one-to-one correspondence between original points and evaluated points, so the resolution value will be 1.

Path#

  • Curve > Read > Spline Resolution Node

Outputs:#

  • #0 resolution: Integer = 0

[Manual] [API]

sample_curve(data_type='FLOAT', mode='FACTOR', use_all_curves=False, value_float=0.0, value_int=0, value_vector=(0.0, 0.0, 0.0), value_color=(0.0, 0.0, 0.0, 0.0), value_bool=False, factor=0.0, length=0.0, curve_index=0)#

The Sample Curve calculates a point on a curve at a certain distance from the start of the curve, specified by the length or factor inputs. It also outputs data retrieved from that position on the curve. The sampled values are linearly interpolated from the values at the evaluated curve points at each side of the sampled point.

Path#

  • Curve > Sample > Sample Curve Node

Properties#

  • data_type: FLOAT, INT, FLOAT_VECTOR, FLOAT_COLOR, BOOLEAN

  • mode: FACTOR, LENGTH

Outputs:#

  • #0 value_float: Float = 0.0

  • #1 value_int: Integer = 0

  • #2 value_vector: Vector = (0.0, 0.0, 0.0)

  • #3 value_color: Color = (0.0, 0.0, 0.0, 0.0)

  • #4 value_bool: Boolean = False

  • #5 position: Vector = (0.0, 0.0, 0.0)

  • #6 tangent: Vector = (0.0, 0.0, 0.0)

  • #7 normal: Vector = (0.0, 0.0, 0.0)

[Manual] [API]

sample_float(mode='FACTOR', use_all_curves=False, value_float=0.0, factor=0.0, length=0.0, curve_index=0)#

The Sample Curve calculates a point on a curve at a certain distance from the start of the curve, specified by the length or factor inputs. It also outputs data retrieved from that position on the curve. The sampled values are linearly interpolated from the values at the evaluated curve points at each side of the sampled point.

Path#

  • Curve > Sample > Sample Curve Node

Properties#

  • mode: FACTOR, LENGTH

Outputs:#

  • #0 value_float: Float = 0.0

  • #5 position: Vector = (0.0, 0.0, 0.0)

  • #6 tangent: Vector = (0.0, 0.0, 0.0)

  • #7 normal: Vector = (0.0, 0.0, 0.0)

[Manual] [API]

sample_integer(mode='FACTOR', use_all_curves=False, value_int=0, factor=0.0, length=0.0, curve_index=0)#

The Sample Curve calculates a point on a curve at a certain distance from the start of the curve, specified by the length or factor inputs. It also outputs data retrieved from that position on the curve. The sampled values are linearly interpolated from the values at the evaluated curve points at each side of the sampled point.

Path#

  • Curve > Sample > Sample Curve Node

Properties#

  • mode: FACTOR, LENGTH

Outputs:#

  • #1 value_int: Integer = 0

  • #5 position: Vector = (0.0, 0.0, 0.0)

  • #6 tangent: Vector = (0.0, 0.0, 0.0)

  • #7 normal: Vector = (0.0, 0.0, 0.0)

[Manual] [API]

sample_vector(mode='FACTOR', use_all_curves=False, value_vector=(0.0, 0.0, 0.0), factor=0.0, length=0.0, curve_index=0)#

The Sample Curve calculates a point on a curve at a certain distance from the start of the curve, specified by the length or factor inputs. It also outputs data retrieved from that position on the curve. The sampled values are linearly interpolated from the values at the evaluated curve points at each side of the sampled point.

Path#

  • Curve > Sample > Sample Curve Node

Properties#

  • mode: FACTOR, LENGTH

Outputs:#

  • #2 value_vector: Vector = (0.0, 0.0, 0.0)

  • #5 position: Vector = (0.0, 0.0, 0.0)

  • #6 tangent: Vector = (0.0, 0.0, 0.0)

  • #7 normal: Vector = (0.0, 0.0, 0.0)

[Manual] [API]

sample_color(mode='FACTOR', use_all_curves=False, value_color=(0.0, 0.0, 0.0, 0.0), factor=0.0, length=0.0, curve_index=0)#

The Sample Curve calculates a point on a curve at a certain distance from the start of the curve, specified by the length or factor inputs. It also outputs data retrieved from that position on the curve. The sampled values are linearly interpolated from the values at the evaluated curve points at each side of the sampled point.

Path#

  • Curve > Sample > Sample Curve Node

Properties#

  • mode: FACTOR, LENGTH

Outputs:#

  • #3 value_color: Color = (0.0, 0.0, 0.0, 0.0)

  • #5 position: Vector = (0.0, 0.0, 0.0)

  • #6 tangent: Vector = (0.0, 0.0, 0.0)

  • #7 normal: Vector = (0.0, 0.0, 0.0)

[Manual] [API]

sample_boolean(mode='FACTOR', use_all_curves=False, value_bool=False, factor=0.0, length=0.0, curve_index=0)#

The Sample Curve calculates a point on a curve at a certain distance from the start of the curve, specified by the length or factor inputs. It also outputs data retrieved from that position on the curve. The sampled values are linearly interpolated from the values at the evaluated curve points at each side of the sampled point.

Path#

  • Curve > Sample > Sample Curve Node

Properties#

  • mode: FACTOR, LENGTH

Outputs:#

  • #4 value_bool: Boolean = False

  • #5 position: Vector = (0.0, 0.0, 0.0)

  • #6 tangent: Vector = (0.0, 0.0, 0.0)

  • #7 normal: Vector = (0.0, 0.0, 0.0)

[Manual] [API]

set_normal(mode='MINIMUM_TWIST', selection=True)#

The Set Curve Normal controls the method used to calculate curve normals for every curve.

  • In-Place Operation

Path#

  • Curve > Write > Set Curve Normal Node

Properties#

  • mode: MINIMUM_TWIST, Z_UP

Outputs:#

  • #0 curve: Geometry = None

[Manual] [API]

set_radius(radius=0.005, selection=True)#

The Set Curve Radius controls the radius of the curve, used for operations like the size of the profile in the Curve to Mesh node. The value is set for every control point, and is then interpolated to each evaluated point in between the control points.

  • In-Place Operation

Path#

  • Curve > Write > Set Curve Radius Node

Outputs:#

  • #0 curve: Geometry = None

[Manual] [API]

set_tilt(tilt=math.radians(0.0), selection=True)#

The Set Curve Tilt controls the tilt angle at each curve control point. That angle rotates normal vector which is generated at each point when evaluating the curve. The normal then can be retrieved with the Normal Node.

  • In-Place Operation

Path#

  • Curve > Write > Set Curve Tilt Node

Outputs:#

  • #0 curve: Geometry = None

[Manual] [API]

set_handle_positions(mode='LEFT', position: pynodes.datasocks.Vector = None, offset=(0.0, 0.0, 0.0), selection=True)#

The Set Handle Positions node sets the positions for the handles of Bézier curves. They can be used to alter the generated shape of the curve. The input node for this data is the Curve Handle Position Node. See the Bézier curves page for more details.

  • In-Place Operation

Path#

  • Curve > Write > Set Handle Positions Node

Properties#

  • mode: LEFT, RIGHT

Outputs:#

  • #0 curve: Geometry = None

[Manual] [API]

set_handle_type(handle_type='AUTO', mode: set = {'LEFT', 'RIGHT'}, selection=True)#

Sets the handle type for the points on the Bézier curve that are in the selection.

  • In-Place Operation

Path#

  • Curve > Write > Set Handle Type Node

Properties#

  • handle_type: AUTO, FREE, VECTOR, ALIGN

Outputs:#

  • #0 curve: Geometry = None

[Manual] [API]

set_cyclic(cyclic=False, selection=True)#

The Set Spline Cyclic controls whether each spline will loop back on itself. Each spline has the same number of control points whether or not it is set as cyclic. But when displaying in the viewport or for operations with other nodes, a connection will be made between the first and last control points.

  • In-Place Operation

Path#

  • Curve > Write > Set Spline Cyclic Node

Outputs:#

  • #0 geometry: Geometry = None

[Manual] [API]

set_resolution(resolution=12, selection=True)#

The Set Spline Resolution node sets the value for how many evaluated points should be generated on the curve for every control point. It only has an effect on NURBS and Bézier splines. The evaluated points are displayed in the viewport, used in the Curve to Mesh Node node, and optionally used in the Resample Curve Node.

  • In-Place Operation

Path#

  • Curve > Write > Set Spline Resolution Node

Outputs:#

  • #0 geometry: Geometry = None

[Manual] [API]

set_spline_type(spline_type='POLY', selection=True)#

Sets the spline type for the splines in the curve component that are in the selection.

  • In-Place Operation

Path#

  • Curve > Write > Set Spline Type Node

Properties#

  • spline_type: POLY, CATMULL_ROM, BEZIER, NURBS

Outputs:#

  • #0 curve: Geometry = None

[Manual] [API]

set_spline_type_poly(selection=True)#

Sets the spline type for the splines in the curve component that are in the selection.

  • In-Place Operation

Path#

  • Curve > Write > Set Spline Type Node

Properties#

  • spline_type: POLY, CATMULL_ROM, BEZIER, NURBS

Outputs:#

  • #0 curve: Geometry = None

[Manual] [API]

set_spline_type_catmull_rom(selection=True)#

Sets the spline type for the splines in the curve component that are in the selection.

  • In-Place Operation

Path#

  • Curve > Write > Set Spline Type Node

Properties#

  • spline_type: POLY, CATMULL_ROM, BEZIER, NURBS

Outputs:#

  • #0 curve: Geometry = None

[Manual] [API]

set_spline_type_bezier(selection=True)#

Sets the spline type for the splines in the curve component that are in the selection.

  • In-Place Operation

Path#

  • Curve > Write > Set Spline Type Node

Properties#

  • spline_type: POLY, CATMULL_ROM, BEZIER, NURBS

Outputs:#

  • #0 curve: Geometry = None

[Manual] [API]

set_spline_type_nurbs(selection=True)#

Sets the spline type for the splines in the curve component that are in the selection.

  • In-Place Operation

Path#

  • Curve > Write > Set Spline Type Node

Properties#

  • spline_type: POLY, CATMULL_ROM, BEZIER, NURBS

Outputs:#

  • #0 curve: Geometry = None

[Manual] [API]

to_mesh(profile: pynodes.geosocks.Curve = None, fill_caps=False)#

The Curve to Mesh node converts all splines of a curve to a mesh. Optionally, a profile curve can be provided to give the curve a custom shape.

Path#

  • Curve > Operations > Curve to Mesh Node

Outputs:#

  • #0 mesh: Geometry = None

[Manual] [API]

to_points(mode='COUNT', count=10, length=0.1)#

The Curve to Points node generates a point cloud from a curve.

Path#

  • Curve > Operations > Curve to Points Node

Properties#

  • mode: COUNT, EVALUATED, LENGTH

Outputs:#

  • #0 points: Geometry = None

  • #1 tangent: Vector = (0.0, 0.0, 0.0)

  • #2 normal: Vector = (0.0, 0.0, 0.0)

  • #3 rotation: Vector = (0.0, 0.0, 0.0)

[Manual] [API]

to_points_with_count(count=10)#

The Curve to Points node generates a point cloud from a curve.

Path#

  • Curve > Operations > Curve to Points Node

Properties#

  • mode: COUNT, EVALUATED, LENGTH

Outputs:#

  • #0 points: Geometry = None

  • #1 tangent: Vector = (0.0, 0.0, 0.0)

  • #2 normal: Vector = (0.0, 0.0, 0.0)

  • #3 rotation: Vector = (0.0, 0.0, 0.0)

[Manual] [API]

to_points_with_length(length=0.1)#

The Curve to Points node generates a point cloud from a curve.

Path#

  • Curve > Operations > Curve to Points Node

Properties#

  • mode: COUNT, EVALUATED, LENGTH

Outputs:#

  • #0 points: Geometry = None

  • #1 tangent: Vector = (0.0, 0.0, 0.0)

  • #2 normal: Vector = (0.0, 0.0, 0.0)

  • #3 rotation: Vector = (0.0, 0.0, 0.0)

[Manual] [API]

to_points_evaluated()#

The Curve to Points node generates a point cloud from a curve.

Path#

  • Curve > Operations > Curve to Points Node

Properties#

  • mode: COUNT, EVALUATED, LENGTH

Outputs:#

  • #0 points: Geometry = None

  • #1 tangent: Vector = (0.0, 0.0, 0.0)

  • #2 normal: Vector = (0.0, 0.0, 0.0)

  • #3 rotation: Vector = (0.0, 0.0, 0.0)

[Manual] [API]

property points_evaluated#

The Curve to Points node generates a point cloud from a curve.

Path#

  • Curve > Operations > Curve to Points Node

Properties#

  • mode: COUNT, EVALUATED, LENGTH

Outputs:#

  • #0 points: Geometry = None

  • #1 tangent: Vector = (0.0, 0.0, 0.0)

  • #2 normal: Vector = (0.0, 0.0, 0.0)

  • #3 rotation: Vector = (0.0, 0.0, 0.0)

[Manual] [API]

deform_on_surface()#

The Deform Curves on Surface node translates and rotates each curve based on the difference in its root position. The root position is defined by UV coordinates stored on each curve and the UV Map selected for the purpose in the Curves surface settings.

Path#

  • Curve > Operations > Deform Curves on Surface Node

Outputs:#

  • #0 curves: Geometry = None

[Manual] [API]

fill_curve(mode='TRIANGLES')#

The Fill Curve node generates a mesh using the constrained Delaunay triangulation algorithm with the curves as boundaries. The mesh is only generated flat with a local Z of 0.

Path#

  • Curve > Operations > Fill Curve Node

Properties#

  • mode: TRIANGLES, NGONS

Outputs:#

  • #0 mesh: Geometry = None

[Manual] [API]

property filled_mesh#

The Fill Curve node generates a mesh using the constrained Delaunay triangulation algorithm with the curves as boundaries. The mesh is only generated flat with a local Z of 0.

Path#

  • Curve > Operations > Fill Curve Node

Outputs:#

  • #0 mesh: Geometry = None

[Manual] [API]

property filled_ngons#

The Fill Curve node generates a mesh using the constrained Delaunay triangulation algorithm with the curves as boundaries. The mesh is only generated flat with a local Z of 0.

Path#

  • Curve > Operations > Fill Curve Node

Outputs:#

  • #0 mesh: Geometry = None

[Manual] [API]

fillet_curve(mode='BEZIER', count=1, radius=0.25, limit_radius=False)#

The Fillet Curve rounds corners on curve control points, similar to the effect of the Bevel Modifier on a 2D mesh. However, a key difference is that the rounded portions created by the Fillet Curve node are always portions of a circle.

Path#

  • Curve > Operations > Fillet Curve Node

Properties#

  • mode: BEZIER, POLY

Outputs:#

  • #0 curve: Geometry = None

[Manual] [API]

fillet_bezier(radius=0.25, count=1, limit_radius=False)#

The Fillet Curve rounds corners on curve control points, similar to the effect of the Bevel Modifier on a 2D mesh. However, a key difference is that the rounded portions created by the Fillet Curve node are always portions of a circle.

Path#

  • Curve > Operations > Fillet Curve Node

Outputs:#

  • #0 curve: Geometry = None

[Manual] [API]

fillet_poly(radius=0.25, count=1, limit_radius=False)#

The Fillet Curve rounds corners on curve control points, similar to the effect of the Bevel Modifier on a 2D mesh. However, a key difference is that the rounded portions created by the Fillet Curve node are always portions of a circle.

Path#

  • Curve > Operations > Fillet Curve Node

Outputs:#

  • #0 curve: Geometry = None

[Manual] [API]

interpolate_curves(guide_up=(0.0, 0.0, 0.0), guide_group_id=0, points=None, point_up=(0.0, 0.0, 0.0), point_group_id=0, max_neighbors=4)#

Generate new curves on points by interpolating between existing curves. This is useful to have a smaller set of original curves to make editing easier and faster while still generating high-density curves for the viewport or a final render.

Path#

  • Curve > Operations > Interpolate Curves Node

Outputs:#

  • #0 curves: Geometry = None

  • #1 closest_index: Integer = 0

  • #2 closest_weight: Float = 0.0

[Manual] [API]

resample(count=10, length=0.1, mode='COUNT', selection=True)#

The Resample Curve node creates a poly spline for each input spline. In the Count and Length modes, the control points of the new poly splines will have uniform spacing.

Path#

  • Curve > Operations > Resample Curve Node

Properties#

  • mode: COUNT, EVALUATED, LENGTH

Outputs:#

  • #0 curve: Geometry = None

[Manual] [API]

resample_length(length=0.1, selection=True)#

The Resample Curve node creates a poly spline for each input spline. In the Count and Length modes, the control points of the new poly splines will have uniform spacing.

Path#

  • Curve > Operations > Resample Curve Node

Outputs:#

  • #0 curve: Geometry = None

[Manual] [API]

resample_evaluated(selection=True)#

The Resample Curve node creates a poly spline for each input spline. In the Count and Length modes, the control points of the new poly splines will have uniform spacing.

Path#

  • Curve > Operations > Resample Curve Node

Outputs:#

  • #0 curve: Geometry = None

[Manual] [API]

reverse(selection=True)#

The Reverse Curve node swaps the start and end of splines. The shape of the splines is not changed.

Path#

  • Curve > Operations > Reverse Curve Node

Outputs:#

  • #0 curve: Geometry = None

[Manual] [API]

subdivide(cuts=1)#

The Subdivide Curve node adds more control points in between existing control points on the curve input. For Bézier and poly splines, the shape of the spline will not be changed at all.

Path#

  • Curve > Operations > Subdivide Curve Node

Outputs:#

  • #0 curve: Geometry = None

[Manual] [API]

trim_factor(start=0.0, end=1.0, selection=True)#

The Trim Curve node shortens each spline in the curve by removing sections at the start and end of each spline.

Path#

  • Curve > Operations > Trim Curve Node

Outputs:#

  • #0 curve: Geometry = None

[Manual] [API]

trim_length(start=0.0, end=1.0, selection=True)#

The Trim Curve node shortens each spline in the curve by removing sections at the start and end of each spline.

Path#

  • Curve > Operations > Trim Curve Node

Outputs:#

  • #0 curve: Geometry = None

[Manual] [API]

static curve_of_point(point_index: pynodes.datasocks.Integer = None)#

The Curve of Point node retrieves the index of the curve a control point is part of. This node is conceptually similar to the Face of Corner Node.

Path#

  • Curve > Topology > Curve of Point Node

Outputs:#

  • #0 curve_index: Integer = 0

  • #1 index_in_curve: Integer = 0

[Manual] [API]

static offset_point_in_curve(point_index: pynodes.datasocks.Integer = None, offset=0)#

The Offset Point in Curve node retrieves other points in the same curve as the input control point. This is like starting at a specific control point and walking along neighboring points toward the start or end of the curve.

Path#

  • Curve > Topology > Offset Point in Curve Node

Outputs:#

  • #0 is_valid_offset: Boolean = False

  • #1 point_index: Integer = 0

[Manual] [API]

static points_of_curve(curve_index: pynodes.datasocks.Integer = None, weights=0.0, sort_index=0)#

The Points of Curve node retrieves indices of specific control points in a curve.

Path#

  • Curve > Topology > Points of Curve Node

Outputs:#

  • #0 point_index: Integer = 0

  • #1 total: Integer = 0

[Manual] [API]

class pynodes.geosocks.Mesh(bsocket: bpy.types.NodeSocket)#

Bases: pynodes.geosocks.Geometry

A mesh data socket

Initialization

property domain_size#

The Domain Size outputs the size of an attribute domain on the selected geometry type, for example, the number of edges in a mesh, or the number of points in a point cloud.

Path#

  • Attribute > Domain Size Node

Outputs:#

  • #0 point_count: Integer = 0

  • #1 edge_count: Integer = 0

  • #2 face_count: Integer = 0

  • #3 face_corner_count: Integer = 0

[Manual] [API]

raycast(mapping='INTERPOLATED', attribute=0.0, source_position: pynodes.datasocks.Vector = None, ray_direction=(0.0, 0.0, -1.0), ray_length=100.0)#

The Raycast node intersects rays from one geometry onto another. The source geometry is defined by the context of the node that the Raycast node is connected to. Each ray computes hit points on the target mesh and outputs normals, distances and any surface attribute specified.

Path#

  • Geometry > Sample > Raycast Node

Properties#

  • mapping: INTERPOLATED, NEAREST

Outputs:#

  • #0 is_hit: Boolean = False

  • #1 hit_position: Vector = (0.0, 0.0, 0.0)

  • #2 hit_normal: Vector = (0.0, 0.0, 0.0)

  • #3 hit_distance: Float = 0.0

  • #5 attribute_001: Float = 0.0

[Manual] [API]

raycast_vector(mapping='INTERPOLATED', attribute=(0.0, 0.0, 0.0), source_position: pynodes.datasocks.Vector = None, ray_direction=(0.0, 0.0, -1.0), ray_length=100.0)#

The Raycast node intersects rays from one geometry onto another. The source geometry is defined by the context of the node that the Raycast node is connected to. Each ray computes hit points on the target mesh and outputs normals, distances and any surface attribute specified.

Path#

  • Geometry > Sample > Raycast Node

Properties#

  • mapping: INTERPOLATED, NEAREST

Outputs:#

  • #0 is_hit: Boolean = False

  • #1 hit_position: Vector = (0.0, 0.0, 0.0)

  • #2 hit_normal: Vector = (0.0, 0.0, 0.0)

  • #3 hit_distance: Float = 0.0

  • #4 attribute: Vector = (0.0, 0.0, 0.0)

[Manual] [API]

raycast_float(mapping='INTERPOLATED', attribute=0.0, source_position: pynodes.datasocks.Vector = None, ray_direction=(0.0, 0.0, -1.0), ray_length=100.0)#

The Raycast node intersects rays from one geometry onto another. The source geometry is defined by the context of the node that the Raycast node is connected to. Each ray computes hit points on the target mesh and outputs normals, distances and any surface attribute specified.

Path#

  • Geometry > Sample > Raycast Node

Properties#

  • mapping: INTERPOLATED, NEAREST

Outputs:#

  • #0 is_hit: Boolean = False

  • #1 hit_position: Vector = (0.0, 0.0, 0.0)

  • #2 hit_normal: Vector = (0.0, 0.0, 0.0)

  • #3 hit_distance: Float = 0.0

  • #5 attribute_001: Float = 0.0

[Manual] [API]

raycast_color(mapping='INTERPOLATED', attribute=(0.0, 0.0, 0.0, 0.0), source_position: pynodes.datasocks.Vector = None, ray_direction=(0.0, 0.0, -1.0), ray_length=100.0)#

The Raycast node intersects rays from one geometry onto another. The source geometry is defined by the context of the node that the Raycast node is connected to. Each ray computes hit points on the target mesh and outputs normals, distances and any surface attribute specified.

Path#

  • Geometry > Sample > Raycast Node

Properties#

  • mapping: INTERPOLATED, NEAREST

Outputs:#

  • #0 is_hit: Boolean = False

  • #1 hit_position: Vector = (0.0, 0.0, 0.0)

  • #2 hit_normal: Vector = (0.0, 0.0, 0.0)

  • #3 hit_distance: Float = 0.0

  • #6 attribute_002: Color = (0.0, 0.0, 0.0, 0.0)

[Manual] [API]

raycast_boolean(mapping='INTERPOLATED', attribute=False, source_position: pynodes.datasocks.Vector = None, ray_direction=(0.0, 0.0, -1.0), ray_length=100.0)#

The Raycast node intersects rays from one geometry onto another. The source geometry is defined by the context of the node that the Raycast node is connected to. Each ray computes hit points on the target mesh and outputs normals, distances and any surface attribute specified.

Path#

  • Geometry > Sample > Raycast Node

Properties#

  • mapping: INTERPOLATED, NEAREST

Outputs:#

  • #0 is_hit: Boolean = False

  • #1 hit_position: Vector = (0.0, 0.0, 0.0)

  • #2 hit_normal: Vector = (0.0, 0.0, 0.0)

  • #3 hit_distance: Float = 0.0

  • #7 attribute_003: Boolean = False

[Manual] [API]

raycast_integer(mapping='INTERPOLATED', attribute=0, source_position: pynodes.datasocks.Vector = None, ray_direction=(0.0, 0.0, -1.0), ray_length=100.0)#

The Raycast node intersects rays from one geometry onto another. The source geometry is defined by the context of the node that the Raycast node is connected to. Each ray computes hit points on the target mesh and outputs normals, distances and any surface attribute specified.

Path#

  • Geometry > Sample > Raycast Node

Properties#

  • mapping: INTERPOLATED, NEAREST

Outputs:#

  • #0 is_hit: Boolean = False

  • #1 hit_position: Vector = (0.0, 0.0, 0.0)

  • #2 hit_normal: Vector = (0.0, 0.0, 0.0)

  • #3 hit_distance: Float = 0.0

  • #8 attribute_004: Integer = 0

[Manual] [API]

merge_by_distance(distance=0.001, mode='ALL', selection=True)#

The Merge by Distance node merges selected mesh vertices or point cloud points within a given distance, merging surrounding geometry where necessary. This operation is similar to the Merge by Distance operator or the Weld Modifier.

Path#

  • Geometry > Operations > Merge by Distance Node

Properties#

  • mode: ALL, CONNECTED

Outputs:#

  • #0 geometry: Geometry = None

[Manual] [API]

merge_connected(distance=0.001, selection=True)#

The Merge by Distance node merges selected mesh vertices or point cloud points within a given distance, merging surrounding geometry where necessary. This operation is similar to the Merge by Distance operator or the Weld Modifier.

Path#

  • Geometry > Operations > Merge by Distance Node

Properties#

  • mode: ALL, CONNECTED

Outputs:#

  • #0 geometry: Geometry = None

[Manual] [API]

property edge_angle#

The Edge Angle node calculates the angle in radians between two faces that meet at an edge. For the Face, Face Corner, and Point domains, the node uses simple domain interpolation to move values from the mesh’s edges.

Path#

  • Mesh > Read > Edge Angle Node

Outputs:#

  • #0 unsigned_angle: Float = 0.0

  • #1 signed_angle: Float = 0.0

[Manual] [API]

property edge_neighbors#

The Edge Neighbors node outputs topology information relating to each edge of a mesh.

Path#

  • Mesh > Read > Edge Neighbors Node

Outputs:#

  • #0 face_count: Integer = 0

[Manual] [API]

property edge_vertices#

The Edge Vertices node outputs the position and index of the two vertices of each of a mesh’s edges.

Path#

  • Mesh > Read > Edge Vertices Node

Outputs:#

  • #0 vertex_index_1: Integer = 0

  • #1 vertex_index_2: Integer = 0

  • #2 position_1: Vector = (0.0, 0.0, 0.0)

  • #3 position_2: Vector = (0.0, 0.0, 0.0)

[Manual] [API]

static edges_to_face_groups(boundary_edges=True)#

The Edges to Face Groups node group faces into regions surrounded by the selected boundary edges.

Path#

  • Mesh > Read > Edges to Face Groups Node

Outputs:#

  • #0 face_group_id: Integer = 0

[Manual] [API]

property face_area#

The Face Area node outputs the surface area of a mesh’s faces. The units are in Blender units no matter the unit system, equivalent to meters-squared at the default unit scale.

Path#

  • Mesh > Read > Face Area Node

Outputs:#

  • #0 area: Float = 0.0

[Manual] [API]

property face_neighbors#

The Face Neighbors node outputs topology information relating to each face of a mesh.

Path#

  • Mesh > Read > Face Neighbors Node

Outputs:#

  • #0 vertex_count: Integer = 0

  • #1 face_count: Integer = 0

[Manual] [API]

static faceset_boundaries(face_set=0)#

The Face Group Boundaries Node finds the edges which lie on the boundaries of specified regions. These edges could be used to mark seams for UV unwrapping, for example.

Path#

  • Mesh > Read > Face Group Boundaries Node

Outputs:#

  • #0 boundary_edges: Boolean = False

[Manual] [API]

static face_is_planar(threshold=0.01)#

The Is Face Planar node outputs whether every triangle of a quads or N-gons is on the same plane as all of the others, in other words, if they have the same normal.

Path#

  • Mesh > Read > Is Face Planar Node

Outputs:#

  • #0 planar: Boolean = False

[Manual] [API]

property is_shade_smooth#

The Is Shade Smooth node outputs true for each face of the mesh if that face is marked to render smooth shaded. Otherwise, if the face is marked to render as flat shaded, so the node outputs false.

Path#

  • Mesh > Read > Is Shade Smooth Node

Outputs:#

  • #0 smooth: Boolean = False

[Manual] [API]

property mesh_island#

The Mesh Island node outputs information about separate connected regions, or “islands” of a mesh. Whenever two vertices are connected together by an edge, they are considered as part of the same island, and will have the same Island Index output.

Path#

  • Mesh > Read > Mesh Island Node

Outputs:#

  • #0 island_index: Integer = 0

  • #1 island_count: Integer = 0

[Manual] [API]

static shortest_edge_paths(end_vertex=False, edge_cost=1.0)#

The Shortest Edge Paths node finds paths along mesh edges to a selection of end vertices. The cost used to define “shortest” can be set to anything. By default there is a constant cost for every edge, but a typical input would be the length of each edge.

Path#

  • Mesh > Read > Shortest Edge Paths Node

Outputs:#

  • #0 next_vertex_index: Integer = 0

  • #1 total_cost: Float = 0.0

[Manual] [API]

property vertex_neighbors#

The Vertex Neighbors node outputs topology information relating to each vertex of a mesh.

Path#

  • Mesh > Read > Vertex Neighbors Node

Outputs:#

  • #0 vertex_count: Integer = 0

  • #1 face_count: Integer = 0

[Manual] [API]

nearest_surface(data_type='FLOAT', value_float=0.0, value_int=0, value_vector=(0.0, 0.0, 0.0), value_color=(0.0, 0.0, 0.0, 0.0), value_bool=False, sample_position: pynodes.datasocks.Vector = None)#

The Sample Nearest Surface node finds values at the closest points on the surface of a source mesh geometry. Non-face attributes are interpolated across the surface.

Path#

  • Mesh > Sample > Sample Nearest Surface Node

Properties#

  • data_type: FLOAT, INT, FLOAT_VECTOR, FLOAT_COLOR, BOOLEAN

Outputs:#

  • #0 value_float: Float = 0.0

  • #1 value_int: Integer = 0

  • #2 value_vector: Vector = (0.0, 0.0, 0.0)

  • #3 value_color: Color = (0.0, 0.0, 0.0, 0.0)

  • #4 value_bool: Boolean = False

[Manual] [API]

nearest_surface_float(value_float=0.0, sample_position: pynodes.datasocks.Vector = None)#

The Sample Nearest Surface node finds values at the closest points on the surface of a source mesh geometry. Non-face attributes are interpolated across the surface.

Path#

  • Mesh > Sample > Sample Nearest Surface Node

Outputs:#

  • #0 value_float: Float = 0.0

[Manual] [API]

nearest_surface_integer(value_int=0, sample_position: pynodes.datasocks.Vector = None)#

The Sample Nearest Surface node finds values at the closest points on the surface of a source mesh geometry. Non-face attributes are interpolated across the surface.

Path#

  • Mesh > Sample > Sample Nearest Surface Node

Outputs:#

  • #1 value_int: Integer = 0

[Manual] [API]

nearest_surface_vector(value_vector=(0.0, 0.0, 0.0), sample_position: pynodes.datasocks.Vector = None)#

The Sample Nearest Surface node finds values at the closest points on the surface of a source mesh geometry. Non-face attributes are interpolated across the surface.

Path#

  • Mesh > Sample > Sample Nearest Surface Node

Outputs:#

  • #2 value_vector: Vector = (0.0, 0.0, 0.0)

[Manual] [API]

nearest_surface_color(value_color=(0.0, 0.0, 0.0, 0.0), sample_position: pynodes.datasocks.Vector = None)#

The Sample Nearest Surface node finds values at the closest points on the surface of a source mesh geometry. Non-face attributes are interpolated across the surface.

Path#

  • Mesh > Sample > Sample Nearest Surface Node

Outputs:#

  • #3 value_color: Color = (0.0, 0.0, 0.0, 0.0)

[Manual] [API]

nearest_surface_boolean(value_bool=False, sample_position: pynodes.datasocks.Vector = None)#

The Sample Nearest Surface node finds values at the closest points on the surface of a source mesh geometry. Non-face attributes are interpolated across the surface.

Path#

  • Mesh > Sample > Sample Nearest Surface Node

Outputs:#

  • #4 value_bool: Boolean = False

[Manual] [API]

sample_uv_surface_float(value_float=0.0, source_uv_map=(0.0, 0.0, 0.0), sample_uv=(0.0, 0.0, 0.0))#

The Sample UV Surface node finds values on a mesh’s surface at specific UV locations. Internally the process is a “reverse UV lookup” from a location in 2D space. The node then finds the face that corresponds to each UV coordinate, and the location within that face.

Path#

  • Mesh > Sample > Sample UV Surface Node

Outputs:#

  • #0 value_float: Float = 0.0

  • #5 is_valid: Boolean = False

[Manual] [API]

sample_uv_surface_integer(value_int=0.0, source_uv_map=(0.0, 0.0, 0.0), sample_uv=(0.0, 0.0, 0.0))#

The Sample UV Surface node finds values on a mesh’s surface at specific UV locations. Internally the process is a “reverse UV lookup” from a location in 2D space. The node then finds the face that corresponds to each UV coordinate, and the location within that face.

Path#

  • Mesh > Sample > Sample UV Surface Node

Outputs:#

  • #1 value_int: Integer = 0

  • #5 is_valid: Boolean = False

[Manual] [API]

sample_uv_surface_vector(value_vector=(0.0, 0.0, 0.0), source_uv_map=(0.0, 0.0, 0.0), sample_uv=(0.0, 0.0, 0.0))#

The Sample UV Surface node finds values on a mesh’s surface at specific UV locations. Internally the process is a “reverse UV lookup” from a location in 2D space. The node then finds the face that corresponds to each UV coordinate, and the location within that face.

Path#

  • Mesh > Sample > Sample UV Surface Node

Outputs:#

  • #2 value_vector: Vector = (0.0, 0.0, 0.0)

  • #5 is_valid: Boolean = False

[Manual] [API]

sample_uv_surface_color(value_color=(0.0, 0.0, 0.0, 0.0), source_uv_map=(0.0, 0.0, 0.0), sample_uv=(0.0, 0.0, 0.0))#

The Sample UV Surface node finds values on a mesh’s surface at specific UV locations. Internally the process is a “reverse UV lookup” from a location in 2D space. The node then finds the face that corresponds to each UV coordinate, and the location within that face.

Path#

  • Mesh > Sample > Sample UV Surface Node

Outputs:#

  • #3 value_color: Color = (0.0, 0.0, 0.0, 0.0)

  • #5 is_valid: Boolean = False

[Manual] [API]

sample_uv_surface_boolean(value_bool=False, source_uv_map=(0.0, 0.0, 0.0), sample_uv=(0.0, 0.0, 0.0))#

The Sample UV Surface node finds values on a mesh’s surface at specific UV locations. Internally the process is a “reverse UV lookup” from a location in 2D space. The node then finds the face that corresponds to each UV coordinate, and the location within that face.

Path#

  • Mesh > Sample > Sample UV Surface Node

Outputs:#

  • #4 value_bool: Boolean = False

  • #5 is_valid: Boolean = False

[Manual] [API]

set_shade_smooth(shade_smooth=True, domain='FACE', selection=True)#

The Set Shade Smooth node controls whether the mesh’s faces look smooth in the viewport and renders. The input node for this data is the Is Shade Smooth node.

  • In-Place Operation

Path#

  • Mesh > Write > Set Shade Smooth Node

Properties#

  • domain(New in Blender 4.0): FACE, EDGE

Outputs:#

  • #0 geometry: Geometry = None

[Manual] [API]

dual_mesh(keep_boundaries=False)#

The Dual Mesh Node converts a mesh into it’s dual, i.e. faces are turned into vertices and vertices are turned into faces. This also means that attributes which were on the face domain are transferred to the point domain in the dual mesh.

Path#

  • Mesh > Operations > Dual Mesh Node

Outputs:#

  • #0 dual_mesh: Geometry = None

[Manual] [API]

edge_paths_to_curves(start_vertices=True, next_vertex_index=-1)#

The Edge Paths to Curves node output curves that follow paths across mesh edges.

Path#

  • Mesh > Operations > Edge Paths to Curves Node

Outputs:#

  • #0 curves: Geometry = None

[Manual] [API]

static edge_paths_to_selection(start_vertices=True, next_vertex_index=-1)#

The Edge Paths to Selection node follows paths across mesh edges and outputs a selection of every visited edge.

Path#

  • Mesh > Operations > Edge Paths to Selection Node

Outputs:#

  • #0 selection: Boolean = False

[Manual] [API]

extrude(offset_scale=1.0, offset: pynodes.datasocks.Vector = None, individual=True, mode='FACES', selection=True)#

The Extrude Mesh Node generates new vertices, edges, or faces, on selected geometry and transforms them based on an offset.

Path#

  • Mesh > Operations > Extrude Mesh Node

Properties#

  • mode: FACES, VERTICES, EDGES

Outputs:#

  • #0 mesh: Geometry = None

  • #1 top: Boolean = False

  • #2 side: Boolean = False

[Manual] [API]

extrude_faces(offset_scale=1.0, offset: pynodes.datasocks.Vector = None, individual=True, selection=True)#

The Extrude Mesh Node generates new vertices, edges, or faces, on selected geometry and transforms them based on an offset.

Path#

  • Mesh > Operations > Extrude Mesh Node

Outputs:#

  • #0 mesh: Geometry = None

  • #1 top: Boolean = False

  • #2 side: Boolean = False

[Manual] [API]

extrude_vertices(offset_scale=1.0, offset: pynodes.datasocks.Vector = None, individual=True, selection=True)#

The Extrude Mesh Node generates new vertices, edges, or faces, on selected geometry and transforms them based on an offset.

Path#

  • Mesh > Operations > Extrude Mesh Node

Outputs:#

  • #0 mesh: Geometry = None

  • #1 top: Boolean = False

  • #2 side: Boolean = False

[Manual] [API]

extrude_edges(offset_scale=1.0, offset: pynodes.datasocks.Vector = None, individual=True, selection=True)#

The Extrude Mesh Node generates new vertices, edges, or faces, on selected geometry and transforms them based on an offset.

Path#

  • Mesh > Operations > Extrude Mesh Node

Outputs:#

  • #0 mesh: Geometry = None

  • #1 top: Boolean = False

  • #2 side: Boolean = False

[Manual] [API]

flip_faces(selection=True)#

The Flip Faces Node reverses the order of the vertices and edges of each selected face. The most common use of this node is to flip the normals of a face. Any face corner domain attributes of selected faces are also reversed.

Path#

  • Mesh > Operations > Flip Faces Node

Outputs:#

  • #0 mesh: Geometry = None

[Manual] [API]

mesh_union(*others: pynodes.geosocks.Mesh, self_intersection=False, hole_tolerant=False)#

The Mesh Boolean Node allows you to cut, subtract, and join the geometry of two inputs. This node offers the same operations as the Boolean modifier.

Path#

  • Mesh > Operations > Mesh Boolean Node

Outputs:#

  • #0 mesh: Geometry = None

  • #1 intersecting_edges: Boolean = False

[Manual] [API]

mesh_intersect(*others: pynodes.geosocks.Mesh, self_intersection=False, hole_tolerant=False)#

The Mesh Boolean Node allows you to cut, subtract, and join the geometry of two inputs. This node offers the same operations as the Boolean modifier.

Path#

  • Mesh > Operations > Mesh Boolean Node

Outputs:#

  • #0 mesh: Geometry = None

  • #1 intersecting_edges: Boolean = False

[Manual] [API]

mesh_difference(*others: pynodes.geosocks.Mesh, self_intersection=False, hole_tolerant=False)#

The Mesh Boolean Node allows you to cut, subtract, and join the geometry of two inputs. This node offers the same operations as the Boolean modifier.

Path#

  • Mesh > Operations > Mesh Boolean Node

Outputs:#

  • #0 mesh: Geometry = None

  • #1 intersecting_edges: Boolean = False

[Manual] [API]

to_curve(selection=True)#

The Mesh to Curve node generates a curve from a mesh. The result is a poly spline, with a point for every selected vertex on the mesh. Any intersection of more than two selected edges will cause a break in the spline. Meaning that if a the mesh has grid-like topology and a continuous spline is desired, the Selection input is very important.

Path#

  • Mesh > Operations > Mesh to Curve Node

Outputs:#

  • #0 curve: Geometry = None

[Manual] [API]

to_points(mode='VERTICES', position: pynodes.datasocks.Vector = None, radius=0.05, selection=True)#

The Mesh to Points node generates a point cloud from a mesh.

Path#

  • Mesh > Operations > Mesh to Points Node

Properties#

  • mode: VERTICES, EDGES, FACES, CORNERS

Outputs:#

  • #0 points: Geometry = None

[Manual] [API]

to_volume(resolution_mode='VOXEL_AMOUNT', density=1.0, voxel_size=0.3, voxel_amount=64.0, exterior_band_width=0.1, interior_band_width=0.0, fill_volume=True)#

The Mesh to Volume node creates a fog volumes based on the shape of a mesh. The volume is created with a grid of the name “density”.

Path#

  • Mesh > Operations > Mesh to Volume Node

Properties#

  • resolution_mode: VOXEL_AMOUNT, VOXEL_SIZE

Outputs:#

  • #0 volume: Geometry = None

[Manual] [API]

to_sdf_volume(resolution_mode='VOXEL_AMOUNT', voxel_size=0.3, voxel_amount=64.0, half_band_width=3.0)#

The Mesh to Volume node creates a fog volumes based on the shape of a mesh. The volume is created with a grid of the name “density”.

  • Experimental node

Path#

  • Mesh > Operations > Mesh to SDF Volume Node

Properties#

  • resolution_mode: VOXEL_AMOUNT, VOXEL_SIZE

Outputs:#

  • #0 volume: Volume = None

[Manual] [API]

scale_elements(scale=1.0, center: pynodes.datasocks.Vector = None, axis=(1.0, 0.0, 0.0), domain='FACE', scale_mode='UNIFORM', selection=True)#

The Scale Elements Node scales groups of connected edges and faces. When multiple selected faces/edges share the same vertices, they are scaled together. The center and scaling factor is averaged in this case.

Path#

  • Mesh > Operations > Scale Elements Node

Properties#

  • domain: FACE, EDGE

  • scale_mode: UNIFORM, SINGLE_AXIS

Outputs:#

  • #0 geometry: Geometry = None

[Manual] [API]

split_edges(selection=True)#

Like the Edge Split Modifier, the Split Edges node splits and duplicates edges within a mesh, breaking ‘links’ between faces around those split edges.

Path#

  • Mesh > Operations > Split Edges Node

Outputs:#

  • #0 mesh: Geometry = None

[Manual] [API]

subdivide_mesh(level=1)#

The Subdivide Mesh node adds new faces to mesh geometry using a simple interpolation for deformation.

Path#

  • Mesh > Operations > Subdivide Mesh Node

Outputs:#

  • #0 mesh: Geometry = None

[Manual] [API]

subdivision_surface(uv_smooth='PRESERVE_BOUNDARIES', boundary_smooth='ALL', level=1, edge_crease=0.0, vertex_crease=0.0)#

The Subdivision Surface node adds new faces to mesh geometry using a Catmull-Clark subdivision method.

Path#

  • Mesh > Operations > Subdivision Surface Node

Properties#

  • boundary_smooth: ALL, PRESERVE_CORNERS

  • uv_smooth: PRESERVE_BOUNDARIES, NONE, PRESERVE_CORNERS, PRESERVE_CORNERS_AND_JUNCTIONS, PRESERVE_CORNERS_JUNCTIONS_AND_CONCAVE, SMOOTH_ALL

Outputs:#

  • #0 mesh: Geometry = None

[Manual] [API]

triangulate(quad_method='SHORTEST_DIAGONAL', ngon_method='BEAUTY', minimum_vertices=4, selection=True)#

The Triangulate node converts all faces in a mesh (quads and n-gons) to triangular faces. It functions the same as the Triangulate tool in Edit Mode.

Path#

  • Mesh > Operations > Triangulate Node

Properties#

  • quad_method: SHORTEST_DIAGONAL, BEAUTY, FIXED, FIXED_ALTERNATE, LONGEST_DIAGONAL

  • ngon_method: BEAUTY, CLIP

Outputs:#

  • #0 mesh: Geometry = None

[Manual] [API]

static corners_of_face(face_index: pynodes.datasocks.Integer = None, weights=0.0, sort_index=0)#

The Corners of Face node gives access to specific corners of input faces.

Path#

  • Mesh > Topology > Corners of Face Node

Outputs:#

  • #0 corner_index: Integer = 0

  • #1 total: Integer = 0

[Manual] [API]

static corners_of_vertex(vertex_index: pynodes.datasocks.Integer = None, weights=0.0, sort_index=0)#

The Corners of Vertex node retrieves face corners attached to each vertex. The node first gathers a list of the corners of all faces connected to the vertex. That list is then sorted based on the values of the Sort Weight input. The Total output is the number of connected faces/corners, and the Corner Index output is one of those corners, chosen with the Sort Index input.

Path#

  • Mesh > Topology > Corners of Vertex Node

Outputs:#

  • #0 corner_index: Integer = 0

  • #1 total: Integer = 0

[Manual] [API]

static edges_of_corner(corner_index: pynodes.datasocks.Integer = None)#

The Edges of Corner node retrieves the edges on both sides of a face corner.

Path#

  • Mesh > Topology > Edges of Corner Node

Outputs:#

  • #0 next_edge_index: Integer = 0

  • #1 previous_edge_index: Integer = 0

[Manual] [API]

static edges_of_vertex(vertex_index: pynodes.datasocks.Integer = None, weights=0.0, sort_index=0)#

The Edges of Vertex node retrieves the edges connected to each vertex. Each vertex is connected to several edges. The node first collects a list of those edges, then sorts them based on the Sort Weight input. The Total output is the number of edges in that list, and the Edge Index output is one of those edges chosen with the Sort Index input.

Path#

  • Mesh > Topology > Edges of Vertex Node

Outputs:#

  • #0 edge_index: Integer = 0

  • #1 total: Integer = 0

[Manual] [API]

static face_of_corner(corner_index: pynodes.datasocks.Integer = None)#

The Face of Corner node retrieves the face a face corner is part of.

Path#

  • Mesh > Topology > Face of Corner Node

Outputs:#

  • #0 face_index: Integer = 0

  • #1 index_in_face: Integer = 0

[Manual] [API]

static offset_corner_in_face(corner_index: pynodes.datasocks.Integer = None, offset=0)#

The Offset Corner in Face node retrieves other corners in the same face as the input face corner. This is like “rotating” the input corner around in its face.

Path#

  • Mesh > Topology > Offset Corner in Face Node

Outputs:#

  • #0 corner_index: Integer = 0

[Manual] [API]

static vertex_of_corner(corner_index: pynodes.datasocks.Integer = None)#

The Vertex of Corner node outputs the index of the vertex that a face corner is attached to.

Path#

  • Mesh > Topology > Vertex of Corner Node

Outputs:#

  • #0 vertex_index: Integer = 0

[Manual] [API]

pack_uv_islands(uv=(0.0, 0.0, 0.0), margin=0.001, rotate=True, selection=True)#

The Pack UV Islands Node scales islands of a UV map and moves them so they fill the UV space as much as possible.

Path#

  • Mesh > UV > Pack UV Islands Node

Outputs:#

  • #0 uv: Vector = (0.0, 0.0, 0.0)

[Manual] [API]

uv_unwrap(method='ANGLE_BASED', seam=False, margin=0.001, fill_holes=True, selection=True)#

The UV Unwrap Node generates a UV map islands based on a selection of seam edges. The node implicitly performs a Pack Islands operation upon completion, because the results may not be generally useful otherwise.

Path#

  • Mesh > UV > UV Unwrap Node

Properties#

  • method: ANGLE_BASED, CONFORMAL

Outputs:#

  • #0 uv: Vector = (0.0, 0.0, 0.0)

[Manual] [API]

distribute_points_on_faces(distribute_method='RANDOM', use_legacy_normal=False, distance_min=0.0, density_max=10.0, density=10.0, density_factor=1.0, seed=0, selection=True)#

The Distribute Points on Faces node places points on the surface of the input geometry object. Point, corner, and polygon attributes of the input geometry are transferred to the generated points. That includes vertex weights and UV maps. Additionally, the node has Normal and Rotation outputs.

Path#

  • Point > Distribute Points on Faces

Properties#

  • distribute_method: RANDOM, POISSON

Outputs:#

  • #0 points: Geometry = None

  • #1 normal: Vector = (0.0, 0.0, 0.0)

  • #2 rotation: Vector = (0.0, 0.0, 0.0)

[Manual] [API]

class pynodes.geosocks.Points(bsocket: bpy.types.NodeSocket)#

Bases: pynodes.geosocks.Geometry

A points cloud data socket

Initialization

capture_vector(value=(0.0, 0.0, 0.0))#

The Capture Attribute node stores the result of a field on a geometry, and outputs the data as a node socket so it can be used by other nodes.

  • In-Place Operation

Path#

  • Attribute > Capture Attribute Node

Outputs:#

  • #0 geometry: Geometry = None

  • #1 attribute: Vector = (0.0, 0.0, 0.0)

[Manual] [API]

to_curves(curve_group_id=0, weight=0.0)#

The Points to Curves node generates a Curves geometry by taking all points and inserting them to new curves. All Attributes from points are propagated to Curve Points. Built-in curves attributes stored in points will be ignored.

  • New in Blender 4.0.0

Path#

  • Point > Points to Curves Node

Outputs:#

  • #0 curves: Curve = None

[Manual] [API]

property domain_size#

The Domain Size outputs the size of an attribute domain on the selected geometry type, for example, the number of edges in a mesh, or the number of points in a point cloud.

Path#

  • Attribute > Domain Size Node

Outputs:#

  • #0 point_count: Integer = 0

[Manual] [API]

property point_count#

The Domain Size outputs the size of an attribute domain on the selected geometry type, for example, the number of edges in a mesh, or the number of points in a point cloud.

Path#

  • Attribute > Domain Size Node

Outputs:#

  • #0 point_count: Integer = 0

[Manual] [API]

merge_by_distance(distance=0.001, mode='ALL', selection=True)#

The Merge by Distance node merges selected mesh vertices or point cloud points within a given distance, merging surrounding geometry where necessary. This operation is similar to the Merge by Distance operator or the Weld Modifier.

Path#

  • Geometry > Operations > Merge by Distance Node

Properties#

  • mode: ALL, CONNECTED

Outputs:#

  • #0 geometry: Geometry = None

[Manual] [API]

to_vertices(selection=True)#

The Points to Vertices node generate a mesh vertex in the output geometry for each point cloud point in the input geometry.

Path#

  • Point > Points to Vertices Node

Outputs:#

  • #0 mesh: Geometry = None

[Manual] [API]

to_volume(resolution_mode='VOXEL_AMOUNT', density=1.0, voxel_size=0.3, voxel_amount=64.0, radius=0.5)#

The Points to Volume node generates a fog volume sphere around every point in the input geometry. The new volume grid is named “density”.

Path#

  • Point > Points to Volume Node

Properties:#

  • resolution_mode: VOXEL_AMOUNT, VOXEL_SIZE

Outputs:#

  • #0 volume: Geometry = None

[Manual] [API]

set_radius(radius=0.05, selection=True)#

The Set Point Radius node controls the size each selected point cloud point should display with in the viewport.

  • In-Place Operation

Path#

  • Point > Set Point Radius Node

Outputs:#

  • #0 points: Geometry = None

[Manual] [API]

class pynodes.geosocks.Instances(bsocket: bpy.types.NodeSocket)#

Bases: pynodes.geosocks.Geometry

A instances data socket

Initialization

property domain_size#

The Domain Size outputs the size of an attribute domain on the selected geometry type, for example, the number of edges in a mesh, or the number of points in a point cloud.

Path#

  • Attribute > Domain Size Node

Outputs:#

  • #5 instance_count: Integer = 0

[Manual] [API]

capture_integer(value_int=0)#

The Capture Attribute node stores the result of a field on a geometry, and outputs the data as a node socket so it can be used by other nodes.

  • In-Place Operation

Path#

  • Attribute > Capture Attribute Node

Outputs:#

  • #0 geometry: Geometry = None

  • #5 attribute: Integer = 0

[Manual] [API]

store_named_attribute(name: str, value, domain='INSTANCE', selection=True)#
sample_float_at_index(value_float=0.0, index=0, clamp=False)#

The Sample Index node retrieves values from a source geometry at a specific index.

Path#

  • Geometry > Sample > Sample Index Node

Outputs:#

  • #0 value_float: Float = 0.0

[Manual] [API]

sample_integer_at_index(value_int=0, index=0, clamp=False)#

The Sample Index node retrieves values from a source geometry at a specific index.

Path#

  • Geometry > Sample > Sample Index Node

Outputs:#

  • #1 value_int: Integer = 0

[Manual] [API]

sample_vector_at_index(value_vector=(0.0, 0.0, 0.0), index=0, clamp=False)#

The Sample Index node retrieves values from a source geometry at a specific index.

Path#

  • Geometry > Sample > Sample Index Node

Outputs:#

  • #2 value_vector: Vector = (0.0, 0.0, 0.0)

[Manual] [API]

sample_color_at_index(value_color=(0.0, 0.0, 0.0, 0.0), index=0, clamp=False)#

The Sample Index node retrieves values from a source geometry at a specific index.

Path#

  • Geometry > Sample > Sample Index Node

Outputs:#

  • #3 value_color: Color = (0.0, 0.0, 0.0, 0.0)

[Manual] [API]

sample_boolean_at_index(value_bool=False, index=0, clamp=False)#

The Sample Index node retrieves values from a source geometry at a specific index.

Path#

  • Geometry > Sample > Sample Index Node

Outputs:#

  • #4 value_bool: Boolean = False

[Manual] [API]

separate(selection=True)#

The Separate Geometry node produces two geometry outputs. Based on the Selection input, the input geometry is split between the two outputs.

Path#

  • Geometry > Operations > Separate Geometry Node

Outputs:#

  • #0 selection: Geometry = None

  • #1 inverted: Geometry = None

[Manual] [API]

scale_elements(domain='FACE', scale_mode='UNIFORM', scale=1.0, center: pynodes.datasocks.Vector = None, axis=(1.0, 0.0, 0.0), selection=True)#

The Scale Elements Node scales groups of connected edges and faces. When multiple selected faces/edges share the same vertices, they are scaled together. The center and scaling factor is averaged in this case.

Path#

  • Mesh > Operations > Scale Elements Node

Properties#

  • domain: FACE, EDGE

  • scale_mode: UNIFORM, SINGLE_AXIS

Outputs:#

  • #0 geometry: Geometry = None

[Manual] [API]

to_points(position: pynodes.datasocks.Vector = None, radius=0.05, selection=True)#

The Instances to Points node generates points at the origins of top-level instances. Attributes on the instance domain are moved to the point cloud points.

Path#

  • Instances > Instances to Points Node

Outputs:#

  • #0 points: Geometry = None

[Manual] [API]

rotate_instances(rotation=(0.0, 0.0, 0.0), pivot_point=(0.0, 0.0, 0.0), local_space=True, selection=True)#

The Rotate Instances node rotates geometry instances in local or global space.

Path#

  • Instances > Rotate Instances Node

Outputs:#

  • #0 instances: Geometry = None

[Manual] [API]

scale_instances(scale=(1.0, 1.0, 1.0), center=(0.0, 0.0, 0.0), local_space=True, selection=True)#

The Scale Instances node scales geometry instances in local or global space.

Path#

  • Instances > Scale Instances Node

Outputs:#

  • #0 instances: Geometry = None

[Manual] [API]

translate_instances(translation=(0.0, 0.0, 0.0), local_space=True, selection=True)#

The Translate Instances node moves top-level geometry instances in local or global space.

Path#

  • Instances > Translate Instances Node

Outputs:#

  • #0 instances: Geometry = None

[Manual] [API]

realize_instances(legacy_behavior=False)#

The Realize Instances node makes any instances (efficient duplicates of the same geometry) into real geometry data. This makes it possible to affect each instance individually, whereas without this node, the exact same changes are applied to every instance of the same geometry. However, performance can become much worse when the input contains many instances of complex geometry, which is a fundamental limitation when procedurally processing geometry.

Path#

  • Instances > Realize Instances Node

Outputs:#

  • #0 geometry: Geometry = None

[Manual] [API]

property rotation#

The Instance Rotation outputs the XYZ Euler rotation of each top-level instance in the local space of the modifier object.

Path#

  • Instances > Instance Rotation Node

Outputs:#

  • #0 rotation: Vector = (0.0, 0.0, 0.0)

[Manual] [API]

property scale#

The Instance Scale outputs the size of top-level instances on each axis in the local space of the modifier object.

Path#

  • Instances > Instance Scale Node

Outputs:#

  • #0 scale: Vector = (0.0, 0.0, 0.0)

[Manual] [API]

class pynodes.geosocks.Volume(bsocket: bpy.types.NodeSocket)#

Bases: pynodes.geosocks.Geometry

A volume data socket

Initialization

distribute_points_random(density=1.0, seed=0)#

The Distribute Points in Volume node creates points inside of volume grids. The node has two basic modes of operation: distributing points randomly, or in a regular grid. Both methods operate on all of the float grids in the volume.

Path#

  • Point > Distribute Points in Volume

Outputs:#

  • #0 points: Geometry = None

[Manual] [API]

distribute_points_grid(spacing=(0.3, 0.3, 0.3), threshold=0.1)#

The Distribute Points in Volume node creates points inside of volume grids. The node has two basic modes of operation: distributing points randomly, or in a regular grid. Both methods operate on all of the float grids in the volume.

Path#

  • Point > Distribute Points in Volume

Outputs:#

  • #0 points: Geometry = None

[Manual] [API]

to_mesh(resolution_mode='GRID', voxel_size=0.3, voxel_amount=64.0, threshold=0.1, adaptivity=0.0)#

The Volume to Mesh node generates a mesh on the “surface” of a volume. The surface is defined by a threshold value. All voxels with a larger value than the threshold are considered to be inside.

Path#

  • Volume > Volume to Mesh Node

Properties:#

  • resolution_mode: GRID, VOXEL_AMOUNT, VOXEL_SIZE

Outputs:#

  • #0 mesh: Geometry = None

[Manual] [API]

pynodes.geosocks.CurveArc(resolution=16, radius=1.0, start_angle=math.radians(0.0), sweep_angle=math.radians(315.0), connect_center=False, invert_arc=False)#

The Arc node generates a poly spline arc. The node has two modes, Radius and Points.

Path#

  • Curve > Primitives > Arc Node

Outputs:#

  • #0 curve: Geometry = None

[Manual] [API]

pynodes.geosocks.CurveArcPoints(resolution=16, start=(-1.0, 0.0, 0.0), middle=(0.0, 2.0, 0.0), end=(1.0, 0.0, 0.0), offset_angle=math.radians(0.0), connect_center=False, invert_arc=False)#

The Arc node generates a poly spline arc. The node has two modes, Radius and Points.

Path#

  • Curve > Primitives > Arc Node

Outputs:#

  • #0 curve: Geometry = None

  • #1 center: Vector = (0.0, 0.0, 0.0)

  • #2 normal: Vector = (0.0, 0.0, 0.0)

  • #3 radius: Float = 0.0

[Manual] [API]

pynodes.geosocks.BezierSegment(mode='POSITION', resolution=16, start=(-1.0, 0.0, 0.0), start_handle=(-0.5, 0.5, 0.0), end_handle=(0.0, 0.0, 0.0), end=(1.0, 0.0, 0.0))#

The Bézier Segment node generates a 2D Bézier spline from the given control points and handles.

Path#

  • Curve > Primitives > Bézier Segment Node

Properties#

  • mode: POSITION, OFFSET

Outputs:#

  • #0 curve: Geometry = None

[Manual] [API]

pynodes.geosocks.CurveCircle(radius=1.0, resolution=32)#

The Curve Circle node generates a poly spline circle.

Path#

  • Curve > Primitives > Curve Circle Node

Outputs:#

  • #0 curve: Geometry = None

[Manual] [API]

pynodes.geosocks.CurveCirclePoints(resolution=32, point_1=(-1.0, 0.0, 0.0), point_2=(0.0, 1.0, 0.0), point_3=(1.0, 0.0, 0.0))#

The Curve Circle node generates a poly spline circle.

Path#

  • Curve > Primitives > Curve Circle Node

Outputs:#

  • #0 curve: Geometry = None

  • #1 center: Vector = (0.0, 0.0, 0.0)

[Manual] [API]

pynodes.geosocks.CurveLine(start=(0.0, 0.0, 0.0), end=(0.0, 0.0, 1.0), direction=(0.0, 0.0, 1.0), length=1.0, mode='POINTS')#

The Curve Line node generates poly spline line.

Path#

  • Curve > Primitives > Curve Line Node

Properties#

  • mode: POINTS, DIRECTION

Outputs:#

  • #0 curve: Geometry = None

[Manual] [API]

pynodes.geosocks.CurveSpiral(resolution=32, rotations=2.0, start_radius=1.0, end_radius=2.0, height=2.0, reverse=False)#

The Curve Spiral node generates a poly spline in a spiral shape. It can be used to create springs or other similar objects. By default the spiral twists in a clockwise fashion.

Path#

  • Curve > Primitives > Curve Spiral Node

Outputs:#

  • #0 curve: Geometry = None

[Manual] [API]

pynodes.geosocks.CurveQuadraticBezier(resolution=16, start=(-1.0, 0.0, 0.0), middle=(0.0, 2.0, 0.0), end=(1.0, 0.0, 0.0))#

The Quadratic Bézier node generates a poly spline curve from the given control points. The generated shape is a parabola.

Path#

  • Curve > Primitives > Quadratic Bézier Node

Outputs:#

  • #0 curve: Geometry = None

[Manual] [API]

pynodes.geosocks.Rectangle(width=2.0, height=2.0)#

The Quadrilateral node generates a polygon with four points, with different modes.

Path#

  • Curve > Primitives > Quadrilateral Node

Outputs:#

  • #0 curve: Geometry = None

[Manual] [API]

pynodes.geosocks.Parallelogram(width=2.0, height=2.0, offset=1.0)#

The Quadrilateral node generates a polygon with four points, with different modes.

Path#

  • Curve > Primitives > Quadrilateral Node

Outputs:#

  • #0 curve: Geometry = None

[Manual] [API]

pynodes.geosocks.Trapezoid(height=2.0, bottom_width=4.0, top_width=2.0, offset=1.0)#

The Quadrilateral node generates a polygon with four points, with different modes.

Path#

  • Curve > Primitives > Quadrilateral Node

Outputs:#

  • #0 curve: Geometry = None

[Manual] [API]

pynodes.geosocks.Kite(width=2.0, bottom_height=3.0, top_height=1.0)#

The Quadrilateral node generates a polygon with four points, with different modes.

Path#

  • Curve > Primitives > Quadrilateral Node

Outputs:#

  • #0 curve: Geometry = None

[Manual] [API]

pynodes.geosocks.Quadrangle(point_1=(-1.0, -1.0, 0.0), point_2=(1.0, -1.0, 0.0), point_3=(1.0, 1.0, 0.0), point_4=(-1.0, 1.0, 0.0))#

The Quadrilateral node generates a polygon with four points, with different modes.

Path#

  • Curve > Primitives > Quadrilateral Node

Outputs:#

  • #0 curve: Geometry = None

[Manual] [API]

pynodes.geosocks.CurveStar(points=8, inner_radius=1.0, outer_radius=2.0, twist=math.radians(0.0))#

The Star node generates a poly spline in a star pattern by connecting alternating points of two circles. The points on the inner circle are offset by a rotation so that they lie in between the points on the outer circle. This offset can be changed with the twist input.

Path#

  • Curve > Primitives > Star Node

Outputs:#

  • #0 curve: Geometry = None

  • #1 outer_points: Boolean = False

[Manual] [API]

pynodes.geosocks.MeshCone(fill_type='NGON', vertices=32, side_segments=1, fill_segments=1, radius_top=0.0, radius_bottom=1.0, depth=2.0)#

The Cone node generates a cone mesh that is optionally truncated.

Path#

  • Mesh > Primitives > Cone Node

Properties#

  • fill_type: NGON, NONE, TRIANGLE_FAN

Outputs:#

  • #0 mesh: Geometry = None

  • #1 top: Boolean = False

  • #2 bottom: Boolean = False

  • #3 side: Boolean = False

  • #4 uv_map: Vector = (0.0, 0.0, 0.0)

[Manual] [API]

pynodes.geosocks.MeshCube(size=(1.0, 1.0, 1.0), vertices_x=2, vertices_y=2, vertices_z=2)#

The Cube node generates a cuboid mesh with variable side lengths and subdivisions. The inside of the mesh is still hollow like a normal cube.

Path#

  • Mesh > Primitives > Cube Node

Outputs:#

  • #0 mesh: Geometry = None

  • #1 uv_map: Vector = (0.0, 0.0, 0.0)

[Manual] [API]

pynodes.geosocks.MeshCylinder(fill_type='NGON', vertices=32, side_segments=1, fill_segments=1, radius=1.0, depth=2.0)#

The Cylinder node generates a cylinder mesh. It is similar to the Cone node but always uses the same radius for the circles at the top and bottom.

Path#

  • Mesh > Primitives > Cylinder Node

Properties#

  • fill_type: NGON, NONE, TRIANGLE_FAN

Outputs:#

  • #0 mesh: Geometry = None

  • #1 top: Boolean = False

  • #2 side: Boolean = False

  • #3 bottom: Boolean = False

  • #4 uv_map: Vector = (0.0, 0.0, 0.0)

[Manual] [API]

pynodes.geosocks.MeshGrid(size_x=1.0, size_y=1.0, vertices_x=3, vertices_y=3)#

The Grid node generates a planar mesh on the XY plane.

Path#

  • Mesh > Primitives > Grid Node

Outputs:#

  • #0 mesh: Geometry = None

  • #1 uv_map: Vector = (0.0, 0.0, 0.0)

[Manual] [API]

pynodes.geosocks.MeshIcoSphere(radius=1.0, subdivisions=1)#

The Icosphere node generates a spherical mesh that consists of equally sized triangles.

Path#

  • Mesh > Primitives > Icosphere Node

Outputs:#

  • #0 mesh: Geometry = None

  • #1 uv_map: Vector = (0.0, 0.0, 0.0)

[Manual] [API]

pynodes.geosocks.MeshCircle(vertices=32, radius=1.0, fill_type='NONE')#

The Mesh Circle node generates a circular ring of edges that is optionally filled with faces.

Path#

  • Mesh > Primitives > Mesh Circle Node

Properties#

  • fill_type: NONE, NGON, TRIANGLE_FAN

Outputs:#

  • #0 mesh: Geometry = None

[Manual] [API]

pynodes.geosocks.MeshCircleFilledNgon(vertices=32, radius=1.0)#

The Mesh Circle node generates a circular ring of edges that is optionally filled with faces.

Path#

  • Mesh > Primitives > Mesh Circle Node

Properties#

  • fill_type: NONE, NGON, TRIANGLE_FAN

Outputs:#

  • #0 mesh: Geometry = None

[Manual] [API]

pynodes.geosocks.MeshCircleFilledTriangle(vertices=32, radius=1.0)#

The Mesh Circle node generates a circular ring of edges that is optionally filled with faces.

Path#

  • Mesh > Primitives > Mesh Circle Node

Properties#

  • fill_type: NONE, NGON, TRIANGLE_FAN

Outputs:#

  • #0 mesh: Geometry = None

[Manual] [API]

pynodes.geosocks.MeshLine(start_location=(0.0, 0.0, 0.0), offset=(0.0, 0.0, 1.0), count=10)#

The Mesh Line node generates vertices in a line and connects them with edges.

Path#

  • Mesh > Primitives > Mesh Line Node

Outputs:#

  • #0 mesh: Geometry = None

[Manual] [API]

pynodes.geosocks.MeshLineEndPoints(start_location=(0.0, 0.0, 0.0), end_location=(0.0, 0.0, 1.0), count_mode='TOTAL', count=10, resolution=1.0)#

The Mesh Line node generates vertices in a line and connects them with edges.

Path#

  • Mesh > Primitives > Mesh Line Node

Properties#

  • count_mode: TOTAL, RESOLUTION

Outputs:#

  • #0 mesh: Geometry = None

[Manual] [API]

pynodes.geosocks.MeshUVSphere(segments=32, rings=16, radius=1.0)#

The UV Sphere node generates a spherical mesh mostly out of quads except for triangles at the top and bottom.

Path#

  • Mesh > Primitives > UV Sphere Node

Outputs:#

  • #0 mesh: Geometry = None

  • #1 uv_map: Vector = (0.0, 0.0, 0.0)

[Manual] [API]

pynodes.geosocks.InputPoints(count=1, position=(0.0, 0.0, 0.0), radius=0.1)#

The Points node generate a point cloud with positions and radii defined by fields.

Path#

  • Point > Points Node

Outputs:#

  • #0 geometry: Geometry = None

[Manual] [API]

pynodes.geosocks.VolumeCube(density=1.0, background=0.0, min=(-1.0, -1.0, -1.0), max=(1.0, 1.0, 1.0), resolution_x=32, resolution_y=32, resolution_z=32)#

The Volume Cube generates a volume from scratch by evaluating an input field on every single voxel in a rectangular prism. The Density field defines the output volume grid’s value at every voxel. The field can only depend on the Position Node.

Path#

  • Volume > Volume Cube Node

Outputs:#

  • #0 volume: Geometry = None

[Manual] [API]

pynodes.geosocks.join(*items: pynodes.geosocks.Geometry)#

The Join Geometry node merges separately generated geometries into a single one. If the geometry inputs contain different types of data, the output will also contain different data types.

Path#

  • Geometry > Join Geometry Node

Outputs:#

  • #0 geometry: Geometry = None

[Manual] [API]

pynodes.geosocks.join_to_instances(*items: pynodes.geosocks.Geometry)#

The Geometry to Instance node turns every connected input geometry into an instance. Visually, the node has a similar result as the Join Geometry Node, but it outputs the result as separate instances instead. The geometry data itself isn’t actually joined.

Path#

  • Geometry > Geometry to Instance Node

Outputs:#

  • #0 instances: Geometry = None

[Manual] [API]

pynodes.geosocks.SplineParameter()#

The Spline Parameter node outputs how far along each spline a control point is. The Factor output is different from dividing the index by the total number of control points, because the control points might not be equally spaced along the curve.

Path#

  • Curve > Read > Spline Parameter Node

Outputs:#

  • #0 factor: Float = 0.0

  • #1 length: Float = 0.0

  • #2 index: Integer = 0

[Manual] [API]