pf.nodes

Submodules

Members

class procfunc.nodes.ProcNode[source]

Bases: Generic[T]

Result datatype for all functions that return shader nodes, geometry nodes or compositor nodes.

ProcNode stores the data necessary to construct a blender nodegroup upon later execution.

ProcNode defines dunders to allow concise construction of nodegraphs e.g. __getattr__ and __add__, which map to appropriate blender nodes.

__init__(node, known_value_type=None)[source]
Parameters:
  • node (Node)

  • known_value_type (type | None)

astype(dtype)[source]

Marks a node as having been converted to a different internal data type, similarly to np.astype

Currently this just adds runtime NodeType data to help subsequent type-inferred functions/operators make a correct choice of data_type.

e.g noise.color + (0.5, 0.5, 0.5) fails but noise.color.astype(t.Vector) + (0.5, 0.5, 0.5) works, because + is defined for Vector but not Color

Parameters:

dtype (type)

Return type:

ProcNode

classmethod from_nodetype(node_type, inputs, attrs)[source]
Parameters:
Return type:

ProcNode

item()[source]
Return type:

Node

property x: ProcNode[float]
property y: ProcNode[float]
property z: ProcNode[float]

Supported special methods: __add__, __mod__, __mul__, __pow__, __radd__, __req__, __rge__, __rgt__, __rle__, __rlt__, __rmod__, __rmul__, __rne__, __rpow__, __rsub__, __rtruediv__, __sub__, __truediv__

class procfunc.nodes.Shader[source]

Bases: object

Used only for type-annotating nodes as returning a shader.

Anythnig that would be a green socket in a SHADER nodegraph should be ProcNode[Shader]

class procfunc.nodes.NodeDataType[source]

Bases: Enum

INT = 'INT'
FLOAT = 'FLOAT'
RGBA = 'RGBA'
FLOAT_VECTOR = 'FLOAT_VECTOR'
FLOAT_VECTOR_2D = 'FLOAT2'
ROTATION = 'ROTATION'
STRING = 'STRING'
BOOLEAN = 'BOOLEAN'
FLOAT_MATRIX = 'FLOAT_MATRIX'
OBJECT = 'OBJECT'
GEOMETRY = 'GEOMETRY'
SHADER = 'SHADER'
COLLECTION = 'COLLECTION'
MATERIAL = 'MATERIAL'
classmethod from_str(s)[source]
Parameters:

s (str)

Return type:

NodeDataType

Supported special methods: __contains__, __getitem__, __iter__, __len__

class procfunc.nodes.NodeGroupType[source]

Bases: Enum

GEOMETRY = 'GeometryNodeTree'
SHADER = 'ShaderNodeTree'
COMPOSITOR = 'CompositorNodeTree'
TEXTURE = 'TextureNodeTree'

Supported special methods: __contains__, __getitem__, __iter__, __len__

class procfunc.nodes.SocketType[source]

Bases: Enum

FLOAT = 'NodeSocketFloat'
INT = 'NodeSocketInt'
VECTOR = 'NodeSocketVector'
ROTATION = 'NodeSocketRotation'
COLOR = 'NodeSocketColor'
BOOLEAN = 'NodeSocketBool'
STRING = 'NodeSocketString'
GEOMETRY = 'NodeSocketGeometry'
SHADER = 'NodeSocketShader'
OBJECT = 'NodeSocketObject'
COLLECTION = 'NodeSocketCollection'
TEXTURE = 'NodeSocketTexture'
MATERIAL = 'NodeSocketMaterial'

Supported special methods: __contains__, __getitem__, __iter__, __len__

procfunc.nodes.as_nodegroup(graph, node_tree_type)[source]
Parameters:
Return type:

NodeGroup

procfunc.nodes.to_aliases(geometry)[source]

Convert instanced geometry into aliases - separate objects sharing the same mesh data.

Uses depsgraph to extract instance transforms and creates one bpy.data.object per instance. All aliases point directly to the original mesh data from the scene - no copying occurs. Each alias has its own transform (position, rotation, scale) but shares mesh data.

Note: Requires geometry nodes that use actual bpy.data.collections with real objects (via collection_info node), not just joined geometry. The instances must be visible in the viewport (show_viewport=True) to be detected by the depsgraph.

Parameters:

geometry (ProcNode[MeshObject]) – node producing instanced geometry (e.g., from instance_on_points)

Returns:

list of MeshObject, one per instance, with each instance pointing to the original mesh data from the scene

Return type:

list[MeshObject]

procfunc.nodes.to_compositor(results)[source]
Parameters:

results (dict[str, ProcNode])

procfunc.nodes.to_curve_object(geometry)[source]

WARNING: currently discards any bezier config or knots, only extracts the points.Any

TODO: Need a better geonodes -> curve op from blender, or need to engineer this in via attribute extraction.

Parameters:

geometry (ProcNode[CurveObject])

Return type:

CurveObject

procfunc.nodes.to_environment(surface=None, volume=None)[source]
Parameters:
Return type:

World

procfunc.nodes.to_light(light, surface)[source]

Apply a shader node graph to a light’s internal node tree.

Parameters:
Return type:

LightObject

procfunc.nodes.to_mesh_object(geometry, _skip_apply=False)[source]
Parameters:
Return type:

MeshObject

procfunc.nodes.to_mesh_object_with_attributes(geometry, attributes=None)[source]
Parameters:
Return type:

tuple[MeshObject, dict[str, Any]]

procfunc.nodes.to_objects_multi(geometries, attributes=None)[source]

Convert a nodegroup which has multiple output geometries into multiple realized objects.

If the objects should have any attributes, provide node definitions for them in the ‘attributes’ argument.

Parameters:
  • geometries (dict[str, ProcNode[MeshObject]]) – named output geometry nodes to be converted into objects

  • attributes (dict[str, dict[str, ProcNode[Vector | Color | float | int | str | bool | Matrix | Quaternion]]] | None) – named data attributes which should be annotated on those objects. keys must be a subset of the keys of ‘geometries’

  • input_obj – optional input object to use for the geometry nodegroups

Returns:

dict of {output_key: object}. output keys are the same as the keys of ‘geometries’

Return type:

  • result_objects

procfunc.nodes.node_function(func)[source]
Parameters:

func (Callable)

pf.nodes.compositor

Auto-generated Compositor Node bindings for Blender

class procfunc.nodes.compositor.RenderLayersResult[source]

Bases: object

__init__(base)[source]
Parameters:

base (ProcNode)

Supported special methods: __getattr__

procfunc.nodes.compositor.render_layers()[source]

Uses a RenderLayers Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/input/scene/render_layers.html

Return type:

RenderLayersResult

procfunc.nodes.compositor.alpha_over(fac=1.0, image_0=(1, 1, 1, 1), image_1=(1, 1, 1, 1), premul=0.0, use_premultiply=False)[source]

Uses a AlphaOver Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/color/mix/alpha_over.html

Parameters:
Return type:

ProcNode

procfunc.nodes.compositor.anti_aliasing(image=(1, 1, 1, 1), contrast_limit=0.2, corner_rounding=0.25, threshold=1.0)[source]

Uses a AntiAliasing Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/filter/anti_aliasing.html

Parameters:
Return type:

ProcNode

procfunc.nodes.compositor.bilateralblur(image=(1, 1, 1, 1), determinator=(1, 1, 1, 1), iterations=1, sigma_color=0.3, sigma_space=5.0)[source]

Uses a Bilateralblur Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/filter/blur/bilateral_blur.html

Parameters:
Return type:

ProcNode

procfunc.nodes.compositor.blur(image=(1, 1, 1, 1), size=1.0, aspect_correction='NONE', factor=0.0, factor_x=0.0, factor_y=0.0, filter_type='GAUSS', size_x=0, size_y=0, use_bokeh=False, use_extended_bounds=False, use_gamma_correction=False, use_relative=False, use_variable_size=False)[source]

Uses a Blur Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/filter/blur/blur.html

Parameters:
Return type:

ProcNode

procfunc.nodes.compositor.bokeh_blur(image=(0.8, 0.8, 0.8, 1), bokeh=(1, 1, 1, 1), size=1.0, bounding_box=1.0, blur_max=16.0, use_extended_bounds=False, use_variable_size=False)[source]

Uses a BokehBlur Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/filter/blur/bokeh_blur.html

Parameters:
Return type:

ProcNode

procfunc.nodes.compositor.bokeh_image(angle=0.0, catadioptric=0.0, flaps=5, rounding=0.0, shift=0.0)[source]

Uses a BokehImage Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/input/bokeh_image.html

Parameters:
Return type:

ProcNode

procfunc.nodes.compositor.box_mask(mask=0.0, value=1.0, mask_height=0.1, mask_type='ADD', mask_width=0.2, rotation=0.0, x=0.5, y=0.5)[source]

Uses a BoxMask Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/mask/box_mask.html

Parameters:
Return type:

ProcNode

procfunc.nodes.compositor.bright_contrast(image=(1, 1, 1, 1), bright=0.0, contrast=0.0, use_premultiply=True)[source]

Uses a BrightContrast Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/color/adjust/bright_contrast.html

Parameters:
Return type:

ProcNode

procfunc.nodes.compositor.channel_matte(image=(1, 1, 1, 1), color_space='RGB', limit_channel='R', limit_max=1.0, limit_method='MAX', limit_min=0.0, matte_channel='G')[source]

Uses a ChannelMatte Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/keying/channel_key.html

Parameters:
  • image (ProcNode[Color] | Color)

  • color_space (Literal['RGB', 'HSV', 'YUV', 'YCC'])

  • limit_channel (Literal['R', 'G', 'B'])

  • limit_max (float)

  • limit_method (Literal['SINGLE', 'MAX'])

  • limit_min (float)

  • matte_channel (Literal['R', 'G', 'B'])

Return type:

ProcNode

procfunc.nodes.compositor.chroma_matte(image=(1, 1, 1, 1), key_color=(1, 1, 1, 1), gain=1.0, lift=0.0, shadow_adjust=0.0, threshold=0.174533, tolerance=0.523599)[source]

Uses a ChromaMatte Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/keying/chroma_key.html

Parameters:
Return type:

ProcNode

procfunc.nodes.compositor.color_balance(fac=1.0, image=(1, 1, 1, 1), correction_method='LIFT_GAMMA_GAIN', gain=(1.0, 1.0, 1.0), gamma=(1.0, 1.0, 1.0), lift=(1.0, 1.0, 1.0), offset=(0.0, 0.0, 0.0), offset_basis=0.0, power=(1.0, 1.0, 1.0), slope=(1.0, 1.0, 1.0))[source]

Uses a ColorBalance Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/color/adjust/color_balance.html

Parameters:
Return type:

ProcNode

procfunc.nodes.compositor.color_correction(image=(1, 1, 1, 1), mask=1.0, blue=True, green=True, highlights_contrast=1.0, highlights_gain=1.0, highlights_gamma=1.0, highlights_lift=0.0, highlights_saturation=1.0, master_contrast=1.0, master_gain=1.0, master_gamma=1.0, master_lift=0.0, master_saturation=1.0, midtones_contrast=1.0, midtones_end=0.7, midtones_gain=1.0, midtones_gamma=1.0, midtones_lift=0.0, midtones_saturation=1.0, midtones_start=0.2, red=True, shadows_contrast=1.0, shadows_gain=1.0, shadows_gamma=1.0, shadows_lift=0.0, shadows_saturation=1.0)[source]

Uses a ColorCorrection Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/color/adjust/color_correction.html

Parameters:
Return type:

ProcNode

procfunc.nodes.compositor.color_matte(image=(1, 1, 1, 1), key_color=(1, 1, 1, 1), color_hue=0.01, color_saturation=0.1, color_value=0.1)[source]

Uses a ColorMatte Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/keying/color_key.html

Parameters:
Return type:

ProcNode

procfunc.nodes.compositor.color_spill(image=(1, 1, 1, 1), fac=1.0, channel='G', limit_channel='R', limit_method='SIMPLE', ratio=1.0, unspill_blue=0.0, unspill_green=0.0, unspill_red=0.0, use_unspill=False)[source]

Uses a ColorSpill Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/keying/color_spill.html

Parameters:
Return type:

ProcNode

procfunc.nodes.compositor.comb_hsva(h=0.0, s=0.0, v=0.0, a=1.0)[source]

Uses a CombHSVA Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/color/mix/combine_color.html

Parameters:
Return type:

ProcNode

procfunc.nodes.compositor.comb_rgba(r=0.0, g=0.0, b=0.0, a=1.0)[source]

Uses a CombRGBA Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/color/mix/combine_color.html

Parameters:
Return type:

ProcNode

procfunc.nodes.compositor.comb_ycca(y=0.0, cb=0.5, cr=0.5, a=1.0, mode='ITUBT709')[source]

Uses a CombYCCA Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/color/mix/combine_color.html

Parameters:
Return type:

ProcNode

procfunc.nodes.compositor.comb_yuva(y=0.0, u=0.0, v=0.0, a=1.0)[source]

Uses a CombYUVA Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/color/mix/combine_color.html

Parameters:
Return type:

ProcNode

procfunc.nodes.compositor.combine_color(red=0.0, green=0.0, blue=0.0, alpha=1.0, mode='RGB', ycc_mode='ITUBT709')[source]

Uses a CombineColor Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/color/mix/combine_color.html

Parameters:
Return type:

ProcNode

procfunc.nodes.compositor.combine_xyz(x=0.0, y=0.0, z=0.0)[source]

Uses a CombineXYZ Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/vector/combine_xyz.html

Parameters:
Return type:

ProcNode

procfunc.nodes.compositor.composite(image=(0, 0, 0, 1), alpha=1.0, use_alpha=True)[source]

Uses a Composite Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/output/composite.html

Parameters:
Return type:

ProcNode

procfunc.nodes.compositor.convert_color_space(image=(1, 1, 1, 1), from_color_space='Linear Rec.709', to_color_space='Linear Rec.709')[source]

Uses a ConvertColorSpace Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/color/convert_colorspace.html

Parameters:
  • image (ProcNode[Color] | Color)

  • from_color_space (Literal['ACES2065-1', 'ACEScg', 'AgX Base Display P3', 'AgX Base Rec.1886', 'AgX Base Rec.2020', 'AgX Base sRGB', 'AgX Log', 'Display P3', 'Filmic Log', 'Filmic sRGB', 'Khronos PBR Neutral sRGB', 'Linear CIE-XYZ D65', 'Linear CIE-XYZ E', 'Linear DCI-P3 D65', 'Linear FilmLight E-Gamut', 'Linear Rec.2020', 'Linear Rec.709', 'Non-Color', 'Rec.1886', 'Rec.2020', 'sRGB'])

  • to_color_space (Literal['ACES2065-1', 'ACEScg', 'AgX Base Display P3', 'AgX Base Rec.1886', 'AgX Base Rec.2020', 'AgX Base sRGB', 'AgX Log', 'Display P3', 'Filmic Log', 'Filmic sRGB', 'Khronos PBR Neutral sRGB', 'Linear CIE-XYZ D65', 'Linear CIE-XYZ E', 'Linear DCI-P3 D65', 'Linear FilmLight E-Gamut', 'Linear Rec.2020', 'Linear Rec.709', 'Non-Color', 'Rec.1886', 'Rec.2020', 'sRGB'])

Return type:

ProcNode

procfunc.nodes.compositor.corner_pin(image=(1, 1, 1, 1), upper_left=(0, 1, 0), upper_right=(1, 1, 0), lower_left=(0, 0, 0), lower_right=(1, 0, 0))[source]

Uses a CornerPin Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/transform/corner_pin.html

Parameters:
Return type:

ProcNode

procfunc.nodes.compositor.crop(image=(1, 1, 1, 1), max_x=0, max_y=0, min_x=0, min_y=0, rel_max_x=0.0, rel_max_y=0.0, rel_min_x=0.0, rel_min_y=0.0, relative=False, use_crop_size=False)[source]

Uses a Crop Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/transform/crop.html

Parameters:
Return type:

ProcNode

procfunc.nodes.compositor.cryptomatte(image=(0, 0, 0, 1), crypto_00=(0, 0, 0, 1), crypto_01=(0, 0, 0, 1), crypto_02=(0, 0, 0, 1), add=(0.0, 0.0, 0.0), matte_id='', remove=(0.0, 0.0, 0.0))[source]

Uses a Cryptomatte Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/mask/cryptomatte.html

Parameters:
Return type:

ProcNode

procfunc.nodes.compositor.curve_rgb(fac=1.0, image=(1, 1, 1, 1), black_level=(0, 0, 0, 1), white_level=(1, 1, 1, 1))[source]

Uses a CurveRGB Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/color/adjust/rgb_curves.html

Parameters:
Return type:

ProcNode

procfunc.nodes.compositor.curve_vec(vector=(0, 0, 0))[source]

Uses a CurveVec Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/color/adjust/rgb_curves.html

Parameters:

vector (ProcNode[Vector] | Vector)

Return type:

ProcNode

procfunc.nodes.compositor.d_blur(image=(1, 1, 1, 1), angle=0.0, center_x=0.5, center_y=0.5, distance=0.0, iterations=1, spin=0.0, zoom=0.0)[source]

Uses a DBlur Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/filter/blur/directional_blur.html

Parameters:
Return type:

ProcNode

procfunc.nodes.compositor.defocus(image=(1, 1, 1, 1), z=1.0, angle=0.0, blur_max=16.0, bokeh='CIRCLE', f_stop=128.0, scene=None, threshold=1.0, use_gamma_correction=False, use_preview=True, use_zbuffer=False, z_scale=1.0)[source]

Uses a Defocus Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/filter/blur/defocus.html

Parameters:
Return type:

ProcNode

procfunc.nodes.compositor.denoise(image=(1, 1, 1, 1), normal=(0, 0, 0), albedo=(1, 1, 1, 1), prefilter='ACCURATE', use_hdr=True)[source]

Uses a Denoise Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/filter/denoise.html

Parameters:
Return type:

ProcNode

procfunc.nodes.compositor.despeckle(fac=1.0, image=(1, 1, 1, 1), threshold=0.5, threshold_neighbor=0.5)[source]

Uses a Despeckle Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/filter/despeckle.html

Parameters:
Return type:

ProcNode

procfunc.nodes.compositor.diff_matte(image_1=(1, 1, 1, 1), image_2=(1, 1, 1, 1), falloff=0.1, tolerance=0.1)[source]

Uses a DiffMatte Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/keying/difference_key.html

Parameters:
Return type:

ProcNode

procfunc.nodes.compositor.dilate_erode(mask=0.0, distance=0, edge=0.0, falloff='SMOOTH', mode='STEP')[source]

Uses a DilateErode Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/filter/dilate_erode.html

Parameters:
  • mask (ProcNode[float] | float)

  • distance (int)

  • edge (float)

  • falloff (Literal['SMOOTH', 'SPHERE', 'ROOT', 'INVERSE_SQUARE', 'SHARP', 'LINEAR'])

  • mode (Literal['STEP', 'THRESHOLD', 'DISTANCE', 'FEATHER'])

Return type:

ProcNode

procfunc.nodes.compositor.displace(image=(1, 1, 1, 1), vector=(1, 1, 1), x_scale=0.0, y_scale=0.0)[source]

Uses a Displace Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/transform/displace.html

Parameters:
Return type:

ProcNode

procfunc.nodes.compositor.distance_matte(image=(1, 1, 1, 1), key_color=(1, 1, 1, 1), channel='RGB', falloff=0.1, tolerance=0.1)[source]

Uses a DistanceMatte Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/keying/distance_key.html

Parameters:
Return type:

ProcNode

procfunc.nodes.compositor.double_edge_mask(inner_mask=0.8, outer_mask=0.8, edge_mode='BLEED_OUT', inner_mode='ALL')[source]

Uses a DoubleEdgeMask Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/mask/double_edge_mask.html

Parameters:
Return type:

ProcNode

procfunc.nodes.compositor.ellipse_mask(mask=0.0, value=1.0, mask_height=0.1, mask_type='ADD', mask_width=0.2, rotation=0.0, x=0.5, y=0.5)[source]

Uses a EllipseMask Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/mask/ellipse_mask.html

Parameters:
Return type:

ProcNode

procfunc.nodes.compositor.exposure(image=(1, 1, 1, 1), exposure=0.0)[source]

Uses a Exposure Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/color/adjust/exposure.html

Parameters:
Return type:

ProcNode

procfunc.nodes.compositor.filter(fac=1.0, image=(1, 1, 1, 1), filter_type='SOFTEN')[source]

Uses a Filter Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/filter/filter.html

Parameters:
  • fac (ProcNode[float] | float)

  • image (ProcNode[Color] | Color)

  • filter_type (Literal['SOFTEN', 'SHARPEN', 'SHARPEN_DIAMOND', 'LAPLACE', 'SOBEL', 'PREWITT', 'KIRSCH', 'SHADOW'])

Return type:

ProcNode

procfunc.nodes.compositor.flip(image=(1, 1, 1, 1), axis='X')[source]

Uses a Flip Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/transform/flip.html

Parameters:
Return type:

ProcNode

procfunc.nodes.compositor.gamma(image=(1, 1, 1, 1), gamma=1.0)[source]

Uses a Gamma Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/color/adjust/gamma.html

Parameters:
Return type:

ProcNode

procfunc.nodes.compositor.glare(image=(1, 1, 1, 1), angle_offset=0.0, color_modulation=0.25, fade=0.9, glare_type='STREAKS', iterations=3, mix=0.0, quality='MEDIUM', size=8, streaks=4, threshold=1.0, use_rotate_45=True)[source]

Uses a Glare Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/filter/glare.html

Parameters:
  • image (ProcNode[Color] | Color)

  • angle_offset (float)

  • color_modulation (float)

  • fade (float)

  • glare_type (Literal['BLOOM', 'GHOSTS', 'STREAKS', 'FOG_GLOW', 'SIMPLE_STAR'])

  • iterations (int)

  • mix (float)

  • quality (Literal['HIGH', 'MEDIUM', 'LOW'])

  • size (int)

  • streaks (int)

  • threshold (float)

  • use_rotate_45 (bool)

Return type:

ProcNode

procfunc.nodes.compositor.group(node_tree=None)[source]

Uses a Group Compositor Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/group.html

Parameters:

node_tree (Any)

Return type:

ProcNode

procfunc.nodes.compositor.hue_correct(fac=1.0, image=(1, 1, 1, 1))[source]

Uses a HueCorrect Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/color/adjust/hue_correct.html

Parameters:
Return type:

ProcNode

procfunc.nodes.compositor.hue_sat(image=(1, 1, 1, 1), hue=0.5, saturation=1.0, value=1.0, fac=1.0)[source]

Uses a HueSat Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/color/adjust/hue_saturation.html

Parameters:
Return type:

ProcNode

procfunc.nodes.compositor.id_mask(id_value=1.0, index=0, use_antialiasing=False)[source]

Uses a IDMask Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/mask/id_mask.html

Parameters:
Return type:

ProcNode

procfunc.nodes.compositor.image(frame_duration=1, frame_offset=0, frame_start=1, image=None, layer=None, view=None, use_auto_refresh=True, use_cyclic=False, use_straight_alpha_output=False)[source]

Uses a Image Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/input/image.html

Parameters:
  • frame_duration (int)

  • frame_offset (int)

  • frame_start (int)

  • image (Any)

  • layer (Literal['PLACEHOLDER'] | None)

  • view (Literal['ALL'] | None)

  • use_auto_refresh (bool)

  • use_cyclic (bool)

  • use_straight_alpha_output (bool)

Return type:

ProcNode

procfunc.nodes.compositor.inpaint(image=(1, 1, 1, 1), distance=0)[source]

Uses a Inpaint Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/filter/inpaint.html

Parameters:
Return type:

ProcNode

procfunc.nodes.compositor.invert(fac=1.0, color=(1, 1, 1, 1), invert_alpha=False, invert_rgb=True)[source]

Uses a Invert Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/color/invert_color.html

Parameters:
Return type:

ProcNode

procfunc.nodes.compositor.keying(image=(0.8, 0.8, 0.8, 1), key_color=(1, 1, 1, 1), garbage_matte=0.0, core_matte=0.0, blur_post=0, blur_pre=0, clip_black=0.0, clip_white=1.0, despill_balance=0.5, despill_factor=1.0, dilate_distance=0, edge_kernel_radius=3, edge_kernel_tolerance=0.1, feather_distance=0, feather_falloff='SMOOTH', screen_balance=0.5)[source]

Uses a Keying Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/keying/keying.html

Parameters:
Return type:

ProcNode

procfunc.nodes.compositor.keying_screen(clip=None, smoothness=0.0, tracking_object='')[source]

Uses a KeyingScreen Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/keying/keying_screen.html

Parameters:
Return type:

ProcNode

procfunc.nodes.compositor.kuwahara(image=(1, 1, 1, 1), size=6.0, eccentricity=1.0, sharpness=0.5, uniformity=4, use_high_precision=False, variation='CLASSIC')[source]

Uses a Kuwahara Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/filter/kuwahara.html

Parameters:
Return type:

ProcNode

procfunc.nodes.compositor.lensdist(image=(1, 1, 1, 1), distortion=0.0, dispersion=0.0, use_fit=False, use_jitter=False, use_projector=False)[source]

Uses a Lensdist Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/transform/lens_distortion.html

Parameters:
Return type:

ProcNode

procfunc.nodes.compositor.levels(image=(0, 0, 0, 1), channel='COMBINED_RGB')[source]

Uses a Levels Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/utilities/levels.html

Parameters:
  • image (ProcNode[Color] | Color)

  • channel (Literal['COMBINED_RGB', 'RED', 'GREEN', 'BLUE', 'LUMINANCE'])

Return type:

ProcNode

procfunc.nodes.compositor.luma_matte(image=(1, 1, 1, 1), limit_max=1.0, limit_min=0.0)[source]

Uses a LumaMatte Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/keying/luminance_key.html

Parameters:
Return type:

ProcNode

procfunc.nodes.compositor.map_range(value=1.0, from_min=0.0, from_max=1.0, to_min=0.0, to_max=1.0)[source]

Uses a MapRange Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/utilities/map_range.html

Parameters:
Return type:

ProcNode

procfunc.nodes.compositor.map_uv(image=(1, 1, 1, 1), uv=(1, 0, 0), alpha=0, filter_type='ANISOTROPIC')[source]

Uses a MapUV Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/transform/map_uv.html

Parameters:
Return type:

ProcNode

procfunc.nodes.compositor.map_value(value=1.0, max=(1.0,), min=(0.0,), offset=(0.0,), size=(1.0,), use_max=False, use_min=False)[source]

Uses a MapValue Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/utilities/map_value.html

Parameters:
Return type:

ProcNode

procfunc.nodes.compositor.mask(mask=None, motion_blur_samples=16, motion_blur_shutter=0.5, size_source='SCENE', size_x=256, size_y=256, use_feather=True, use_motion_blur=False)[source]

Uses a Mask Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/input/mask.html

Parameters:
  • mask (Any)

  • motion_blur_samples (int)

  • motion_blur_shutter (float)

  • size_source (Literal['SCENE', 'FIXED', 'FIXED_SCENE'])

  • size_x (int)

  • size_y (int)

  • use_feather (bool)

  • use_motion_blur (bool)

Return type:

ProcNode

procfunc.nodes.compositor.math(value_0=0.5, value_1=0.5)[source]

Uses a Math Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/utilities/math.html

Parameters:
Return type:

ProcNode

procfunc.nodes.compositor.mix_rgb(fac=1.0, image_0=(1, 1, 1, 1), image_1=(1, 1, 1, 1), blend_type='MIX', use_alpha=False)[source]

Uses a MixRGB Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/color/mix/mix_color.html

Parameters:
  • fac (ProcNode[float] | float)

  • image_0 (ProcNode[Color] | Color)

  • image_1 (ProcNode[Color] | Color)

  • blend_type (Literal['MIX', 'DARKEN', 'MULTIPLY', 'BURN', 'LIGHTEN', 'SCREEN', 'DODGE', 'ADD', 'OVERLAY', 'SOFT_LIGHT', 'LINEAR_LIGHT', 'DIFFERENCE', 'EXCLUSION', 'SUBTRACT', 'DIVIDE', 'HUE', 'SATURATION', 'COLOR', 'VALUE'])

  • use_alpha (bool)

Return type:

ProcNode

class procfunc.nodes.compositor.MovieClipResult[source]

Bases: NamedTuple

MovieClipResult(image, alpha, offset_x, offset_y, scale, angle)

image: ProcNode[Color]

Alias for field number 0

alpha: ProcNode[float]

Alias for field number 1

offset_x: ProcNode[float]

Alias for field number 2

offset_y: ProcNode[float]

Alias for field number 3

scale: ProcNode[float]

Alias for field number 4

angle: ProcNode[float]

Alias for field number 5

Supported special methods: __add__, __contains__, __getitem__, __getnewargs__, __iter__, __len__, __mul__, __rmul__

procfunc.nodes.compositor.movie_clip(clip=None)[source]

Uses a MovieClip Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/input/movie_clip.html

Parameters:

clip (Any)

Return type:

MovieClipResult

procfunc.nodes.compositor.movie_distortion(image=(0.8, 0.8, 0.8, 1), clip=None, distortion_type='UNDISTORT')[source]

Uses a MovieDistortion Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/transform/movie_distortion.html

Parameters:
  • image (ProcNode[Color] | Color)

  • clip (Any)

  • distortion_type (Literal['UNDISTORT', 'DISTORT'])

Return type:

ProcNode

procfunc.nodes.compositor.normal(normal=(0, 0, 1))[source]

Uses a Normal Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/vector/normal.html

Parameters:

normal (ProcNode[Vector] | Vector)

Return type:

ProcNode

procfunc.nodes.compositor.normalize(value=1.0)[source]

Uses a Normalize Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/utilities/normalize.html

Parameters:

value (ProcNode[float] | float)

Return type:

ProcNode

procfunc.nodes.compositor.output_file(active_input_index=0, base_path='/tmp/', slot_paths=None, format=None, **kwargs)[source]

Uses a OutputFile Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/output/file_output.html

Parameters:
  • active_input_index (int)

  • base_path (str)

  • slot_paths (dict | None)

  • format (dict | None)

Return type:

ProcNode

procfunc.nodes.compositor.pixelate(color=(0.8, 0.8, 0.8, 1), pixel_size=1)[source]

Uses a Pixelate Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/filter/pixelate.html

Parameters:
Return type:

ProcNode

procfunc.nodes.compositor.plane_track_deform(image=(0.8, 0.8, 0.8, 1), clip=None, motion_blur_samples=16, motion_blur_shutter=0.5, plane_track_name='', tracking_object='', use_motion_blur=False)[source]

Uses a PlaneTrackDeform Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/tracking/plane_track_deform.html

Parameters:
  • image (ProcNode[Color] | Color)

  • clip (Any)

  • motion_blur_samples (int)

  • motion_blur_shutter (float)

  • plane_track_name (str)

  • tracking_object (str)

  • use_motion_blur (bool)

Return type:

ProcNode

procfunc.nodes.compositor.posterize(image=(1, 1, 1, 1), steps=8.0)[source]

Uses a Posterize Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/filter/posterize.html

Parameters:
Return type:

ProcNode

procfunc.nodes.compositor.premul_key(image=(1, 1, 1, 1), mapping='STRAIGHT_TO_PREMUL')[source]

Uses a PremulKey Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/color/alpha_convert.html

Parameters:
  • image (ProcNode[Color] | Color)

  • mapping (Literal['STRAIGHT_TO_PREMUL', 'PREMUL_TO_STRAIGHT'])

Return type:

ProcNode

procfunc.nodes.compositor.rgb()[source]

Uses a RGB Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/input/constant/rgb.html

Return type:

ProcNode

procfunc.nodes.compositor.rgb_to_bw(image=(0.8, 0.8, 0.8, 1))[source]

Uses a RGBToBW Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/color/rgb_to_bw.html

Parameters:

image (ProcNode[Color] | Color)

Return type:

ProcNode

procfunc.nodes.compositor.rotate(image=(1, 1, 1, 1), degr=0.0, filter_type='BILINEAR')[source]

Uses a Rotate Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/transform/rotate.html

Parameters:
Return type:

ProcNode

procfunc.nodes.compositor.scale(image=(1, 1, 1, 1), x=1.0, y=1.0, frame_method='STRETCH', offset_x=0.0, offset_y=0.0, space='RELATIVE')[source]

Uses a Scale Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/transform/scale.html

Parameters:
Return type:

ProcNode

class procfunc.nodes.compositor.SceneTimeResult[source]

Bases: NamedTuple

SceneTimeResult(seconds, frame)

seconds: ProcNode[float]

Alias for field number 0

frame: ProcNode[float]

Alias for field number 1

Supported special methods: __add__, __contains__, __getitem__, __getnewargs__, __iter__, __len__, __mul__, __rmul__

procfunc.nodes.compositor.scene_time()[source]

Uses a SceneTime Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/input/scene/scene_time.html

Return type:

SceneTimeResult

class procfunc.nodes.compositor.SepHsvaResult[source]

Bases: NamedTuple

SepHsvaResult(h, s, v, a)

h: ProcNode[float]

Alias for field number 0

s: ProcNode[float]

Alias for field number 1

v: ProcNode[float]

Alias for field number 2

a: ProcNode[float]

Alias for field number 3

Supported special methods: __add__, __contains__, __getitem__, __getnewargs__, __iter__, __len__, __mul__, __rmul__

procfunc.nodes.compositor.sep_hsva(image=(1, 1, 1, 1))[source]

Uses a SepHSVA Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/color/mix/separate_color.html

Parameters:

image (ProcNode[Color] | Color)

Return type:

SepHsvaResult

class procfunc.nodes.compositor.SepRgbaResult[source]

Bases: NamedTuple

SepRgbaResult(r, g, b, a)

r: ProcNode[float]

Alias for field number 0

g: ProcNode[float]

Alias for field number 1

b: ProcNode[float]

Alias for field number 2

a: ProcNode[float]

Alias for field number 3

Supported special methods: __add__, __contains__, __getitem__, __getnewargs__, __iter__, __len__, __mul__, __rmul__

procfunc.nodes.compositor.sep_rgba(image=(1, 1, 1, 1))[source]

Uses a SepRGBA Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/color/mix/separate_color.html

Parameters:

image (ProcNode[Color] | Color)

Return type:

SepRgbaResult

class procfunc.nodes.compositor.SepYccaResult[source]

Bases: NamedTuple

SepYccaResult(y, cb, cr, a)

y: ProcNode[float]

Alias for field number 0

cb: ProcNode[float]

Alias for field number 1

cr: ProcNode[float]

Alias for field number 2

a: ProcNode[float]

Alias for field number 3

Supported special methods: __add__, __contains__, __getitem__, __getnewargs__, __iter__, __len__, __mul__, __rmul__

procfunc.nodes.compositor.sep_ycca(image=(1, 1, 1, 1), mode='ITUBT709')[source]

Uses a SepYCCA Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/color/mix/separate_color.html

Parameters:
  • image (ProcNode[Color] | Color)

  • mode (Literal['ITUBT601', 'ITUBT709', 'JFIF'])

Return type:

SepYccaResult

class procfunc.nodes.compositor.SepYuvaResult[source]

Bases: NamedTuple

SepYuvaResult(y, u, v, a)

y: ProcNode[float]

Alias for field number 0

u: ProcNode[float]

Alias for field number 1

v: ProcNode[float]

Alias for field number 2

a: ProcNode[float]

Alias for field number 3

Supported special methods: __add__, __contains__, __getitem__, __getnewargs__, __iter__, __len__, __mul__, __rmul__

procfunc.nodes.compositor.sep_yuva(image=(1, 1, 1, 1))[source]

Uses a SepYUVA Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/color/mix/separate_color.html

Parameters:

image (ProcNode[Color] | Color)

Return type:

SepYuvaResult

procfunc.nodes.compositor.set_alpha(image=(1, 1, 1, 1), alpha=1.0, mode='APPLY')[source]

Uses a SetAlpha Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/color/set_alpha.html

Parameters:
Return type:

ProcNode

procfunc.nodes.compositor.split(image_0=(0.8, 0.8, 0.8, 1), image_1=(0.8, 0.8, 0.8, 1), axis='X', factor=50)[source]

Uses a Split Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/utilities/split.html

Parameters:
Return type:

ProcNode

procfunc.nodes.compositor.stabilize(image=(0.8, 0.8, 0.8, 1), clip=None, filter_type='BILINEAR', invert=False)[source]

Uses a Stabilize Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/tracking/stabilize_2d.html

Parameters:
  • image (ProcNode[Color] | Color)

  • clip (Any)

  • filter_type (Literal['NEAREST', 'BILINEAR', 'BICUBIC'])

  • invert (bool)

Return type:

ProcNode

procfunc.nodes.compositor.sun_beams(image=(1, 1, 1, 1), ray_length=0.0, source=(0.5, 0.5))[source]

Uses a SunBeams Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/filter/sun_beams.html

Parameters:
Return type:

ProcNode

procfunc.nodes.compositor.switch(off=(0.8, 0.8, 0.8, 1), on=(0.8, 0.8, 0.8, 1), check=False)[source]

Uses a Switch Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/utilities/switch.html

Parameters:
Return type:

ProcNode

procfunc.nodes.compositor.switch_view(left=(0, 0, 0, 1), right=(0, 0, 0, 1))[source]

Uses a SwitchView Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/utilities/switch.html

Parameters:
Return type:

ProcNode

procfunc.nodes.compositor.texture(offset=(0, 0, 0), scale=(1, 1, 1), node_output=0, texture=None)[source]

Uses a Texture Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/input/texture.html

Parameters:
Return type:

ProcNode

procfunc.nodes.compositor.time(frame_end=250, frame_start=1)[source]

Uses a Time Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/input/scene/scene_time.html

Parameters:
  • frame_end (int)

  • frame_start (int)

Return type:

ProcNode

procfunc.nodes.compositor.tonemap(image=(1, 1, 1, 1), adaptation=1.0, contrast=0.0, correction=0.0, gamma=1.0, intensity=0.0, key=0.18, offset=1.0, tonemap_type='RD_PHOTORECEPTOR')[source]

Uses a Tonemap Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/color/adjust/tone_map.html

Parameters:
Return type:

ProcNode

procfunc.nodes.compositor.track_pos(clip=None, frame_relative=0, position='ABSOLUTE', track_name='', tracking_object='')[source]

Uses a TrackPos Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/tracking/track_position.html

Parameters:
  • clip (Any)

  • frame_relative (int)

  • position (Literal['ABSOLUTE', 'RELATIVE_START', 'RELATIVE_FRAME', 'ABSOLUTE_FRAME'])

  • track_name (str)

  • tracking_object (str)

Return type:

ProcNode

procfunc.nodes.compositor.transform(image=(0.8, 0.8, 0.8, 1), x=0.0, y=0.0, angle=0.0, scale=1.0, filter_type='NEAREST')[source]

Uses a Transform Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/transform/transform.html

Parameters:
Return type:

ProcNode

procfunc.nodes.compositor.translate(image=(1, 1, 1, 1), x=0.0, y=0.0, interpolation='Nearest', use_relative=False, wrap_axis='NONE')[source]

Uses a Translate Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/transform/translate.html

Parameters:
Return type:

ProcNode

procfunc.nodes.compositor.val_to_rgb(fac=0.5)[source]

Uses a ValToRGB Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/color/color_ramp.html

Parameters:

fac (ProcNode[float] | float)

Return type:

ProcNode

procfunc.nodes.compositor.value()[source]

Uses a Value Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/input/constant/value.html

Return type:

ProcNode

procfunc.nodes.compositor.vec_blur(image=(1, 1, 1, 1), z=0.0, speed=(0, 0, 0), factor=0.25, samples=32, speed_max=0, speed_min=0, use_curved=False)[source]

Uses a VecBlur Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/filter/blur/vector_blur.html

Parameters:
Return type:

ProcNode

procfunc.nodes.compositor.viewer(image=(0, 0, 0, 1), alpha=1.0, use_alpha=True)[source]

Uses a Viewer Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/output/viewer.html

Parameters:
Return type:

ProcNode

procfunc.nodes.compositor.zcombine(image_0=(1, 1, 1, 1), z_0=1.0, image_1=(1, 1, 1, 1), z_1=1.0, use_alpha=False, use_antialias_z=True)[source]

Uses a Zcombine Compositor Node.

See: https://docs.blender.org/manual/en/4.2/compositing/types/color/mix/z_combine.html

Parameters:
Return type:

ProcNode

pf.nodes.func

Auto-generated Function Node bindings for Blender

procfunc.nodes.func.constant(value)[source]

Replaces all nodes which just store a constant e.g. ShaderNodeValue, ShaderNodeRGB, FunctionNodeInput*, etc

Parameters:

value (TConstant)

Return type:

ProcNode[TConstant]

procfunc.nodes.func.align_euler_to_vector(rotation=(0, 0, 0), factor=1.0, vector=(0, 0, 1), axis='X', pivot_axis='AUTO')[source]

Uses a AlignEulerToVector Function Node.

See: http://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/utilities/rotation/align_euler_to_vector.html

Parameters:
Return type:

ProcNode[Vector]

procfunc.nodes.func.align_rotation_to_vector(rotation=(0, 0, 0), factor=1.0, vector=(0, 0, 1), axis='Z', pivot_axis='AUTO')[source]

Uses a AlignRotationToVector Function Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/utilities/rotation/align_rotation_to_vector.html

Parameters:
Return type:

ProcNode[Vector]

procfunc.nodes.func.axes_to_rotation(primary_axis_vector=(0, 0, 1), secondary_axis_vector=(1, 0, 0), primary_axis='X', secondary_axis='Y')[source]

Uses a AxesToRotation Function Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/utilities/rotation/axis_to_rotation.html

Parameters:
  • primary_axis_vector (ProcNode[Vector] | Vector)

  • secondary_axis_vector (ProcNode[Vector] | Vector)

  • primary_axis (Literal['X', 'Y', 'Z'])

  • secondary_axis (Literal['X', 'Y', 'Z'])

Return type:

ProcNode[Vector]

procfunc.nodes.func.axis_angle_to_rotation(axis=(0, 0, 1), angle=0.0)[source]

Uses a AxisAngleToRotation Function Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/utilities/rotation/axis_angle_to_rotation.html

Parameters:
Return type:

ProcNode[Vector]

procfunc.nodes.func.boolean_or(a=False, b=False)[source]
Parameters:
Return type:

ProcNode[bool]

procfunc.nodes.func.boolean_and(a=False, b=False)[source]
Parameters:
Return type:

ProcNode[bool]

procfunc.nodes.func.boolean_xor(a=False, b=False)[source]
Parameters:
Return type:

ProcNode[bool]

procfunc.nodes.func.boolean_not(a=False)[source]

Uses a BooleanNot Function Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/utilities/math/boolean_math.html

Parameters:

a (ProcNode[bool] | bool)

Return type:

ProcNode[bool]

procfunc.nodes.func.combine_matrix(column_1_row_1=1.0, column_1_row_2=0.0, column_1_row_3=0.0, column_1_row_4=0.0, column_2_row_1=0.0, column_2_row_2=1.0, column_2_row_3=0.0, column_2_row_4=0.0, column_3_row_1=0.0, column_3_row_2=0.0, column_3_row_3=1.0, column_3_row_4=0.0, column_4_row_1=0.0, column_4_row_2=0.0, column_4_row_3=0.0, column_4_row_4=1.0)[source]

Uses a CombineMatrix Function Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/utilities/matrix/combine_matrix.html

Parameters:
Return type:

ProcNode[Matrix]

procfunc.nodes.func.combine_transform(translation=(0, 0, 0), rotation=(0, 0, 0), scale=(1, 1, 1))[source]

Uses a CombineTransform Function Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/utilities/matrix/combine_transform.html

Parameters:
Return type:

ProcNode[Matrix]

procfunc.nodes.func.less_than(a=None, b=None)[source]
Parameters:
  • a (TCompareNumeric)

  • b (TCompareNumeric)

Return type:

ProcNode[bool]

procfunc.nodes.func.less_equal(a=None, b=None)[source]
Parameters:
  • a (TCompareNumeric)

  • b (TCompareNumeric)

Return type:

ProcNode[bool]

procfunc.nodes.func.greater_than(a=None, b=None)[source]
Parameters:
  • a (TCompareNumeric)

  • b (TCompareNumeric)

Return type:

ProcNode[bool]

procfunc.nodes.func.greater_equal(a=None, b=None)[source]
Parameters:
  • a (TCompareNumeric)

  • b (TCompareNumeric)

Return type:

ProcNode[bool]

procfunc.nodes.func.equal(a=None, b=None, epsilon=None)[source]
Parameters:
Return type:

ProcNode[bool]

procfunc.nodes.func.not_equal(a=None, b=None, epsilon=None)[source]
Parameters:
Return type:

ProcNode[bool]

procfunc.nodes.func.vector_compare_elementwise(a=(0, 0, 0), b=(0, 0, 0), epsilon=0.001, operation='EQUAL')[source]
Parameters:
Return type:

ProcNode[bool]

procfunc.nodes.func.compare_color(a, b, operation, epsilon=0.001)[source]
Parameters:
Return type:

ProcNode[bool]

procfunc.nodes.func.euler_to_rotation(euler=(0, 0, 0))[source]

Uses a EulerToRotation Function Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/utilities/rotation/euler_to_rotation.html

Parameters:

euler (ProcNode[Vector] | Vector)

Return type:

ProcNode[Vector]

procfunc.nodes.func.float_to_int(float=0.0, rounding_mode='ROUND')[source]

Uses a FloatToInt Function Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/utilities/math/float_to_integer.html

Parameters:
Return type:

ProcNode[int]

class procfunc.nodes.func.InputSpecialCharactersResult[source]

Bases: NamedTuple

InputSpecialCharactersResult(line_break, tab)

line_break: ProcNode[str]

Alias for field number 0

tab: ProcNode[str]

Alias for field number 1

Supported special methods: __add__, __contains__, __getitem__, __getnewargs__, __iter__, __len__, __mul__, __rmul__

procfunc.nodes.func.input_special_characters()[source]

Uses a InputSpecialCharacters Function Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/utilities/text/special_characters.html

Return type:

InputSpecialCharactersResult

procfunc.nodes.func.input_string(string='')[source]

Uses a InputString Function Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/input/constant/string.html

Parameters:

string (str)

Return type:

ProcNode[str]

procfunc.nodes.func.input_vector(vector=(0.0, 0.0, 0.0))[source]

Uses a InputVector Function Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/input/constant/vector.html

Parameters:

vector (tuple)

Return type:

ProcNode[Vector]

class procfunc.nodes.func.InvertMatrixResult[source]

Bases: NamedTuple

InvertMatrixResult(matrix, invertible)

matrix: ProcNode[Matrix]

Alias for field number 0

invertible: ProcNode[bool]

Alias for field number 1

Supported special methods: __add__, __contains__, __getitem__, __getnewargs__, __iter__, __len__, __mul__, __rmul__

procfunc.nodes.func.invert_matrix(matrix=None)[source]

Uses a InvertMatrix Function Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/utilities/matrix/invert_matrix.html

Parameters:

matrix (ProcNode[Matrix] | Matrix)

Return type:

InvertMatrixResult

procfunc.nodes.func.invert_rotation(rotation=(0, 0, 0))[source]

Uses a InvertRotation Function Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/utilities/rotation/invert_rotation.html

Parameters:

rotation (ProcNode[Vector] | Vector)

Return type:

ProcNode[Vector]

procfunc.nodes.func.matrix_multiply(matrix_0=None, matrix_1=None)[source]

Uses a MatrixMultiply Function Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/utilities/matrix/multiply_matrices.html

Parameters:
Return type:

ProcNode[Matrix]

procfunc.nodes.func.project_point(vector=(0, 0, 0), transform=None)[source]

Uses a ProjectPoint Function Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/utilities/matrix/project_point.html

Parameters:
Return type:

ProcNode[Vector]

procfunc.nodes.func.quaternion_to_rotation(w=1.0, x=0.0, y=0.0, z=0.0)[source]

Uses a QuaternionToRotation Function Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/utilities/rotation/quaternion_to_rotation.html

Parameters:
Return type:

ProcNode[Vector]

procfunc.nodes.func.random_value(min=0.0, max=1.0, id=0, seed=0, data_type=None)[source]

Uses a RandomValue Function Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/utilities/random_value.html

Parameters:
Return type:

ProcNode[TRandomValue]

procfunc.nodes.func.random_boolean(probability=0.5, id=0, seed=0)[source]

Uses a RandomBoolean Function Node.

Parameters:
Return type:

ProcNode[bool]

procfunc.nodes.func.replace_string(string='', find='', replace='')[source]

Uses a ReplaceString Function Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/utilities/text/replace_string.html

Parameters:
Return type:

ProcNode[str]

procfunc.nodes.func.rotate_euler(rotation=(0, 0, 0), rotate_by=(0, 0, 0), rotation_type='EULER', space='OBJECT')[source]

Uses a RotateEuler Function Node.

See: http://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/utilities/rotation/rotate_euler.html

Parameters:
  • rotation (ProcNode[Vector] | Vector)

  • rotate_by (ProcNode[Vector] | Vector)

  • rotation_type (Literal['EULER', 'AXIS_ANGLE'])

  • space (Literal['OBJECT', 'LOCAL'])

Return type:

ProcNode[Vector]

procfunc.nodes.func.rotate_rotation(rotation=(0, 0, 0), rotate_by=(0, 0, 0), rotation_space='GLOBAL')[source]

Uses a RotateRotation Function Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/utilities/rotation/rotate_rotation.html

Parameters:
  • rotation (Any)

  • rotate_by (Any)

  • rotation_space (Literal['GLOBAL', 'LOCAL'])

Return type:

ProcNode[Vector]

procfunc.nodes.func.rotate_vector(vector=(0, 0, 0), rotation=(0, 0, 0))[source]

Uses a RotateVector Function Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/utilities/rotation/rotate_vector.html

Parameters:
Return type:

ProcNode[Vector]

class procfunc.nodes.func.RotationToAxisAngleResult[source]

Bases: NamedTuple

RotationToAxisAngleResult(axis, angle)

axis: ProcNode[Vector]

Alias for field number 0

angle: ProcNode[float]

Alias for field number 1

Supported special methods: __add__, __contains__, __getitem__, __getnewargs__, __iter__, __len__, __mul__, __rmul__

procfunc.nodes.func.rotation_to_axis_angle(rotation=(0, 0, 0))[source]

Uses a RotationToAxisAngle Function Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/utilities/rotation/axis_angle_to_rotation.html

Parameters:

rotation (ProcNode[Vector] | Vector)

Return type:

RotationToAxisAngleResult

procfunc.nodes.func.rotation_to_euler(rotation=(0, 0, 0))[source]

Uses a RotationToEuler Function Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/utilities/rotation/rotation_to_euler.html

Parameters:

rotation (ProcNode[Vector] | Vector)

Return type:

ProcNode[Vector]

class procfunc.nodes.func.RotationToQuaternionResult[source]

Bases: NamedTuple

RotationToQuaternionResult(w, x, y, z)

w: ProcNode[float]

Alias for field number 0

x: ProcNode[float]

Alias for field number 1

y: ProcNode[float]

Alias for field number 2

z: ProcNode[float]

Alias for field number 3

Supported special methods: __add__, __contains__, __getitem__, __getnewargs__, __iter__, __len__, __mul__, __rmul__

procfunc.nodes.func.rotation_to_quaternion(rotation=(0, 0, 0))[source]

Uses a RotationToQuaternion Function Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/utilities/rotation/rotation_to_quaternion.html

Parameters:

rotation (ProcNode[Vector] | Vector)

Return type:

RotationToQuaternionResult

class procfunc.nodes.func.SeparateColorResult[source]

Bases: NamedTuple

SeparateColorResult(red, green, blue, alpha)

red: ProcNode[float]

Alias for field number 0

green: ProcNode[float]

Alias for field number 1

blue: ProcNode[float]

Alias for field number 2

alpha: ProcNode[float]

Alias for field number 3

Supported special methods: __add__, __contains__, __getitem__, __getnewargs__, __iter__, __len__, __mul__, __rmul__

procfunc.nodes.func.separate_color(color=(1, 1, 1, 1), mode='RGB', ycc_mode='ITUBT709')[source]

Uses a SeparateColor Function Node.

Context mapping: - Shader: ShaderNodeSeparateColor (input: Color, outputs: red/green/blue, mode: RGB only) - Compositor: CompositorNodeSeparateColor (input: Image, outputs: red/green/blue/alpha, modes: RGB/HSV/HSL/YCC/YUV, ycc_mode param) - Texture: TextureNodeSeparateColor (input: Color, modes: RGB/HSV/HSL) - Function: FunctionNodeSeparateColor (input: Color, outputs: red/green/blue/alpha)

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/utilities/color/separate_color.html

Parameters:
  • color (ProcNode[Color] | Color)

  • mode (Literal['RGB', 'HSV', 'HSL'])

  • ycc_mode (Literal['ITUBT601', 'ITUBT709', 'JFIF'])

Return type:

SeparateColorResult

class procfunc.nodes.func.SeparateTransformResult[source]

Bases: NamedTuple

SeparateTransformResult(translation, rotation, scale)

translation: ProcNode[Vector]

Alias for field number 0

rotation: ProcNode[Vector]

Alias for field number 1

scale: ProcNode[Vector]

Alias for field number 2

Supported special methods: __add__, __contains__, __getitem__, __getnewargs__, __iter__, __len__, __mul__, __rmul__

procfunc.nodes.func.separate_transform(transform=None)[source]

Uses a SeparateTransform Function Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/utilities/matrix/separate_transform.html

Parameters:

transform (ProcNode[Matrix] | Matrix)

Return type:

SeparateTransformResult

procfunc.nodes.func.slice_string(string='', position=0, length=10)[source]

Uses a SliceString Function Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/utilities/text/slice_string.html

Parameters:
Return type:

ProcNode[str]

procfunc.nodes.func.string_length(string='')[source]

Uses a StringLength Function Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/utilities/text/string_length.html

Parameters:

string (ProcNode[str] | str)

Return type:

ProcNode[int]

procfunc.nodes.func.transform_direction(direction=(0, 0, 0), transform=None)[source]

Uses a TransformDirection Function Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/utilities/matrix/transform_direction.html

Parameters:
Return type:

ProcNode[Vector]

procfunc.nodes.func.transform_point(vector=(0, 0, 0), transform=None)[source]

Uses a TransformPoint Function Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/utilities/matrix/transform_point.html

Parameters:
Return type:

ProcNode[Vector]

procfunc.nodes.func.transpose_matrix(matrix=None)[source]

Uses a TransposeMatrix Function Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/utilities/matrix/transpose_matrix.html

Parameters:

matrix (ProcNode[Matrix] | Matrix)

Return type:

ProcNode[Matrix]

procfunc.nodes.func.value_to_string(value=0.0, decimals=0)[source]

Uses a ValueToString Function Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/utilities/text/value_to_string.html

Parameters:
Return type:

ProcNode[str]

procfunc.nodes.func.mix(a=None, b=None, factor=0.5, clamp_factor=True, factor_mode='UNIFORM', data_type=None)[source]

Uses MixNode to mix float or vector fields

NOTE: procfunc forces all colors to be mixed via mix_rgb, since setting this function to type Color adds extra args & exactly matches the interface of mix_rgb

Parameters:
Return type:

ProcNode[TMix]

procfunc.nodes.func.mix_rgb(factor=0.5, a=(0.5, 0.5, 0.5, 1), b=(0.5, 0.5, 0.5, 1), blend_type='MIX', clamp_result=False, clamp_factor=True)[source]

Uses a Mix Node with datatype Color

NOTE: separated from float/vector mix() due to extra arguments

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/color/mix.html

Parameters:
  • factor (ProcNode[float] | float)

  • a (ProcNode[Color] | Color)

  • b (ProcNode[Color] | Color)

  • blend_type (Literal['MIX', 'DARKEN', 'MULTIPLY', 'BURN', 'LIGHTEN', 'SCREEN', 'DODGE', 'ADD', 'OVERLAY', 'SOFT_LIGHT', 'LINEAR_LIGHT', 'DIFFERENCE', 'EXCLUSION', 'SUBTRACT', 'DIVIDE', 'HUE', 'SATURATION', 'COLOR', 'VALUE'])

  • clamp_result (bool)

  • clamp_factor (bool)

Return type:

ProcNode[Color]

procfunc.nodes.func.rgb_curve(fac=1.0, color=(1, 1, 1, 1), curves=None)[source]

Uses a RGBCurve Shader Node.

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/color/rgb_curves.html

Parameters:
Return type:

ProcNode

procfunc.nodes.func.combine_color(red=0.0, green=0.0, blue=0.0, mode='RGB')[source]

Uses a CombineColor Shader Node.

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/converter/combine_color.html

Parameters:
Return type:

ProcNode[Color]

procfunc.nodes.func.combine_rgb(red=0.0, green=0.0, blue=0.0, mode='RGB')[source]

Uses a CombineColor Shader Node.

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/converter/combine_color.html

Parameters:
Return type:

ProcNode[Color]

procfunc.nodes.func.combine_hsv(hue=0.0, saturation=0.0, value=0.0)[source]

Uses a CombineColor Shader Node.

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/converter/combine_color.html

Parameters:
Return type:

ProcNode[Color]

procfunc.nodes.func.combine_hsl(hue=0.0, saturation=0.0, lightness=0.0)[source]

Uses a CombineHSV Shader Node.

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/converter/combine_color.html

Parameters:
Return type:

ProcNode[Color]

procfunc.nodes.func.combine_xyz(x=0.0, y=0.0, z=0.0)[source]

Uses a CombineXYZ Shader Node.

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/converter/combine_xyz.html

Parameters:
Return type:

ProcNode[Vector]

class procfunc.nodes.func.SeparateHsvResult[source]

Bases: NamedTuple

SeparateHsvResult(h, s, v)

h: ProcNode[float]

Alias for field number 0

s: ProcNode[float]

Alias for field number 1

v: ProcNode[float]

Alias for field number 2

Supported special methods: __add__, __contains__, __getitem__, __getnewargs__, __iter__, __len__, __mul__, __rmul__

procfunc.nodes.func.separate_hsv(color=(0.8, 0.8, 0.8, 1))[source]

Uses a SeparateHSV Shader Node.

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/converter/separate_color.html

Parameters:

color (ProcNode[Color] | Color)

Return type:

SeparateHsvResult

class procfunc.nodes.func.SeparateRgbResult[source]

Bases: NamedTuple

SeparateRgbResult(r, g, b)

r: ProcNode[float]

Alias for field number 0

g: ProcNode[float]

Alias for field number 1

b: ProcNode[float]

Alias for field number 2

Supported special methods: __add__, __contains__, __getitem__, __getnewargs__, __iter__, __len__, __mul__, __rmul__

procfunc.nodes.func.separate_rgb(image=(0.8, 0.8, 0.8, 1))[source]

Uses a SeparateRGB Shader Node.

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/converter/separate_color.html

Parameters:

image (ProcNode[Color] | Color)

Return type:

SeparateRgbResult

class procfunc.nodes.func.SeparateXyzResult[source]

Bases: NamedTuple

SeparateXyzResult(x, y, z)

x: ProcNode[float]

Alias for field number 0

y: ProcNode[float]

Alias for field number 1

z: ProcNode[float]

Alias for field number 2

Supported special methods: __add__, __contains__, __getitem__, __getnewargs__, __iter__, __len__, __mul__, __rmul__

procfunc.nodes.func.separate_xyz(vector=(0, 0, 0))[source]

Uses a SeparateXYZ Shader Node.

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/converter/separate_xyz.html

Parameters:

vector (ProcNode[Vector] | Vector)

Return type:

SeparateXyzResult

procfunc.nodes.func.map_range(value=1.0, from_max=1.0, from_min=0.0, to_max=1.0, to_min=0.0, clamp=True, interpolation_type='LINEAR', data_type=None)[source]

Uses a MapRange Shader Node.

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/converter/map_range.html

Parameters:
Return type:

ProcNode

procfunc.nodes.func.float_curve(factor=1.0, value=1.0, curve=None, handle_type='AUTO', use_clip=True)[source]

Uses a FloatCurve Shader Node.

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/converter/float_curve.html

Parameters:
Return type:

ProcNode[float]

procfunc.nodes.func.vector_curve(fac=1.0, vector=(0, 0, 0), curves=None)[source]

Uses a VectorCurve Shader Node.

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/vector/curves.html

Parameters:
Return type:

ProcNode[Vector]

procfunc.nodes.func.index_switch(val_0=0, val_1=0, index=0, data_type=None)[source]

Uses a IndexSwitch Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/utilities/index_switch.html

Parameters:
Return type:

ProcNode

procfunc.nodes.func.switch(switch=False, a=None, b=None, data_type=None)[source]

Uses a Switch Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/utilities/switch.html

Parameters:
Return type:

ProcNode[TAnyDataVal]

pf.nodes.geo

Auto-generated Geometry Node bindings for Blender

WARNING: These type annotations are not guaranteed to be exhaustive or precise.

places of particular concern: - What attribute nodes allow int/float/bool or also Color/Vector - What geometry operations should we allow to apply on mismatching inputs? e.g. realize instances on a Mesh with no instances

class procfunc.nodes.geo.AccumulateFieldResult[source]

Bases: NamedTuple, Generic[TAttribute]

AccumulateFieldResult(leading, total, trailing)

leading: ProcNode[TAttribute]

Alias for field number 0

total: ProcNode[TAttribute]

Alias for field number 1

trailing: ProcNode[TAttribute]

Alias for field number 2

Supported special methods: __add__, __contains__, __getitem__, __getnewargs__, __iter__, __len__, __mul__, __rmul__

procfunc.nodes.geo.accumulate_field(value=None, group_id=0, domain='POINT', data_type=None)[source]

Uses a AccumulateField Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/utilities/field/accumulate_field.html

Parameters:
  • value (ProcNode[TAttribute] | None)

  • group_id (ProcNode[int] | int)

  • domain (Literal['POINT', 'EDGE', 'FACE', 'CORNER', 'CURVE', 'INSTANCE', 'LAYER'])

  • data_type (NodeDataType | RuntimeResolveDataType | None)

Return type:

AccumulateFieldResult[TAttribute]

class procfunc.nodes.geo.AttributeDomainSizeResult[source]

Bases: NamedTuple

AttributeDomainSizeResult(point_count, edge_count, face_count, face_corner_count, spline_count, instance_count)

point_count: ProcNode[int]

Alias for field number 0

edge_count: ProcNode[int]

Alias for field number 1

face_count: ProcNode[int]

Alias for field number 2

face_corner_count: ProcNode[int]

Alias for field number 3

spline_count: ProcNode[int]

Alias for field number 4

instance_count: ProcNode[int]

Alias for field number 5

Supported special methods: __add__, __contains__, __getitem__, __getnewargs__, __iter__, __len__, __mul__, __rmul__

procfunc.nodes.geo.attribute_domain_size(geometry, component='MESH')[source]

Uses a AttributeDomainSize Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/attribute/domain_size.html

Parameters:
Return type:

AttributeDomainSizeResult

class procfunc.nodes.geo.AttributeStatisticResult[source]

Bases: NamedTuple, Generic[TAttribute]

AttributeStatisticResult(max, mean, median, min, range, standard_deviation, sum, variance)

max: ProcNode[TAttribute]

Alias for field number 0

mean: ProcNode[TAttribute]

Alias for field number 1

median: ProcNode[TAttribute]

Alias for field number 2

min: ProcNode[TAttribute]

Alias for field number 3

range: ProcNode[TAttribute]

Alias for field number 4

standard_deviation: ProcNode[TAttribute]

Alias for field number 5

sum: ProcNode[TAttribute]

Alias for field number 6

variance: ProcNode[TAttribute]

Alias for field number 7

Supported special methods: __add__, __contains__, __getitem__, __getnewargs__, __iter__, __len__, __mul__, __rmul__

procfunc.nodes.geo.attribute_statistic(geometry, attribute=None, selection=True, domain='POINT', data_type=None)[source]

Uses a AttributeStatistic Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/attribute/attribute_statistic.html

Parameters:
Return type:

AttributeStatisticResult[TAttribute]

procfunc.nodes.geo.blur_attribute(value=None, iterations=1, weight=1.0, data_type=None)[source]

Uses a BlurAttribute Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/attribute/blur_attribute.html

Parameters:
Return type:

ProcNode[TAttribute]

class procfunc.nodes.geo.BoundBoxResult[source]

Bases: NamedTuple

BoundBoxResult(bounding_box, min, max)

bounding_box: ProcNode[MeshObject]

Alias for field number 0

min: ProcNode[Vector]

Alias for field number 1

max: ProcNode[Vector]

Alias for field number 2

Supported special methods: __add__, __contains__, __getitem__, __getnewargs__, __iter__, __len__, __mul__, __rmul__

procfunc.nodes.geo.bound_box(geometry)[source]

Uses a BoundBox Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/geometry/operations/bounding_box.html

Parameters:

geometry (ProcNode[MeshObject | CurveObject | Instances | VolumeObject])

Return type:

BoundBoxResult

class procfunc.nodes.geo.CaptureAttributeResult[source]

Bases: Generic[TAnyGeometry]

CaptureAttributeResult(geometry: procfunc.nodes.types.ProcNode[~TAnyGeometry], attributes: dict[str, procfunc.nodes.types.ProcNode])

geometry: ProcNode[TAnyGeometry]
attributes: dict[str, ProcNode]
__init__(geometry, attributes)
Parameters:
Return type:

None

Supported special methods: __getattr__

procfunc.nodes.geo.capture_attribute(geometry, domain='POINT', **attributes)[source]

Uses a CaptureAttribute Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/attribute/capture_attribute.html

Parameters:
  • geometry (ProcNode[TAnyGeometry])

  • domain (Literal['POINT', 'EDGE', 'FACE', 'CORNER', 'CURVE', 'INSTANCE', 'LAYER'])

  • attributes (ProcNode[TAttribute] | TAttribute)

Return type:

CaptureAttributeResult[TAnyGeometry]

procfunc.nodes.geo.collection_info(collection, separate_children=False, reset_children=False, transform_space='ORIGINAL')[source]

Uses a CollectionInfo Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/input/scene/collection_info.html

Parameters:
Return type:

ProcNode[Instances]

procfunc.nodes.geo.convex_hull(geometry)[source]

Uses a ConvexHull Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/geometry/operations/convex_hull.html

Parameters:

geometry (ProcNode[MeshObject | CurveObject | Instances | VolumeObject])

Return type:

ProcNode[MeshObject]

class procfunc.nodes.geo.CornerResult[source]

Bases: NamedTuple

CornerResult(corner_index, total)

corner_index: ProcNode[int]

Alias for field number 0

total: ProcNode[int]

Alias for field number 1

Supported special methods: __add__, __contains__, __getitem__, __getnewargs__, __iter__, __len__, __mul__, __rmul__

procfunc.nodes.geo.corners_of_edge(edge_index=0, weights=0.0, sort_index=0)[source]

Uses a CornersOfEdge Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/mesh/topology/corners_of_edge.html

Parameters:
Return type:

CornerResult

procfunc.nodes.geo.corners_of_face(face_index=0, weights=0.0, sort_index=0)[source]

Uses a CornersOfFace Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/mesh/topology/corners_of_face.html

Parameters:
Return type:

CornerResult

procfunc.nodes.geo.corners_of_vertex(vertex_index=0, weights=0.0, sort_index=0)[source]

Uses a CornersOfVertex Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/mesh/topology/corners_of_vertex.html

Parameters:
Return type:

CornerResult

procfunc.nodes.geo.curve_arc(resolution=16, radius=1.0, start_angle=0.0, sweep_angle=5.497787, connect_center=False, invert_arc=False, mode='RADIUS')[source]

Uses a CurveArc Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/curve/primitives/arc.html

Parameters:
Return type:

ProcNode[CurveObject]

procfunc.nodes.geo.curve_endpoint_selection(start_size=1, end_size=1)[source]

Uses a CurveEndpointSelection Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/curve/read/endpoint_selection.html

Parameters:
Return type:

ProcNode[bool]

procfunc.nodes.geo.curve_length(curve)[source]

Uses a CurveLength Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/curve/read/curve_length.html

Parameters:

curve (ProcNode[CurveObject])

Return type:

ProcNode[float]

class procfunc.nodes.geo.CurveOfPointResult[source]

Bases: NamedTuple

CurveOfPointResult(curve_index, index_in_curve)

curve_index: ProcNode[int]

Alias for field number 0

index_in_curve: ProcNode[int]

Alias for field number 1

Supported special methods: __add__, __contains__, __getitem__, __getnewargs__, __iter__, __len__, __mul__, __rmul__

procfunc.nodes.geo.curve_of_point(point_index=0)[source]

Uses a CurveOfPoint Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/curve/topology/curve_of_point.html

Parameters:

point_index (ProcNode[int] | int)

Return type:

CurveOfPointResult

procfunc.nodes.geo.curve_bezier_segment(resolution=16, start=(-1, 0, 0), start_handle=(-0.5, 0.5, 0), end_handle=(0, 0, 0), end=(1, 0, 0), mode='POSITION')[source]

Uses a CurvePrimitiveBezierSegment Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/curve/primitives/bezier_segment.html

Parameters:
Return type:

ProcNode[CurveObject]

procfunc.nodes.geo.curve_circle(resolution=32, radius=1.0, mode='RADIUS')[source]

Uses a CurvePrimitiveCircle Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/curve/primitives/curve_circle.html

Parameters:
Return type:

ProcNode[CurveObject]

procfunc.nodes.geo.curve_line(start=(0, 0, 0), end=(0, 0, 1))[source]

Uses a CurvePrimitiveLine Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/curve/primitives/curve_line.html

Parameters:
Return type:

ProcNode[CurveObject]

procfunc.nodes.geo.curve_line_from_direction(start=(0, 0, 0), direction=(0, 0, 1), length=1.0)[source]

Uses a CurveLineFromDirection Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/curve/primitives/curve_line.html

Parameters:
Return type:

ProcNode[CurveObject]

procfunc.nodes.geo.curve_quadrilateral(width=2.0, height=2.0, mode='RECTANGLE')[source]

Uses a CurvePrimitiveQuadrilateral Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/curve/primitives/quadrilateral.html

Parameters:
Return type:

ProcNode[CurveObject]

procfunc.nodes.geo.curve_bezier(resolution=16, start=(-1, 0, 0), middle=(0, 2, 0), end=(1, 0, 0))[source]

Uses a CurveQuadraticBezier Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/curve/primitives/quadratic_bezier.html

Parameters:
Return type:

ProcNode[CurveObject]

procfunc.nodes.geo.curve_set_handles(curve, selection=True, handle_type='AUTO', mode='RIGHT')[source]

Uses a CurveSetHandles Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/curve/write/set_handle_type.html

Parameters:
Return type:

ProcNode[CurveObject]

procfunc.nodes.geo.curve_spiral(resolution=32, rotations=2.0, start_radius=1.0, end_radius=2.0, height=2.0, reverse=False)[source]

Uses a CurveSpiral Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/curve/primitives/curve_spiral.html

Parameters:
Return type:

ProcNode[CurveObject]

procfunc.nodes.geo.curve_spline_type(curve, selection=True, spline_type='POLY')[source]

Uses a CurveSplineType Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/curve/write/set_spline_type.html

Parameters:
Return type:

ProcNode[CurveObject]

class procfunc.nodes.geo.CurveStarResult[source]

Bases: NamedTuple

CurveStarResult(curve, outer_points)

curve: ProcNode[CurveObject]

Alias for field number 0

outer_points: ProcNode[bool]

Alias for field number 1

Supported special methods: __add__, __contains__, __getitem__, __getnewargs__, __iter__, __len__, __mul__, __rmul__

procfunc.nodes.geo.curve_star(points=8, inner_radius=1.0, outer_radius=2.0, twist=0.0)[source]

Uses a CurveStar Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/curve/primitives/star.html

Parameters:
Return type:

CurveStarResult

procfunc.nodes.geo.curve_to_mesh(curve, profile_curve=None, fill_caps=False)[source]

Uses a CurveToMesh Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/curve/operations/curve_to_mesh.html

Parameters:
Return type:

ProcNode[MeshObject]

class procfunc.nodes.geo.CurveToPointsResult[source]

Bases: NamedTuple

CurveToPointsResult(points, tangent, normal, rotation)

points: ProcNode[MeshObject]

Alias for field number 0

tangent: ProcNode[Vector]

Alias for field number 1

normal: ProcNode[Vector]

Alias for field number 2

rotation: ProcNode[Vector]

Alias for field number 3

Supported special methods: __add__, __contains__, __getitem__, __getnewargs__, __iter__, __len__, __mul__, __rmul__

procfunc.nodes.geo.curve_to_points(curve, count=10, length=1.0, mode='COUNT')[source]

Uses a CurveToPoints Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/curve/operations/curve_to_points.html

Parameters:
Return type:

CurveToPointsResult

procfunc.nodes.geo.curve_to_points_evaluated(curve)[source]

Uses a CurveToPoints Geometry Node with mode=”EVALUATED”.

From Blender docs: Creates points based on how the curve is evaluated. See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/curve/operations/curve_to_points.html

Parameters:

curve (ProcNode[CurveObject])

Return type:

CurveToPointsResult

procfunc.nodes.geo.curve_to_points_count(curve, count=10)[source]

Uses a CurveToPoints Geometry Node with mode=”COUNT”.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/curve/operations/curve_to_points.html

Parameters:
Return type:

CurveToPointsResult

procfunc.nodes.geo.curve_to_points_length(curve, length=0.1)[source]

Uses a CurveToPoints Geometry Node with mode=”LENGTH”.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/curve/operations/curve_to_points.html

Parameters:
Return type:

CurveToPointsResult

procfunc.nodes.geo.deform_curves_on_surface(curves)[source]

Uses a DeformCurvesOnSurface Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/curve/operations/deform_curves_on_surface.html

Parameters:

curves (ProcNode[HairObject])

Return type:

ProcNode[HairObject]

procfunc.nodes.geo.delete_geometry(geometry, selection=True, domain='POINT', mode='ALL')[source]

Uses a DeleteGeometry Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/geometry/operations/delete_geometry.html

Parameters:
  • geometry (ProcNode[TDeleteGeometry])

  • selection (ProcNode[bool] | bool)

  • domain (Literal['POINT', 'EDGE', 'FACE', 'CURVE', 'INSTANCE', 'LAYER'])

  • mode (Literal['ALL', 'EDGE_FACE', 'ONLY_FACE'])

Return type:

ProcNode[TDeleteGeometry]

procfunc.nodes.geo.distribute_points_in_grid(grid=0.0, density=1.0, seed=0, mode='DENSITY_RANDOM')[source]

Uses a DistributePointsInGrid Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/point/distribute_points_in_volume.html

Parameters:
Return type:

ProcNode[MeshObject]

procfunc.nodes.geo.distribute_points_in_volume(volume, density=1.0, seed=0, mode='DENSITY_RANDOM')[source]

Uses a DistributePointsInVolume Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/point/distribute_points_in_volume.html

Parameters:
Return type:

ProcNode[VolumeObject]

class procfunc.nodes.geo.DistributePointsOnFacesResult[source]

Bases: NamedTuple

DistributePointsOnFacesResult(points, normal, rotation)

points: ProcNode[MeshObject]

Alias for field number 0

normal: ProcNode[Vector]

Alias for field number 1

rotation: ProcNode[Vector]

Alias for field number 2

Supported special methods: __add__, __contains__, __getitem__, __getnewargs__, __iter__, __len__, __mul__, __rmul__

procfunc.nodes.geo.distribute_points_on_faces(mesh, selection=True, density=None, seed=0, use_legacy_normal=False)[source]

Uses a DistributePointsOnFaces Geometry Node with RANDOM distribution.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/point/distribute_points_on_faces.html

Parameters:
Return type:

DistributePointsOnFacesResult

procfunc.nodes.geo.distribute_points_on_faces_poisson(mesh, selection=True, distance_min=0.0, density_max=10.0, density_factor=1.0, seed=0, use_legacy_normal=False)[source]

Uses a DistributePointsOnFaces Geometry Node with POISSON distribution.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/point/distribute_points_on_faces.html

Parameters:
Return type:

DistributePointsOnFacesResult

procfunc.nodes.geo.dual_mesh(mesh, keep_boundaries=False)[source]

Uses a DualMesh Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/mesh/operations/dual_mesh.html

Parameters:
Return type:

ProcNode[MeshObject]

class procfunc.nodes.geo.DuplicateElementsResult[source]

Bases: NamedTuple, Generic[TAnyGeometry]

DuplicateElementsResult(geometry, duplicate_index)

geometry: ProcNode[TAnyGeometry]

Alias for field number 0

duplicate_index: ProcNode[int]

Alias for field number 1

Supported special methods: __add__, __contains__, __getitem__, __getnewargs__, __iter__, __len__, __mul__, __rmul__

procfunc.nodes.geo.duplicate_elements(geometry, selection=True, amount=1, domain='POINT')[source]

Uses a DuplicateElements Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/geometry/operations/duplicate_elements.html

Parameters:
Return type:

DuplicateElementsResult[TAnyGeometry]

procfunc.nodes.geo.edge_paths_to_curves(mesh, start_vertices=True, next_vertex_index=-1)[source]

Uses a EdgePathsToCurves Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/mesh/operations/edge_paths_to_curves.html

Parameters:
Return type:

ProcNode[CurveObject]

procfunc.nodes.geo.edge_paths_to_selection(start_vertices=True, next_vertex_index=-1)[source]

Uses a EdgePathsToSelection Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/mesh/operations/edge_paths_to_selection.html

Parameters:
Return type:

ProcNode[bool]

class procfunc.nodes.geo.EdgesOfCornerResult[source]

Bases: NamedTuple

EdgesOfCornerResult(next_edge_index, previous_edge_index)

next_edge_index: ProcNode[int]

Alias for field number 0

previous_edge_index: ProcNode[int]

Alias for field number 1

Supported special methods: __add__, __contains__, __getitem__, __getnewargs__, __iter__, __len__, __mul__, __rmul__

procfunc.nodes.geo.edges_of_corner(corner_index=0)[source]

Uses a EdgesOfCorner Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/mesh/topology/edges_of_corner.html

Parameters:

corner_index (ProcNode[int] | int)

Return type:

EdgesOfCornerResult

class procfunc.nodes.geo.EdgesOfVertexResult[source]

Bases: NamedTuple

EdgesOfVertexResult(edge_index, total)

edge_index: ProcNode[int]

Alias for field number 0

total: ProcNode[int]

Alias for field number 1

Supported special methods: __add__, __contains__, __getitem__, __getnewargs__, __iter__, __len__, __mul__, __rmul__

procfunc.nodes.geo.edges_of_vertex(vertex_index=0, weights=0.0, sort_index=0)[source]

Uses a EdgesOfVertex Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/mesh/topology/edges_of_vertex.html

Parameters:
Return type:

EdgesOfVertexResult

procfunc.nodes.geo.edges_to_face_groups(boundary_edges=True)[source]

Uses a EdgesToFaceGroups Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/mesh/read/edges_to_face_groups.html

Parameters:

boundary_edges (ProcNode[bool] | bool)

Return type:

ProcNode[int]

class procfunc.nodes.geo.ExtrudeMeshResult[source]

Bases: NamedTuple

ExtrudeMeshResult(mesh, top, side)

mesh: ProcNode[MeshObject]

Alias for field number 0

top: ProcNode[bool]

Alias for field number 1

side: ProcNode[bool]

Alias for field number 2

Supported special methods: __add__, __contains__, __getitem__, __getnewargs__, __iter__, __len__, __mul__, __rmul__

procfunc.nodes.geo.extrude_mesh(mesh, selection=True, offset=(0, 0, 0), offset_scale=1.0, individual=True, mode='FACES')[source]
Parameters:
Return type:

ExtrudeMeshResult

class procfunc.nodes.geo.FaceOfCornerResult[source]

Bases: NamedTuple

FaceOfCornerResult(face_index, index_in_face)

face_index: ProcNode[int]

Alias for field number 0

index_in_face: ProcNode[int]

Alias for field number 1

Supported special methods: __add__, __contains__, __getitem__, __getnewargs__, __iter__, __len__, __mul__, __rmul__

procfunc.nodes.geo.face_of_corner(corner_index=0)[source]

Uses a FaceOfCorner Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/mesh/topology/face_of_corner.html

Parameters:

corner_index (ProcNode[int] | int)

Return type:

FaceOfCornerResult

procfunc.nodes.geo.field_at_index(value=None, index=0, domain='POINT', data_type=None)[source]

Uses a FieldAtIndex Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/utilities/field/evaluate_at_index.html

Parameters:
  • value (TAttribute | None)

  • index (ProcNode[int] | int)

  • domain (Literal['POINT', 'EDGE', 'FACE', 'CORNER', 'CURVE', 'INSTANCE', 'LAYER'])

  • data_type (NodeDataType | RuntimeResolveDataType | None)

Return type:

ProcNode[TAttribute]

procfunc.nodes.geo.field_on_domain(value=0, domain='POINT', data_type=None)[source]

Uses a FieldOnDomain Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/utilities/field/evaluate_on_domain.html

Parameters:
  • value (TFieldOnDomain)

  • domain (Literal['POINT', 'EDGE', 'FACE', 'CORNER', 'CURVE', 'INSTANCE', 'LAYER'])

  • data_type (NodeDataType | RuntimeResolveDataType | None)

Return type:

ProcNode[TFieldOnDomain]

procfunc.nodes.geo.fill_curve(curve, group_id=0, mode='TRIANGLES')[source]

Uses a FillCurve Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/curve/operations/fill_curve.html

Parameters:
Return type:

ProcNode[MeshObject]

procfunc.nodes.geo.fillet_curve(curve, radius=0.25, limit_radius=False, count=1, mode='BEZIER')[source]

Uses a FilletCurve Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/curve/operations/fillet_curve.html

Parameters:
Return type:

ProcNode[CurveObject]

procfunc.nodes.geo.flip_faces(mesh, selection=True)[source]

Uses a FlipFaces Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/mesh/operations/flip_faces.html

Parameters:
Return type:

ProcNode[MeshObject]

procfunc.nodes.geo.geometry_to_instance(geometry)[source]

Uses a GeometryToInstance Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/geometry/geometry_to_instance.html

Parameters:

geometry (ProcNode[TAnyGeometry])

Return type:

ProcNode[Instances]

procfunc.nodes.geo.get_named_grid(volume, name='', remove=True)[source]

Uses a GetNamedGrid Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/volume/index.html

Parameters:
Return type:

ProcNode

procfunc.nodes.geo.grid_to_mesh(grid=0.0, threshold=0.1, adaptivity=0.0)[source]

Uses a GridToMesh Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/volume/operations/volume_to_mesh.html

Parameters:
Return type:

ProcNode[MeshObject]

class procfunc.nodes.geo.ImageInfoResult[source]

Bases: NamedTuple

ImageInfoResult(width, height, has_alpha, frame_count, fps)

width: ProcNode[int]

Alias for field number 0

height: ProcNode[int]

Alias for field number 1

has_alpha: ProcNode[bool]

Alias for field number 2

frame_count: ProcNode[int]

Alias for field number 3

fps: ProcNode[float]

Alias for field number 4

Supported special methods: __add__, __contains__, __getitem__, __getnewargs__, __iter__, __len__, __mul__, __rmul__

procfunc.nodes.geo.image_info(image, frame=0)[source]

Uses a ImageInfo Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/input/scene/image_info.html

Parameters:
Return type:

ImageInfoResult

procfunc.nodes.geo.image_texture(image, vector=(0, 0, 0), frame=0, extension='REPEAT', interpolation='Linear')[source]

Uses a ImageTexture Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/input/scene/image_info.html

Parameters:
Return type:

ProcNode

procfunc.nodes.geo.index_of_nearest(position=(0, 0, 0), group_id=0)[source]

Uses a IndexOfNearest Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/geometry/sample/index_of_nearest.html

Parameters:
Return type:

ProcNode[int]

procfunc.nodes.geo.input_active_camera()[source]

Uses a InputActiveCamera Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/input/scene/active_camera.html

Return type:

ProcNode[Object]

class procfunc.nodes.geo.InputCurveHandlePositionsResult[source]

Bases: NamedTuple

InputCurveHandlePositionsResult(left, right)

left: ProcNode[Vector]

Alias for field number 0

right: ProcNode[Vector]

Alias for field number 1

Supported special methods: __add__, __contains__, __getitem__, __getnewargs__, __iter__, __len__, __mul__, __rmul__

procfunc.nodes.geo.input_curve_handle_positions(relative=False)[source]

Uses a InputCurveHandlePositions Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/curve/read/curve_handle_position.html

Parameters:

relative (ProcNode[bool] | bool)

Return type:

InputCurveHandlePositionsResult

procfunc.nodes.geo.input_curve_tilt()[source]

Uses a InputCurveTilt Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/curve/read/curve_tilt.html

Return type:

ProcNode[float]

procfunc.nodes.geo.input_edge_smooth()[source]

Uses a InputEdgeSmooth Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/mesh/read/is_edge_smooth.html

Return type:

ProcNode[bool]

procfunc.nodes.geo.input_id()[source]

Uses a InputID Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/geometry/read/id.html

Return type:

ProcNode[int]

procfunc.nodes.geo.input_image(image=None)[source]

Uses a InputImage Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/input/constant/image.html

Parameters:

image (Any)

Return type:

ProcNode[Image]

procfunc.nodes.geo.input_index()[source]

Uses a InputIndex Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/geometry/read/input_index.html

Return type:

ProcNode[int]

procfunc.nodes.geo.input_instance_rotation()[source]

Uses a InputInstanceRotation Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/input/constant/rotation.html

Return type:

ProcNode[Vector]

procfunc.nodes.geo.input_instance_scale()[source]

Uses a InputInstanceScale Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/instances/instance_scale.html

Return type:

ProcNode[Vector]

procfunc.nodes.geo.input_material(material=None)[source]

Uses a InputMaterial Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/input/constant/material.html

Parameters:

material (Any)

Return type:

ProcNode[Material]

procfunc.nodes.geo.input_material_index()[source]

Uses a InputMaterialIndex Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/material/material_index.html

Return type:

ProcNode[int]

class procfunc.nodes.geo.InputMeshEdgeAngleResult[source]

Bases: NamedTuple

InputMeshEdgeAngleResult(unsigned_angle, signed_angle)

unsigned_angle: ProcNode[float]

Alias for field number 0

signed_angle: ProcNode[float]

Alias for field number 1

Supported special methods: __add__, __contains__, __getitem__, __getnewargs__, __iter__, __len__, __mul__, __rmul__

procfunc.nodes.geo.input_mesh_edge_angle()[source]

Uses a InputMeshEdgeAngle Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/mesh/read/edge_angle.html

Return type:

InputMeshEdgeAngleResult

procfunc.nodes.geo.input_mesh_edge_neighbors()[source]

Uses a InputMeshEdgeNeighbors Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/mesh/read/edge_neighbors.html

Return type:

ProcNode[int]

class procfunc.nodes.geo.InputMeshEdgeVerticesResult[source]

Bases: NamedTuple

InputMeshEdgeVerticesResult(vertex_index_1, vertex_index_2, position_1, position_2)

vertex_index_1: ProcNode[int]

Alias for field number 0

vertex_index_2: ProcNode[int]

Alias for field number 1

position_1: ProcNode[Vector]

Alias for field number 2

position_2: ProcNode[Vector]

Alias for field number 3

Supported special methods: __add__, __contains__, __getitem__, __getnewargs__, __iter__, __len__, __mul__, __rmul__

procfunc.nodes.geo.input_mesh_edge_vertices()[source]

Uses a InputMeshEdgeVertices Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/mesh/read/edge_vertices.html

Return type:

InputMeshEdgeVerticesResult

procfunc.nodes.geo.input_mesh_face_area()[source]

Uses a InputMeshFaceArea Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/mesh/read/face_area.html

Return type:

ProcNode[float]

procfunc.nodes.geo.input_mesh_face_is_planar(threshold=0.01)[source]

Uses a InputMeshFaceIsPlanar Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/mesh/read/face_is_planar.html

Parameters:

threshold (ProcNode[float] | float)

Return type:

ProcNode[bool]

class procfunc.nodes.geo.InputMeshFaceNeighborsResult[source]

Bases: NamedTuple

InputMeshFaceNeighborsResult(vertex_count, face_count)

vertex_count: ProcNode[int]

Alias for field number 0

face_count: ProcNode[int]

Alias for field number 1

Supported special methods: __add__, __contains__, __getitem__, __getnewargs__, __iter__, __len__, __mul__, __rmul__

procfunc.nodes.geo.input_mesh_face_neighbors()[source]

Uses a InputMeshFaceNeighbors Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/mesh/read/face_neighbors.html

Return type:

InputMeshFaceNeighborsResult

class procfunc.nodes.geo.InputMeshIslandResult[source]

Bases: NamedTuple

InputMeshIslandResult(island_index, island_count)

island_index: ProcNode[int]

Alias for field number 0

island_count: ProcNode[int]

Alias for field number 1

Supported special methods: __add__, __contains__, __getitem__, __getnewargs__, __iter__, __len__, __mul__, __rmul__

procfunc.nodes.geo.input_mesh_island()[source]

Uses a InputMeshIsland Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/mesh/read/mesh_island.html

Return type:

InputMeshIslandResult

class procfunc.nodes.geo.InputMeshVertexNeighborsResult[source]

Bases: NamedTuple

InputMeshVertexNeighborsResult(vertex_count, face_count)

vertex_count: ProcNode[int]

Alias for field number 0

face_count: ProcNode[int]

Alias for field number 1

Supported special methods: __add__, __contains__, __getitem__, __getnewargs__, __iter__, __len__, __mul__, __rmul__

procfunc.nodes.geo.input_mesh_vertex_neighbors()[source]

Uses a InputMeshVertexNeighbors Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/mesh/read/vertex_neighbors.html

Return type:

InputMeshVertexNeighborsResult

class procfunc.nodes.geo.InputNamedAttributeResult[source]

Bases: NamedTuple

InputNamedAttributeResult(attribute, exists)

attribute: ProcNode

Alias for field number 0

exists: ProcNode[bool]

Alias for field number 1

Supported special methods: __add__, __contains__, __getitem__, __getnewargs__, __iter__, __len__, __mul__, __rmul__

procfunc.nodes.geo.input_named_attribute(name='', data_type=None)[source]

Uses a InputNamedAttribute Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/geometry/read/named_attribute.html

Parameters:
Return type:

InputNamedAttributeResult

procfunc.nodes.geo.input_named_layer_selection(name='')[source]

Uses a InputNamedLayerSelection Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/geometry/read/selection.html

Parameters:

name (ProcNode[str] | str)

Return type:

ProcNode[bool]

procfunc.nodes.geo.input_normal()[source]

Uses a InputNormal Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/geometry/read/normal.html

Return type:

ProcNode[Vector]

procfunc.nodes.geo.input_position()[source]

Uses a InputPosition Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/geometry/read/position.html

Return type:

ProcNode[Vector]

procfunc.nodes.geo.input_radius()[source]

Uses a InputRadius Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/geometry/read/radius.html

Return type:

ProcNode[float]

class procfunc.nodes.geo.InputSceneTimeResult[source]

Bases: NamedTuple

InputSceneTimeResult(seconds, frame)

seconds: ProcNode[float]

Alias for field number 0

frame: ProcNode[int]

Alias for field number 1

Supported special methods: __add__, __contains__, __getitem__, __getnewargs__, __iter__, __len__, __mul__, __rmul__

procfunc.nodes.geo.input_scene_time()[source]

Uses a InputSceneTime Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/input/scene/scene_time.html

Return type:

InputSceneTimeResult

procfunc.nodes.geo.input_shade_smooth()[source]

Uses a InputShadeSmooth Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/mesh/write/set_shade_smooth.html

Return type:

ProcNode[bool]

class procfunc.nodes.geo.InputShortestEdgePathsResult[source]

Bases: NamedTuple

InputShortestEdgePathsResult(next_vertex_index, total_cost)

next_vertex_index: ProcNode[int]

Alias for field number 0

total_cost: ProcNode[float]

Alias for field number 1

Supported special methods: __add__, __contains__, __getitem__, __getnewargs__, __iter__, __len__, __mul__, __rmul__

procfunc.nodes.geo.input_shortest_edge_paths(end_vertex=False, edge_cost=1.0)[source]

Uses a InputShortestEdgePaths Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/mesh/read/shortest_edge_paths.html

Parameters:
Return type:

InputShortestEdgePathsResult

procfunc.nodes.geo.input_spline_cyclic()[source]

Uses a InputSplineCyclic Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/curve/read/is_spline_cyclic.html

Return type:

ProcNode[bool]

procfunc.nodes.geo.input_spline_resolution()[source]

Uses a InputSplineResolution Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/curve/read/spline_resolution.html

Return type:

ProcNode[int]

procfunc.nodes.geo.input_tangent()[source]

Uses a InputTangent Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/curve/read/curve_tangent.html

Return type:

ProcNode[Vector]

procfunc.nodes.geo.instance_on_points(points=None, instance=None, selection=True, pick_instance=False, instance_index=0, rotation=(0, 0, 0), scale=(1, 1, 1))[source]

Uses a InstanceOnPoints Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/instances/instance_on_points.html

Parameters:
Return type:

ProcNode[Instances]

procfunc.nodes.geo.instance_transform()[source]

Uses a InstanceTransform Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/instances/instance_transform.html

Return type:

ProcNode

procfunc.nodes.geo.instances_to_points(instances=None, selection=True, position=(0, 0, 0), radius=0.05)[source]

Uses a InstancesToPoints Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/instances/instances_to_points.html

Parameters:
Return type:

ProcNode[MeshObject | CurveObject]

class procfunc.nodes.geo.InterpolateCurvesResult[source]

Bases: NamedTuple

InterpolateCurvesResult(curves, closest_index, closest_weight)

curves: ProcNode[HairObject]

Alias for field number 0

closest_index: ProcNode[int]

Alias for field number 1

closest_weight: ProcNode[float]

Alias for field number 2

Supported special methods: __add__, __contains__, __getitem__, __getnewargs__, __iter__, __len__, __mul__, __rmul__

procfunc.nodes.geo.interpolate_curves(guide_curves, points, guide_up=(0, 0, 0), guide_group_id=0, point_up=(0, 0, 0), point_group_id=0, max_neighbors=4)[source]

Uses a InterpolateCurves Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/curve/operations/interpolate_curves.html

Parameters:
Return type:

InterpolateCurvesResult

procfunc.nodes.geo.is_viewport()[source]

Uses a IsViewport Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/input/scene/is_viewport.html

Return type:

ProcNode[bool]

procfunc.nodes.geo.join_geometry(geometries)[source]

Uses a JoinGeometry Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/geometry/join_geometry.html

Parameters:

geometries (list[ProcNode[TAnyGeometry]])

Return type:

ProcNode[TAnyGeometry]

procfunc.nodes.geo.material_selection(material=None)[source]

Uses a MaterialSelection Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/material/material_selection.html

Parameters:

material (ProcNode[Material] | Material)

Return type:

ProcNode[bool]

procfunc.nodes.geo.merge_by_distance(geometry, selection=True, distance=0.001, mode='ALL')[source]

Uses a MergeByDistance Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/geometry/operations/merge_by_distance.html

Parameters:
Return type:

ProcNode[MeshObject | CurveObject | Instances | VolumeObject]

procfunc.nodes.geo.mesh_boolean(mesh_1=None, mesh_2=None, self_intersection=False, hole_tolerant=False, operation='DIFFERENCE', solver='FLOAT')[source]

Uses a MeshBoolean Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/mesh/operations/mesh_boolean.html

Parameters:
Return type:

ProcNode[MeshObject]

procfunc.nodes.geo.mesh_circle(vertices=32, radius=1.0, fill_type='NONE')[source]

Uses a MeshCircle Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/mesh/primitives/mesh_circle.html

Parameters:
Return type:

ProcNode[MeshObject]

class procfunc.nodes.geo.MeshResult[source]

Bases: NamedTuple

MeshResult(mesh, uv_map)

mesh: ProcNode[MeshObject]

Alias for field number 0

uv_map: ProcNode[MeshObject]

Alias for field number 1

Supported special methods: __add__, __contains__, __getitem__, __getnewargs__, __iter__, __len__, __mul__, __rmul__

class procfunc.nodes.geo.MeshConeResult[source]

Bases: NamedTuple

MeshConeResult(mesh, uv_map, top, bottom, side)

mesh: ProcNode[MeshObject]

Alias for field number 0

uv_map: ProcNode[MeshObject]

Alias for field number 1

top: ProcNode[MeshObject]

Alias for field number 2

bottom: ProcNode[MeshObject]

Alias for field number 3

side: ProcNode[MeshObject]

Alias for field number 4

Supported special methods: __add__, __contains__, __getitem__, __getnewargs__, __iter__, __len__, __mul__, __rmul__

procfunc.nodes.geo.mesh_cone(vertices=32, side_segments=1, fill_segments=1, radius_top=0.0, radius_bottom=1.0, depth=2.0, fill_type='NGON')[source]

Uses a MeshCone Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/mesh/primitives/cone.html

Parameters:
Return type:

MeshConeResult

procfunc.nodes.geo.mesh_cube(size=(1, 1, 1), vertices_x=2, vertices_y=2, vertices_z=2)[source]

Uses a MeshCube Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/mesh/primitives/cube.html

Parameters:
Return type:

MeshResult

class procfunc.nodes.geo.MeshCylinderResult[source]

Bases: NamedTuple

MeshCylinderResult(mesh, top, side, bottom, uv_map)

mesh: ProcNode[MeshObject]

Alias for field number 0

top: ProcNode[MeshObject]

Alias for field number 1

side: ProcNode[MeshObject]

Alias for field number 2

bottom: ProcNode[MeshObject]

Alias for field number 3

uv_map: ProcNode[MeshObject]

Alias for field number 4

Supported special methods: __add__, __contains__, __getitem__, __getnewargs__, __iter__, __len__, __mul__, __rmul__

procfunc.nodes.geo.mesh_cylinder(vertices=32, side_segments=1, fill_segments=1, radius=1.0, depth=2.0, fill_type='NGON')[source]

Uses a MeshCylinder Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/mesh/primitives/cylinder.html

Parameters:
Return type:

MeshCylinderResult

procfunc.nodes.geo.mesh_face_set_boundaries(face_group_id=0)[source]

Uses a MeshFaceSetBoundaries Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/mesh/read/face_group_boundaries.html

Parameters:

face_group_id (ProcNode[int] | int)

Return type:

ProcNode[bool]

procfunc.nodes.geo.mesh_grid(size_x=1.0, size_y=1.0, vertices_x=3, vertices_y=3)[source]

Uses a MeshGrid Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/mesh/primitives/grid.html

Parameters:
Return type:

MeshResult

procfunc.nodes.geo.mesh_icosphere(radius=1.0, subdivisions=1)[source]

Uses a MeshIcoSphere Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/mesh/primitives/icosphere.html

Parameters:
Return type:

MeshResult

procfunc.nodes.geo.mesh_line(start_location=(0, 0, 0), offset=(0, 0, 1), count=10, count_mode='TOTAL')[source]

Uses a MeshLine Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/mesh/primitives/mesh_line.html

Parameters:
Return type:

ProcNode[MeshObject]

procfunc.nodes.geo.mesh_line_from_endpoints(start_location, end_location, count=10, count_mode='TOTAL')[source]
Parameters:
Return type:

ProcNode[MeshObject]

procfunc.nodes.geo.mesh_to_curve(mesh, selection=True)[source]

Uses a MeshToCurve Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/mesh/operations/mesh_to_curve.html

Parameters:
Return type:

ProcNode[CurveObject]

procfunc.nodes.geo.mesh_to_density_grid(mesh, density=1.0, voxel_size=0.3, gradient_width=0.2)[source]

Uses a MeshToDensityGrid Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/mesh/operations/mesh_to_volume.html

Parameters:
Return type:

ProcNode

procfunc.nodes.geo.mesh_to_points(mesh, selection=True, position=(0, 0, 0), radius=0.05, mode='VERTICES')[source]

Uses a MeshToPoints Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/mesh/operations/mesh_to_points.html

Parameters:
Return type:

ProcNode[MeshObject | CurveObject]

procfunc.nodes.geo.mesh_to_sdf_grid(mesh, voxel_size=0.3, band_width=3)[source]

Uses a MeshToSDFGrid Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/mesh/operations/mesh_to_volume.html

Parameters:
Return type:

ProcNode

procfunc.nodes.geo.mesh_to_volume(mesh, density=1.0, voxel_amount=64.0, interior_band_width=0.2, resolution_mode='VOXEL_AMOUNT')[source]

Uses a MeshToVolume Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/mesh/operations/mesh_to_volume.html

Parameters:
Return type:

ProcNode[VolumeObject]

procfunc.nodes.geo.mesh_uv_sphere(segments=32, rings=16, radius=1.0)[source]

Uses a MeshUVSphere Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/mesh/primitives/uv_sphere.html

Parameters:
Return type:

MeshResult

class procfunc.nodes.geo.ObjectInfoResult[source]

Bases: NamedTuple, Generic[TObjectInfo]

ObjectInfoResult(geometry, transform, location, rotation, scale)

geometry: ProcNode[TObjectInfo]

Alias for field number 0

transform: ProcNode[Vector]

Alias for field number 1

location: ProcNode[Vector]

Alias for field number 2

rotation: ProcNode[Vector]

Alias for field number 3

scale: ProcNode[Vector]

Alias for field number 4

Supported special methods: __add__, __contains__, __getitem__, __getnewargs__, __iter__, __len__, __mul__, __rmul__

procfunc.nodes.geo.object_info(object, as_instance=False, transform_space='ORIGINAL')[source]

Uses a ObjectInfo Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/input/scene/object_info.html

Parameters:
Return type:

ObjectInfoResult[TObjectInfo]

procfunc.nodes.geo.offset_corner_in_face(corner_index=0, offset=0)[source]

Uses a OffsetCornerInFace Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/mesh/topology/offset_corner_in_face.html

Parameters:
Return type:

ProcNode[int]

class procfunc.nodes.geo.OffsetPointInCurveResult[source]

Bases: NamedTuple

OffsetPointInCurveResult(is_valid_offset, point_index)

is_valid_offset: ProcNode[bool]

Alias for field number 0

point_index: ProcNode[int]

Alias for field number 1

Supported special methods: __add__, __contains__, __getitem__, __getnewargs__, __iter__, __len__, __mul__, __rmul__

procfunc.nodes.geo.offset_point_in_curve(point_index=0, offset=0)[source]

Uses a OffsetPointInCurve Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/curve/topology/offset_point_in_curve.html

Parameters:
Return type:

OffsetPointInCurveResult

procfunc.nodes.geo.points(count=1, position=(0, 0, 0), radius=0.1)[source]

Uses a Points Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/point/points.html

Parameters:
Return type:

ProcNode[MeshObject | CurveObject]

class procfunc.nodes.geo.PointsOfCurveResult[source]

Bases: NamedTuple

PointsOfCurveResult(point_index, total)

point_index: ProcNode[int]

Alias for field number 0

total: ProcNode[int]

Alias for field number 1

Supported special methods: __add__, __contains__, __getitem__, __getnewargs__, __iter__, __len__, __mul__, __rmul__

procfunc.nodes.geo.points_of_curve(curve_index=0, weights=0.0, sort_index=0)[source]

Uses a PointsOfCurve Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/curve/topology/points_of_curve.html

Parameters:
Return type:

PointsOfCurveResult

procfunc.nodes.geo.points_to_curves(points, curve_group_id=0, weight=0.0)[source]

Uses a PointsToCurves Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/point/points_to_curves.html

Parameters:
Return type:

ProcNode[CurveObject]

procfunc.nodes.geo.points_to_sdf_grid(points, radius=0.5, voxel_size=0.3)[source]

Uses a PointsToSDFGrid Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/point/points_to_volume.html

Parameters:
Return type:

ProcNode

procfunc.nodes.geo.points_to_vertices(points, selection=True)[source]

Uses a PointsToVertices Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/point/points_to_vertices.html

Parameters:
Return type:

ProcNode[MeshObject]

procfunc.nodes.geo.points_to_volume(points, density=1.0, voxel_amount=64.0, radius=0.5, resolution_mode='VOXEL_AMOUNT')[source]

Uses a PointsToVolume Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/point/points_to_volume.html

Parameters:
Return type:

ProcNode[VolumeObject]

class procfunc.nodes.geo.ProximityResult[source]

Bases: NamedTuple

ProximityResult(position, distance, is_valid)

position: ProcNode[Vector]

Alias for field number 0

distance: ProcNode[float]

Alias for field number 1

is_valid: ProcNode[bool]

Alias for field number 2

Supported special methods: __add__, __contains__, __getitem__, __getnewargs__, __iter__, __len__, __mul__, __rmul__

procfunc.nodes.geo.proximity(geometry, group_id=0, sample_position=(0, 0, 0), sample_group_id=0, target_element='FACES')[source]

Uses a Proximity Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/geometry/sample/geometry_proximity.html

Parameters:
Return type:

ProximityResult

class procfunc.nodes.geo.RaycastResult[source]

Bases: NamedTuple

RaycastResult(attribute, hit_distance, hit_normal, hit_position, is_hit)

attribute: ProcNode[Vector]

Alias for field number 0

hit_distance: ProcNode[float]

Alias for field number 1

hit_normal: ProcNode[Vector]

Alias for field number 2

hit_position: ProcNode[Vector]

Alias for field number 3

is_hit: ProcNode[bool]

Alias for field number 4

Supported special methods: __add__, __contains__, __getitem__, __getnewargs__, __iter__, __len__, __mul__, __rmul__

procfunc.nodes.geo.raycast(geometry, attribute=0, ray_direction=(0, 0, -1), ray_length=100.0, source_position=(0, 0, 0), mapping='INTERPOLATED', data_type=None)[source]

Uses a Raycast Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/geometry/sample/raycast.html

Parameters:
Return type:

RaycastResult

procfunc.nodes.geo.realize_instances(geometry, selection=True, realize_all=True, depth=0)[source]

Uses a RealizeInstances Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/instances/realize_instances.html

Parameters:
Return type:

ProcNode[MeshObject | CurveObject | Instances | VolumeObject]

procfunc.nodes.geo.remove_attribute(geometry, name='', pattern_mode='EXACT')[source]

Uses a RemoveAttribute Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/attribute/remove_named_attribute.html

Parameters:
Return type:

ProcNode[TAnyGeometry]

procfunc.nodes.geo.replace_material(geometry, old=None, new=None)[source]

Uses a ReplaceMaterial Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/material/replace_material.html

Parameters:
Return type:

ProcNode[MeshObject]

procfunc.nodes.geo.resample_curve_evaluated(curve, selection=True)[source]

Uses a ResampleCurve Geometry Node with mode=”EVALUATED”.

From Blender docs: Evaluate the spline’s points based on the resolution attribute for NURBS and Bézier splines. Changes nothing for poly splines. https://docs.blender.org/manual/en/latest/modeling/geometry_nodes/curve/operations/resample_curve.html

Parameters:
Return type:

ProcNode[CurveObject]

procfunc.nodes.geo.resample_curve_count(curve, selection=True, count=10)[source]

Uses a ResampleCurve Geometry Node with mode=”COUNT”. https://docs.blender.org/manual/en/latest/modeling/geometry_nodes/curve/operations/resample_curve.html

Parameters:
Return type:

ProcNode[CurveObject]

procfunc.nodes.geo.resample_curve_length(curve, selection=True, length=1.0)[source]

Uses a ResampleCurve Geometry Node with mode=”LENGTH”. https://docs.blender.org/manual/en/latest/modeling/geometry_nodes/curve/operations/resample_curve.html

Parameters:
Return type:

ProcNode[CurveObject]

procfunc.nodes.geo.reverse_curve(curve, selection=True)[source]

Uses a ReverseCurve Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/curve/operations/reverse_curve.html

Parameters:
Return type:

ProcNode[CurveObject]

procfunc.nodes.geo.rotate_instances(instances, selection=True, rotation=(0, 0, 0), pivot_point=(0, 0, 0), local_space=True)[source]

Uses a RotateInstances Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/instances/rotate_instances.html

Parameters:
Return type:

ProcNode[Instances]

procfunc.nodes.geo.sdf_grid_boolean(grid_1=0.0, grid_2=0.0)[source]

Uses a SDFGridBoolean Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/volume/index.html

Parameters:
Return type:

ProcNode[MeshObject | CurveObject | Instances | VolumeObject]

class procfunc.nodes.geo.SampleCurveResult[source]

Bases: NamedTuple

SampleCurveResult(normal, position, tangent, value)

normal: ProcNode[Vector]

Alias for field number 0

position: ProcNode[Vector]

Alias for field number 1

tangent: ProcNode[Vector]

Alias for field number 2

value: ProcNode[TAttribute]

Alias for field number 3

Supported special methods: __add__, __contains__, __getitem__, __getnewargs__, __iter__, __len__, __mul__, __rmul__

procfunc.nodes.geo.sample_curve(curves, curve_index=0, factor=0.0, value=None, mode='FACTOR', use_all_curves=False, data_type=None)[source]

Uses a SampleCurve Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/curve/sample/sample_curve.html

Parameters:
Return type:

SampleCurveResult

procfunc.nodes.geo.sample_curve_length(curves, length=0.0, curve_index=0, value=None, use_all_curves=False, data_type=None)[source]

Uses a SampleCurve Geometry Node with LENGTH mode.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/curve/sample/sample_curve.html

Parameters:
Return type:

SampleCurveResult

procfunc.nodes.geo.sample_index(geometry, index=0, value=None, clamp=False, domain='POINT', data_type=None)[source]

Uses a SampleIndex Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/geometry/sample/sample_index.html

Parameters:
Return type:

ProcNode[TAttribute]

procfunc.nodes.geo.sample_nearest(geometry, sample_position=(0, 0, 0), domain='POINT')[source]

Uses a SampleNearest Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/geometry/sample/sample_nearest.html

Parameters:
Return type:

ProcNode[int]

class procfunc.nodes.geo.SampleResult[source]

Bases: NamedTuple, Generic[TAttribute]

SampleResult(value, is_valid)

value: ProcNode[TAttribute]

Alias for field number 0

is_valid: ProcNode[bool]

Alias for field number 1

Supported special methods: __add__, __contains__, __getitem__, __getnewargs__, __iter__, __len__, __mul__, __rmul__

procfunc.nodes.geo.sample_nearest_surface(mesh, value=None, group_id=0, sample_group_id=0, sample_position=(0, 0, 0), data_type=None)[source]

Uses a SampleNearestSurface Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/mesh/sample/sample_nearest_surface.html

Parameters:
Return type:

SampleResult[TAttribute]

procfunc.nodes.geo.sample_uv_surface(mesh, value=None, sample_uv=(0, 0, 0), uv_map=(0, 0, 0), data_type=None)[source]

Uses a SampleUVSurface Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/mesh/sample/sample_uv_surface.html

Parameters:
Return type:

SampleResult[TAttribute]

procfunc.nodes.geo.scale_elements(geometry, selection=True, scale=1.0, center=(0, 0, 0), axis=None, domain='FACE', scale_mode='UNIFORM')[source]

Uses a ScaleElements Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/mesh/operations/scale_elements.html

Parameters:
Return type:

ProcNode[MeshObject | CurveObject | Instances | VolumeObject]

procfunc.nodes.geo.scale_instances(instances, selection=True, scale=(1, 1, 1), center=(0, 0, 0), local_space=True)[source]

Uses a ScaleInstances Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/instances/scale_instances.html

Parameters:
Return type:

ProcNode[Instances]

procfunc.nodes.geo.self_object()[source]

Uses a SelfObject Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/input/scene/self_object.html

Return type:

ProcNode[Object]

class procfunc.nodes.geo.SeparateComponentsResult[source]

Bases: NamedTuple

SeparateComponentsResult(mesh, curve, point_cloud, volume, instances)

mesh: ProcNode[MeshObject]

Alias for field number 0

curve: ProcNode[CurveObject]

Alias for field number 1

point_cloud: ProcNode[MeshObject | CurveObject]

Alias for field number 2

volume: ProcNode[VolumeObject]

Alias for field number 3

instances: ProcNode[Instances]

Alias for field number 4

Supported special methods: __add__, __contains__, __getitem__, __getnewargs__, __iter__, __len__, __mul__, __rmul__

procfunc.nodes.geo.separate_components(geometry)[source]

Uses a SeparateComponents Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/geometry/operations/separate_components.html

Parameters:

geometry (ProcNode[MeshObject | CurveObject | Instances | VolumeObject])

Return type:

SeparateComponentsResult

class procfunc.nodes.geo.SeparateGeometryResult[source]

Bases: NamedTuple, Generic[TMeshOrCurve]

SeparateGeometryResult(selection, inverted)

selection: ProcNode[TMeshOrCurve]

Alias for field number 0

inverted: ProcNode[TMeshOrCurve]

Alias for field number 1

Supported special methods: __add__, __contains__, __getitem__, __getnewargs__, __iter__, __len__, __mul__, __rmul__

procfunc.nodes.geo.separate_geometry(geometry, selection=True, domain='POINT')[source]

Uses a SeparateGeometry Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/geometry/operations/separate_geometry.html

Parameters:
Return type:

SeparateGeometryResult[TMeshOrCurve]

procfunc.nodes.geo.set_curve_handle_positions(curve, selection=True, position=(0, 0, 0), offset=(0, 0, 0), mode='LEFT')[source]

Uses a SetCurveHandlePositions Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/curve/write/set_handle_positions.html

Parameters:
Return type:

ProcNode[CurveObject]

procfunc.nodes.geo.set_curve_normal(curve, selection=True, mode='MINIMUM_TWIST', normal=(0, 0, 1))[source]

Uses a SetCurveNormal Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/curve/write/set_curve_normal.html

Parameters:
Return type:

ProcNode[CurveObject]

procfunc.nodes.geo.set_curve_radius(curve, selection=True, radius=0.005)[source]

Uses a SetCurveRadius Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/curve/write/set_curve_radius.html

Parameters:
Return type:

ProcNode[CurveObject]

procfunc.nodes.geo.set_curve_tilt(curve, selection=True, tilt=0.0)[source]

Uses a SetCurveTilt Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/curve/write/set_curve_tilt.html

Parameters:
Return type:

ProcNode[CurveObject]

procfunc.nodes.geo.set_id(geometry, selection=True, id=0)[source]

Uses a SetID Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/geometry/write/set_id.html

Parameters:
Return type:

ProcNode[TAnyGeometry]

procfunc.nodes.geo.set_instance_transform(instances, transform=None, selection=True)[source]

Uses a SetInstanceTransform Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/instances/set_instance_transform.html

Parameters:
Return type:

ProcNode[Instances]

procfunc.nodes.geo.set_material(geometry, material=None, selection=None)[source]

Uses a SetMaterial Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/material/set_material.html

Parameters:
Return type:

ProcNode[MeshObject]

procfunc.nodes.geo.set_material_index(geometry, selection=True, material_index=0)[source]

Uses a SetMaterialIndex Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/material/set_material_index.html

Parameters:
Return type:

ProcNode[MeshObject]

procfunc.nodes.geo.set_point_radius(points, selection=True, radius=0.05)[source]

Uses a SetPointRadius Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/point/set_point_radius.html

Parameters:
Return type:

ProcNode[PointCloudObject]

procfunc.nodes.geo.set_position(geometry, selection=True, position=(0, 0, 0), offset=(0, 0, 0))[source]

Uses a SetPosition Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/geometry/write/set_position.html

Parameters:
Return type:

ProcNode[TAnyGeometry]

procfunc.nodes.geo.set_shade_smooth(geometry, selection=True, shade_smooth=True, domain='FACE')[source]

Uses a SetShadeSmooth Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/mesh/write/set_shade_smooth.html

Parameters:
Return type:

ProcNode[MeshObject]

procfunc.nodes.geo.set_spline_cyclic(curve, selection=True, cyclic=False)[source]

Uses a SetSplineCyclic Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/curve/write/set_spline_cyclic.html

Parameters:
Return type:

ProcNode[CurveObject]

procfunc.nodes.geo.set_spline_resolution(curve, selection=True, resolution=12)[source]

Uses a SetSplineResolution Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/curve/write/set_spline_resolution.html

Parameters:
Return type:

ProcNode[CurveObject]

procfunc.nodes.geo.sort_elements(geometry, selection=True, group_id=0, sort_weight=0.0, domain='POINT')[source]

Uses a SortElements Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/geometry/operations/sort_elements.html

Parameters:
Return type:

ProcNode[TAnyGeometry]

class procfunc.nodes.geo.SplineLengthResult[source]

Bases: NamedTuple

SplineLengthResult(length, point_count)

length: ProcNode[float]

Alias for field number 0

point_count: ProcNode[int]

Alias for field number 1

Supported special methods: __add__, __contains__, __getitem__, __getnewargs__, __iter__, __len__, __mul__, __rmul__

procfunc.nodes.geo.spline_length()[source]

Uses a SplineLength Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/curve/read/spline_length.html

Return type:

SplineLengthResult

class procfunc.nodes.geo.SplineParameterResult[source]

Bases: NamedTuple

SplineParameterResult(factor, length, index)

factor: ProcNode[float]

Alias for field number 0

length: ProcNode[float]

Alias for field number 1

index: ProcNode[int]

Alias for field number 2

Supported special methods: __add__, __contains__, __getitem__, __getnewargs__, __iter__, __len__, __mul__, __rmul__

procfunc.nodes.geo.spline_parameter()[source]

Uses a SplineParameter Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/curve/read/spline_parameter.html

Return type:

SplineParameterResult

procfunc.nodes.geo.split_edges(mesh, selection=True)[source]

Uses a SplitEdges Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/mesh/operations/split_edges.html

Parameters:
Return type:

ProcNode[MeshObject]

class procfunc.nodes.geo.SplitToInstancesResult[source]

Bases: NamedTuple

SplitToInstancesResult(instances, group_id)

instances: ProcNode[Instances]

Alias for field number 0

group_id: ProcNode[int]

Alias for field number 1

Supported special methods: __add__, __contains__, __getitem__, __getnewargs__, __iter__, __len__, __mul__, __rmul__

procfunc.nodes.geo.split_to_instances(geometry, selection=True, group_id=0, domain='POINT')[source]

Uses a SplitToInstances Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/geometry/operations/split_to_instances.html

Parameters:
Return type:

SplitToInstancesResult

procfunc.nodes.geo.store_named_attribute(geometry, name='', selection=True, value=None, domain='POINT', data_type=None)[source]

Uses a StoreNamedAttribute Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/attribute/store_named_attribute.html

Parameters:
Return type:

ProcNode[TMeshOrCurve]

procfunc.nodes.geo.store_named_grid(volume, grid=0.0, name='')[source]

Uses a StoreNamedGrid Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/volume/index.html

Parameters:
Return type:

ProcNode

procfunc.nodes.geo.string_join(strings, delimiter='')[source]

Uses a StringJoin Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/utilities/text/join_strings.html

Parameters:
Return type:

ProcNode[str]

class procfunc.nodes.geo.StringToCurvesResult[source]

Bases: NamedTuple

StringToCurvesResult(curve_instances, line, pivot_point)

curve_instances: ProcNode[Instances]

Alias for field number 0

line: ProcNode[CurveObject]

Alias for field number 1

pivot_point: ProcNode[Vector]

Alias for field number 2

Supported special methods: __add__, __contains__, __getitem__, __getnewargs__, __iter__, __len__, __mul__, __rmul__

procfunc.nodes.geo.string_to_curves(string, size=1.0, character_spacing=1.0, word_spacing=1.0, line_spacing=1.0, text_box_width=0.0, align_x='LEFT', align_y='TOP_BASELINE', overflow='OVERFLOW', pivot_mode='BOTTOM_LEFT')[source]

Uses a StringToCurves Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/utilities/text/string_to_curves.html

Parameters:
Return type:

StringToCurvesResult

procfunc.nodes.geo.subdivide_curve(curve, cuts=1)[source]

Uses a SubdivideCurve Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/curve/operations/subdivide_curve.html

Parameters:
Return type:

ProcNode[CurveObject]

procfunc.nodes.geo.subdivide_mesh(mesh, level=1)[source]

Uses a SubdivideMesh Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/mesh/operations/subdivide_mesh.html

Parameters:
Return type:

ProcNode[MeshObject]

procfunc.nodes.geo.subdivision_surface(mesh, level=1, edge_crease=0.0, vertex_crease=0.0, boundary_smooth='ALL', uv_smooth='PRESERVE_BOUNDARIES')[source]

Uses a SubdivisionSurface Geometry Node.

See: http://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/operations/mesh/subdivision_surface.html

Parameters:
Return type:

ProcNode[MeshObject]

procfunc.nodes.geo.transform(geometry, translation=(0, 0, 0), rotation=(0, 0, 0), scale=(1, 1, 1))[source]

Uses a Transform Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/geometry/operations/transform_geometry.html

Parameters:
Return type:

ProcNode[TMeshOrCurve]

procfunc.nodes.geo.transform_by_matrix(geometry, matrix)[source]
Parameters:
procfunc.nodes.geo.translate_instances(instances, selection=True, translation=(0, 0, 0), local_space=True)[source]

Uses a TranslateInstances Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/instances/translate_instances.html

Parameters:
Return type:

ProcNode[Instances]

procfunc.nodes.geo.triangulate(mesh, selection=True, minimum_vertices=4, ngon_method='BEAUTY', quad_method='SHORTEST_DIAGONAL')[source]

Uses a Triangulate Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/mesh/operations/triangulate.html

Parameters:
Return type:

ProcNode[MeshObject]

procfunc.nodes.geo.trim_curve(curve, selection=True, start=0.0, end=1.0, mode='FACTOR')[source]

Uses a TrimCurve Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/curve/operations/trim_curve.html

Parameters:
Return type:

ProcNode[CurveObject]

procfunc.nodes.geo.uv_pack_islands(uv=(0, 0, 0), selection=True, margin=0.001, rotate=True)[source]

Uses a UVPackIslands Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/mesh/uv/pack_uv_islands.html

Parameters:
Return type:

ProcNode[Vector]

procfunc.nodes.geo.uv_unwrap(selection=True, seam=False, margin=0.001, fill_holes=True, method='ANGLE_BASED')[source]

Uses a UVUnwrap Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/mesh/uv/uv_unwrap.html

Parameters:
Return type:

ProcNode[Vector]

procfunc.nodes.geo.vertex_of_corner(corner_index=0)[source]

Uses a VertexOfCorner Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/mesh/topology/vertex_of_corner.html

Parameters:

corner_index (ProcNode[int] | int)

Return type:

ProcNode[int]

class procfunc.nodes.geo.TViewer
def viewer(

geometry: t.ProcNode[t.Geometry], value: TViewer = 0, domain: TDomain = “AUTO”, data_type: NodeDataType | RuntimeResolveDataType | None = None,

) -> t.ProcNode:

“”” Uses a Viewer Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/output/viewer.html “”” if data_type is None:

data_type = RuntimeResolveDataType(

[NodeDataType.BOOLEAN, NodeDataType.INT, NodeDataType.FLOAT], [“Value”],

)

return t.ProcNode.from_nodetype(

node_type=”GeometryNodeViewer”, inputs={“Geometry”: geometry, “Value”: value}, attrs={

“domain”: domain, “data_type”: data_type,

},

)

alias of TypeVar(‘TViewer’, ~procfunc.nodes.types.ProcNode[bool] | bool, ~procfunc.nodes.types.ProcNode[int] | int, ~procfunc.nodes.types.ProcNode[float] | float)

class procfunc.nodes.geo.ViewportTransformResult[source]

Bases: NamedTuple

ViewportTransformResult(projection, view, is_orthographic)

projection: ProcNode

Alias for field number 0

view: ProcNode

Alias for field number 1

is_orthographic: ProcNode[bool]

Alias for field number 2

Supported special methods: __add__, __contains__, __getitem__, __getnewargs__, __iter__, __len__, __mul__, __rmul__

procfunc.nodes.geo.viewport_transform()[source]

Uses a ViewportTransform Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/input/scene/viewport_transform.html

Return type:

ViewportTransformResult

procfunc.nodes.geo.volume_cube(density=1.0, background=0.0, min=(-1, -1, -1), max=(1, 1, 1), resolution_x=32, resolution_y=32, resolution_z=32)[source]

Uses a VolumeCube Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/volume/primitives/volume_cube.html

Parameters:
Return type:

ProcNode[VolumeObject]

procfunc.nodes.geo.volume_to_mesh(volume, threshold=0.1, adaptivity=0.0, resolution_mode='GRID')[source]

Uses a VolumeToMesh Geometry Node.

See: https://docs.blender.org/manual/en/4.2/modeling/geometry_nodes/volume/operations/volume_to_mesh.html

Parameters:
Return type:

ProcNode[MeshObject]

pf.nodes.math

Math and Vector Math Node bindings for Blender

procfunc.nodes.math.clamp(value=1.0, min=0.0, max=1.0, clamp_type='MINMAX')[source]

Uses a Clamp Shader Node.

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/converter/clamp.html

Parameters:
Return type:

ProcNode[float]

procfunc.nodes.math.add(a=0.5, b=0.5)[source]
Parameters:
Return type:

ProcNode[float]

procfunc.nodes.math.subtract(a=0.5, b=0.5)[source]
Parameters:
Return type:

ProcNode[float]

procfunc.nodes.math.multiply(a=0.5, b=0.5)[source]
Parameters:
Return type:

ProcNode[float]

procfunc.nodes.math.multiply_add(a=0.5, b=0.5, addend=0.0)[source]
Parameters:
Return type:

ProcNode[float]

procfunc.nodes.math.divide(numerator=0.5, denominator=0.5)[source]
Parameters:
Return type:

ProcNode[float]

procfunc.nodes.math.power(base=0.5, exponent=0.5)[source]
Parameters:
Return type:

ProcNode[float]

procfunc.nodes.math.logarithm(value=0.5, base=0.5)[source]
Parameters:
Return type:

ProcNode[float]

procfunc.nodes.math.sqrt(value=0.5)[source]
Parameters:

value (ProcNode[float] | float)

Return type:

ProcNode[float]

procfunc.nodes.math.inverse_sqrt(value=0.5)[source]
Parameters:

value (ProcNode[float] | float)

Return type:

ProcNode[float]

procfunc.nodes.math.absolute(value=0.5)[source]
Parameters:

value (ProcNode[float] | float)

Return type:

ProcNode[float]

procfunc.nodes.math.exponent(value=0.5)[source]
Parameters:

value (ProcNode[float] | float)

Return type:

ProcNode[float]

procfunc.nodes.math.minimum(a=0.5, b=0.5)[source]
Parameters:
Return type:

ProcNode[float]

procfunc.nodes.math.maximum(a=0.5, b=0.5)[source]
Parameters:
Return type:

ProcNode[float]

procfunc.nodes.math.less_than(a=0.5, b=0.5)[source]
Parameters:
Return type:

ProcNode[float]

procfunc.nodes.math.greater_than(a=0.5, b=0.5)[source]
Parameters:
Return type:

ProcNode[float]

procfunc.nodes.math.sign(value=0.5)[source]
Parameters:

value (ProcNode[float] | float)

Return type:

ProcNode[float]

procfunc.nodes.math.compare(a=0.5, b=0.5, epsilon=0.001)[source]
Parameters:
Return type:

ProcNode[float]

procfunc.nodes.math.smooth_minimum(a=0.5, b=0.5, distance=0.0)[source]
Parameters:
Return type:

ProcNode[float]

procfunc.nodes.math.smooth_maximum(a=0.5, b=0.5, distance=0.0)[source]
Parameters:
Return type:

ProcNode[float]

procfunc.nodes.math.round(value=0.5)[source]
Parameters:

value (ProcNode[float] | float)

Return type:

ProcNode[float]

procfunc.nodes.math.floor(value=0.5)[source]
Parameters:

value (ProcNode[float] | float)

Return type:

ProcNode[float]

procfunc.nodes.math.ceil(value=0.5)[source]
Parameters:

value (ProcNode[float] | float)

Return type:

ProcNode[float]

procfunc.nodes.math.truncate(value=0.5)[source]
Parameters:

value (ProcNode[float] | float)

Return type:

ProcNode[float]

procfunc.nodes.math.fraction(value=0.5)[source]
Parameters:

value (ProcNode[float] | float)

Return type:

ProcNode[float]

procfunc.nodes.math.modulo(a=0.5, b=0.5)[source]
Parameters:
Return type:

ProcNode[float]

procfunc.nodes.math.floor_mod(a=0.5, b=0.5)[source]
Parameters:
Return type:

ProcNode[float]

procfunc.nodes.math.wrap(value=0.5, max_val=1.0, min_val=0.0)[source]
Parameters:
Return type:

ProcNode[float]

procfunc.nodes.math.snap(value=0.5, increment=1.0)[source]
Parameters:
Return type:

ProcNode[float]

procfunc.nodes.math.pingpong(value=0.5, scale=1.0)[source]
Parameters:
Return type:

ProcNode[float]

procfunc.nodes.math.sin(value=0.5)[source]
Parameters:

value (ProcNode[float] | float)

Return type:

ProcNode[float]

procfunc.nodes.math.cos(value=0.5)[source]
Parameters:

value (ProcNode[float] | float)

Return type:

ProcNode[float]

procfunc.nodes.math.tan(value=0.5)[source]
Parameters:

value (ProcNode[float] | float)

Return type:

ProcNode[float]

procfunc.nodes.math.asin(value=0.5)[source]
Parameters:

value (ProcNode[float] | float)

Return type:

ProcNode[float]

procfunc.nodes.math.acos(value=0.5)[source]
Parameters:

value (ProcNode[float] | float)

Return type:

ProcNode[float]

procfunc.nodes.math.atan(value=0.5)[source]
Parameters:

value (ProcNode[float] | float)

Return type:

ProcNode[float]

procfunc.nodes.math.atan2(y=0.5, x=0.5)[source]
Parameters:
Return type:

ProcNode[float]

procfunc.nodes.math.sinh(value=0.5)[source]
Parameters:

value (ProcNode[float] | float)

Return type:

ProcNode[float]

procfunc.nodes.math.cosh(value=0.5)[source]
Parameters:

value (ProcNode[float] | float)

Return type:

ProcNode[float]

procfunc.nodes.math.tanh(value=0.5)[source]
Parameters:

value (ProcNode[float] | float)

Return type:

ProcNode[float]

procfunc.nodes.math.deg_to_rad(value=0.5)[source]
Parameters:

value (ProcNode[float] | float)

Return type:

ProcNode[float]

procfunc.nodes.math.rad_to_deg(value=0.5)[source]
Parameters:

value (ProcNode[float] | float)

Return type:

ProcNode[float]

procfunc.nodes.math.vector_add(a=(0, 0, 0), b=(0, 0, 0))[source]

Add two vectors.

Parameters:
Return type:

ProcNode[Vector]

procfunc.nodes.math.vector_subtract(a=(0, 0, 0), b=(0, 0, 0))[source]
Parameters:
Return type:

ProcNode[Vector]

procfunc.nodes.math.vector_multiply(a=(0, 0, 0), b=(0, 0, 0))[source]
Parameters:
Return type:

ProcNode[Vector]

procfunc.nodes.math.vector_multiply_add(a=(0, 0, 0), b=(0, 0, 0), addend=(0, 0, 0))[source]
Parameters:
Return type:

ProcNode[Vector]

procfunc.nodes.math.vector_divide(a=(0, 0, 0), b=(0, 0, 0))[source]
Parameters:
Return type:

ProcNode[Vector]

procfunc.nodes.math.vector_cross_product(a=(0, 0, 0), b=(0, 0, 0))[source]
Parameters:
Return type:

ProcNode[Vector]

procfunc.nodes.math.vector_project(vector=(0, 0, 0), onto=(0, 0, 0))[source]
Parameters:
Return type:

ProcNode[float]

procfunc.nodes.math.vector_reflect(a=(0, 0, 0), normal=(0, 0, 0))[source]
Parameters:
Return type:

ProcNode[Vector]

procfunc.nodes.math.vector_refract(incident=(0, 0, 0), normal=(0, 0, 0), ior=1.0)[source]
Parameters:
Return type:

ProcNode[Vector]

procfunc.nodes.math.vector_faceforward(vector=(0, 0, 0), surface=(0, 0, 0), normal=(0, 0, 0))[source]
Parameters:
Return type:

ProcNode[Vector]

procfunc.nodes.math.vector_dot_product(a=(0, 0, 0), b=(0, 0, 0))[source]
Parameters:
Return type:

ProcNode[Vector]

procfunc.nodes.math.vector_distance(a=(0, 0, 0), b=(0, 0, 0))[source]
Parameters:
Return type:

ProcNode[Vector]

procfunc.nodes.math.vector_length(vector=(0, 0, 0))[source]
Parameters:

vector (ProcNode[Vector] | Vector)

Return type:

ProcNode[float]

procfunc.nodes.math.vector_scale(vector=(0, 0, 0), scale=1.0)[source]
Parameters:
Return type:

ProcNode[Vector]

procfunc.nodes.math.vector_normalize(vector=(0, 0, 0))[source]
Parameters:

vector (ProcNode[Vector] | Vector)

Return type:

ProcNode[Vector]

procfunc.nodes.math.vector_wrap(vector=(0, 0, 0), max_val=(1, 1, 1), min_val=(0, 0, 0))[source]
Parameters:
Return type:

ProcNode[Vector]

procfunc.nodes.math.vector_snap(a=(0, 0, 0), b=(1, 1, 1))[source]
Parameters:
Return type:

ProcNode[Vector]

procfunc.nodes.math.vector_floor(vector=(0, 0, 0))[source]
Parameters:

vector (ProcNode[Vector] | Vector)

Return type:

ProcNode[Vector]

procfunc.nodes.math.vector_ceil(vector=(0, 0, 0))[source]
Parameters:

vector (ProcNode[Vector] | Vector)

Return type:

ProcNode[Vector]

procfunc.nodes.math.vector_modulo(a=(0, 0, 0), b=(1, 1, 1))[source]
Parameters:
Return type:

ProcNode[Vector]

procfunc.nodes.math.vector_fraction(vector=(0, 0, 0))[source]
Parameters:

vector (ProcNode[Vector] | Vector)

Return type:

ProcNode[Vector]

procfunc.nodes.math.vector_round(vector=(0, 0, 0))[source]
Parameters:

vector (ProcNode[Vector] | Vector)

Return type:

ProcNode[Vector]

procfunc.nodes.math.vector_truncate(vector=(0, 0, 0))[source]
Parameters:

vector (ProcNode[Vector] | Vector)

Return type:

ProcNode[Vector]

procfunc.nodes.math.vector_absolute(vector=(0, 0, 0))[source]
Parameters:

vector (ProcNode[Vector] | Vector)

Return type:

ProcNode[Vector]

procfunc.nodes.math.vector_minimum(a=(0, 0, 0), b=(0, 0, 0))[source]
Parameters:
Return type:

ProcNode[Vector]

procfunc.nodes.math.vector_maximum(a=(0, 0, 0), b=(0, 0, 0))[source]
Parameters:
Return type:

ProcNode[Vector]

procfunc.nodes.math.vector_sine(vector=(0, 0, 0))[source]
Parameters:

vector (ProcNode[Vector] | Vector)

Return type:

ProcNode[Vector]

procfunc.nodes.math.vector_cosine(vector=(0, 0, 0))[source]
Parameters:

vector (ProcNode[Vector] | Vector)

Return type:

ProcNode[Vector]

procfunc.nodes.math.vector_tangent(vector=(0, 0, 0))[source]
Parameters:

vector (ProcNode[Vector] | Vector)

Return type:

ProcNode[Vector]

procfunc.nodes.math.vector_rotate_axis_angle(vector=(0, 0, 0), center=(0, 0, 0), axis=(0, 0, 1), angle=0.0, invert=False)[source]

Uses a VectorRotate Shader Node.

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/vector/vector_rotate.html

Parameters:
Return type:

ProcNode[Vector]

procfunc.nodes.math.vector_rotate_euler(vector=(0, 0, 0), center=(0, 0, 0), rotation=(0, 0, 0), invert=False)[source]
Parameters:
Return type:

ProcNode[Vector]

procfunc.nodes.math.vector_transform(vector=(0.5, 0.5, 0.5), convert_from='WORLD', convert_to='OBJECT', vector_type='VECTOR')[source]

Uses a VectorTransform Shader Node.

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/vector/transform.html

Parameters:
  • vector (ProcNode[Vector] | Vector)

  • convert_from (Literal['WORLD', 'OBJECT', 'CAMERA'])

  • convert_to (Literal['WORLD', 'OBJECT', 'CAMERA'])

  • vector_type (Literal['POINT', 'VECTOR', 'NORMAL'])

Return type:

ProcNode[Vector]

pf.nodes.shader

Auto-generated Shader Node bindings for Blender

procfunc.nodes.shader.add_shader(shader_0=None, shader_1=None)[source]

Uses a AddShader Shader Node.

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/shader/add.html

Parameters:
Return type:

ProcNode[Shader]

class procfunc.nodes.shader.AmbientOcclusionResult[source]

Bases: NamedTuple

AmbientOcclusionResult(color, ao)

color: ProcNode[Color]

Alias for field number 0

ao: ProcNode[float]

Alias for field number 1

Supported special methods: __add__, __contains__, __getitem__, __getnewargs__, __iter__, __len__, __mul__, __rmul__

procfunc.nodes.shader.ambient_occlusion(color=(1, 1, 1, 1), distance=1.0, normal=None, inside=False, only_local=False, samples=16)[source]

Uses a AmbientOcclusion Shader Node.

Parameters:
  • normal (ProcNode[Vector] | Vector) – Avoid using this input. We recommend using the shader’s Displacement output instead, which supports bumpmapping OR real mesh render/export.

  • color (ProcNode[Color] | Color)

  • distance (ProcNode[float] | float)

  • inside (bool)

  • only_local (bool)

  • samples (int)

Return type:

AmbientOcclusionResult

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/input/ao.html

class procfunc.nodes.shader.AttributeResult[source]

Bases: NamedTuple

AttributeResult(color, vector, fac, alpha)

color: ProcNode[Color]

Alias for field number 0

vector: ProcNode[Vector]

Alias for field number 1

fac: ProcNode[float]

Alias for field number 2

alpha: ProcNode[float]

Alias for field number 3

Supported special methods: __add__, __contains__, __getitem__, __getnewargs__, __iter__, __len__, __mul__, __rmul__

procfunc.nodes.shader.attribute(attribute_name='', attribute_type='GEOMETRY')[source]

Uses a Attribute Shader Node.

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/input/attribute.html

Parameters:
  • attribute_name (str)

  • attribute_type (Literal['GEOMETRY', 'OBJECT', 'INSTANCER', 'VIEW_LAYER'])

Return type:

AttributeResult

procfunc.nodes.shader.background(color=(0.8, 0.8, 0.8, 1), strength=1.0)[source]

Uses a Background Shader Node.

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/shader/background.html

Parameters:
Return type:

ProcNode[Shader]

procfunc.nodes.shader.bevel(radius=0.05, normal=None, samples=4)[source]

Uses a Bevel Shader Node.

Parameters:
  • normal (ProcNode[Vector] | Vector) – Avoid using this input. We recommend using the shader’s Displacement output instead, which supports bumpmapping OR real mesh render/export.

  • radius (ProcNode[float] | float)

  • samples (int)

Return type:

ProcNode[Vector]

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/input/bevel.html

procfunc.nodes.shader.blackbody(temperature=1500.0)[source]

Uses a Blackbody Shader Node.

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/converter/blackbody.html

Parameters:

temperature (ProcNode[float] | float)

Return type:

ProcNode[Color]

procfunc.nodes.shader.bright_contrast(color=(1, 1, 1, 1), bright=0.0, contrast=0.0)[source]

Uses a BrightContrast Shader Node.

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/color/bright_contrast.html

Parameters:
Return type:

ProcNode[Color]

procfunc.nodes.shader.anisotropic_bsdf(color=(0.8, 0.8, 0.8, 1), roughness=0.5, anisotropy=0.0, rotation=0.0, normal=None, tangent=(0, 0, 0), distribution='MULTI_GGX')[source]

Uses a BsdfAnisotropic Shader Node.

Parameters:
  • normal (ProcNode[Vector] | Vector) – Avoid using this input. We recommend using the shader’s Displacement output instead, which supports bumpmapping OR real mesh render/export.

  • color (ProcNode[Color] | Color)

  • roughness (ProcNode[float] | float)

  • anisotropy (ProcNode[float] | float)

  • rotation (ProcNode[float] | float)

  • tangent (ProcNode[Vector] | Vector)

  • distribution (Literal['BECKMANN', 'GGX', 'ASHIKHMIN_SHIRLEY', 'MULTI_GGX'])

Return type:

ProcNode[Shader]

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/shader/principled.html

procfunc.nodes.shader.diffuse_bsdf(color=(0.8, 0.8, 0.8, 1), roughness=0.0, normal=None)[source]

Uses a BsdfDiffuse Shader Node.

Parameters:
  • normal (ProcNode[Vector] | Vector) – Avoid using this input. We recommend using the shader’s Displacement output instead, which supports bumpmapping OR real mesh render/export.

  • color (ProcNode[Color] | Color)

  • roughness (ProcNode[float] | float)

Return type:

ProcNode[Shader]

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/shader/diffuse.html

procfunc.nodes.shader.glass_bsdf(color=(1, 1, 1, 1), roughness=0.0, ior=1.5, normal=None, distribution='MULTI_GGX')[source]

Uses a BsdfGlass Shader Node.

Parameters:
  • normal (ProcNode[Vector] | Vector) – Avoid using this input. We recommend using the shader’s Displacement output instead, which supports bumpmapping OR real mesh render/export.

  • color (ProcNode[Color] | Color)

  • roughness (ProcNode[float] | float)

  • ior (ProcNode[float] | float)

  • distribution (Literal['BECKMANN', 'GGX', 'MULTI_GGX'])

Return type:

ProcNode[Shader]

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/shader/glass.html

procfunc.nodes.shader.hair_bsdf(color=(0.8, 0.8, 0.8, 1), offset=0.0, roughness_u=0.1, roughness_v=1.0, tangent=(0, 0, 0), component='Reflection')[source]

Uses a BsdfHair Shader Node.

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/shader/hair.html

Parameters:
Return type:

ProcNode[Shader]

procfunc.nodes.shader.principled_hair_bsdf(color=(0.017513, 0.005763, 0.002059, 1), roughness=0.3, radial_roughness=0.3, coat=0.0, ior=1.55, offset=0.034907, random_roughness=0.0, random=0.0, model='CHIANG', parametrization='COLOR')[source]

Uses a BsdfHairPrincipled Shader Node.

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/shader/hair_principled.html

Parameters:
Return type:

ProcNode[Shader]

procfunc.nodes.shader.principled_bsdf(base_color=(0.8, 0.8, 0.8, 1), metallic=0.0, roughness=0.5, ior=1.5, alpha=1.0, normal=(0.0, 0.0, 0.0), subsurface_method='RANDOM_WALK', subsurface_weight=0.0, subsurface_radius=(1, 0.2, 0.1), subsurface_scale=0.05, subsurface_ior=None, subsurface_anisotropy=None, distribution='MULTI_GGX', specular_ior_level=0.5, specular_tint=(1, 1, 1, 1), anisotropic=0.0, anisotropic_rotation=0.0, tangent=(0, 0, 0), transmission_weight=0.0, coat_weight=0.0, coat_roughness=0.03, coat_ior=1.5, coat_tint=(1, 1, 1, 1), coat_normal=(0.0, 0.0, 0.0), sheen_weight=0.0, sheen_roughness=0.5, sheen_tint=(1, 1, 1, 1), emission_color=(1, 1, 1, 1), emission_strength=0.0, thin_film_thickness=0.0, thin_film_ior=1.33)[source]

Uses a BsdfPrincipled Shader Node.

Parameters:
Return type:

ProcNode[Shader]

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/shader/principled.html

procfunc.nodes.shader.ray_portal_bsdf(color=(1, 1, 1, 1), position=(0, 0, 0), direction=(0, 0, 0))[source]

Uses a BsdfRayPortal Shader Node.

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/shader/ray_portal.html

Parameters:
Return type:

ProcNode[Shader]

procfunc.nodes.shader.refraction_bsdf(color=(1, 1, 1, 1), roughness=0.0, ior=1.45, normal=None, distribution='BECKMANN')[source]

Uses a BsdfRefraction Shader Node.

Parameters:
  • normal (ProcNode[Vector] | Vector) – Avoid using this input. We recommend using the shader’s Displacement output instead, which supports bumpmapping OR real mesh render/export.

  • color (ProcNode[Color] | Color)

  • roughness (ProcNode[float] | float)

  • ior (ProcNode[float] | float)

  • distribution (Literal['BECKMANN', 'GGX'])

Return type:

ProcNode[Shader]

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/shader/refraction.html

procfunc.nodes.shader.sheen_bsdf(color=(0.8, 0.8, 0.8, 1), roughness=0.5, normal=None, distribution='MICROFIBER')[source]

Uses a BsdfSheen Shader Node.

Parameters:
  • normal (ProcNode[Vector] | Vector) – Avoid using this input. We recommend using the shader’s Displacement output instead, which supports bumpmapping OR real mesh render/export.

  • color (ProcNode[Color] | Color)

  • roughness (ProcNode[float] | float)

  • distribution (Literal['ASHIKHMIN', 'MICROFIBER'])

Return type:

ProcNode[Shader]

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/shader/sheen.html

procfunc.nodes.shader.toon_bsdf(color=(0.8, 0.8, 0.8, 1), size=0.5, smooth=0.0, normal=None, component='DIFFUSE')[source]

Uses a BsdfToon Shader Node.

Parameters:
  • normal (ProcNode[Vector] | Vector) – Avoid using this input. We recommend using the shader’s Displacement output instead, which supports bumpmapping OR real mesh render/export.

  • color (ProcNode[Color] | Color)

  • size (ProcNode[float] | float)

  • smooth (ProcNode[float] | float)

  • component (Literal['DIFFUSE', 'GLOSSY'])

Return type:

ProcNode[Shader]

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/shader/toon.html

procfunc.nodes.shader.translucent_bsdf(color=(0.8, 0.8, 0.8, 1), normal=None)[source]

Uses a BsdfTranslucent Shader Node.

Parameters:
  • normal (ProcNode[Vector] | Vector) – Avoid using this input. We recommend using the shader’s Displacement output instead, which supports bumpmapping OR real mesh render/export.

  • color (ProcNode[Color] | Color)

Return type:

ProcNode[Shader]

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/shader/translucent.html

procfunc.nodes.shader.transparent_bsdf(color=(1, 1, 1, 1))[source]

Uses a BsdfTransparent Shader Node.

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/shader/transparent.html

Parameters:

color (ProcNode[Color] | Color)

Return type:

ProcNode[Shader]

procfunc.nodes.shader.bump(strength=1.0, distance=1.0, height=1.0, normal=None, invert=False)[source]

Uses a Bump Shader Node.

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/vector/bump.html

Parameters:
Return type:

ProcNode[Vector]

class procfunc.nodes.shader.CameraDataResult[source]

Bases: NamedTuple

CameraDataResult(view_vector, view_z_depth, view_distance)

view_vector: ProcNode[Vector]

Alias for field number 0

view_z_depth: ProcNode[float]

Alias for field number 1

view_distance: ProcNode[float]

Alias for field number 2

Supported special methods: __add__, __contains__, __getitem__, __getnewargs__, __iter__, __len__, __mul__, __rmul__

procfunc.nodes.shader.camera_data()[source]

Uses a CameraData Shader Node.

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/input/camera_data.html

Return type:

CameraDataResult

procfunc.nodes.shader.displacement(height=0.0, midlevel=0.5, scale=1.0, normal=None, space='OBJECT')[source]

Uses a Displacement Shader Node.

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/vector/displacement.html

Parameters:
Return type:

ProcNode[Vector]

procfunc.nodes.shader.eevee_specular(base_color=(0.8, 0.8, 0.8, 1), specular=(0.03, 0.03, 0.03, 1), roughness=0.2, emissive_color=(0, 0, 0, 1), transparency=0.0, normal=None, clear_coat=0.0, clear_coat_roughness=0.0, clear_coat_normal=None)[source]

Uses a EeveeSpecular Shader Node.

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/shader/specular_bsdf.html

Parameters:
Return type:

ProcNode[Shader]

procfunc.nodes.shader.emission(color=(1, 1, 1, 1), strength=1.0)[source]

Uses a Emission Shader Node.

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/shader/emission.html

Parameters:
Return type:

ProcNode[Shader]

procfunc.nodes.shader.fresnel(ior=1.5, normal=None)[source]

Uses a Fresnel Shader Node.

Parameters:
  • normal (ProcNode[Vector] | Vector) – Avoid using this input. We recommend using the shader’s Displacement output instead, which supports bumpmapping OR real mesh render/export.

  • ior (ProcNode[float] | float)

Return type:

ProcNode[float]

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/input/fresnel.html

procfunc.nodes.shader.gamma(color=(1, 1, 1, 1), gamma=1.0)[source]

Uses a Gamma Shader Node.

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/color/gamma.html

Parameters:
Return type:

ProcNode[Color]

class procfunc.nodes.shader.HairInfoResult[source]

Bases: NamedTuple

HairInfoResult(is_strand, intercept, length, thickness, tangent_normal, random)

is_strand: ProcNode[float]

Alias for field number 0

intercept: ProcNode[float]

Alias for field number 1

length: ProcNode[float]

Alias for field number 2

thickness: ProcNode[float]

Alias for field number 3

tangent_normal: ProcNode[Vector]

Alias for field number 4

random: ProcNode[float]

Alias for field number 5

Supported special methods: __add__, __contains__, __getitem__, __getnewargs__, __iter__, __len__, __mul__, __rmul__

procfunc.nodes.shader.hair_info()[source]

Uses a HairInfo Shader Node.

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/input/hair_info.html

Return type:

HairInfoResult

procfunc.nodes.shader.holdout()[source]

Uses a Holdout Shader Node.

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/shader/holdout.html

Return type:

ProcNode[Shader]

procfunc.nodes.shader.hue_saturation(hue=0.5, saturation=1.0, value=1.0, fac=1.0, color=(0.8, 0.8, 0.8, 1))[source]

Uses a HueSaturation Shader Node.

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/color/hue_saturation.html

Parameters:
Return type:

ProcNode[Color]

procfunc.nodes.shader.invert(fac=1.0, color=(0, 0, 0, 1))[source]

Uses a Invert Shader Node.

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/color/invert_color.html

Parameters:
Return type:

ProcNode[Color]

class procfunc.nodes.shader.LayerWeightResult[source]

Bases: NamedTuple

LayerWeightResult(fresnel, facing)

fresnel: ProcNode[float]

Alias for field number 0

facing: ProcNode[float]

Alias for field number 1

Supported special methods: __add__, __contains__, __getitem__, __getnewargs__, __iter__, __len__, __mul__, __rmul__

procfunc.nodes.shader.layer_weight(blend=0.5, normal=(0.0, 0.0, 0.0))[source]

Uses a LayerWeight Shader Node.

Parameters:
  • normal (ProcNode[Vector] | Vector) – Avoid using this input. We recommend using the shader’s Displacement output instead, which supports bumpmapping OR real mesh render/export.

  • blend (ProcNode[float] | float)

Return type:

LayerWeightResult

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/input/layer_weight.html

class procfunc.nodes.shader.LightFalloffResult[source]

Bases: NamedTuple

LightFalloffResult(quadratic, linear, constant)

quadratic: ProcNode[float]

Alias for field number 0

linear: ProcNode[float]

Alias for field number 1

constant: ProcNode[float]

Alias for field number 2

Supported special methods: __add__, __contains__, __getitem__, __getnewargs__, __iter__, __len__, __mul__, __rmul__

procfunc.nodes.shader.light_falloff(strength=100.0, smooth=0.0)[source]

Uses a LightFalloff Shader Node.

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/color/light_falloff.html

Parameters:
Return type:

LightFalloffResult

class procfunc.nodes.shader.LightPathResult[source]

Bases: NamedTuple

LightPathResult(is_camera_ray, is_shadow_ray, is_diffuse_ray, is_glossy_ray, is_singular_ray, is_reflection_ray, is_transmission_ray, ray_length, ray_depth, diffuse_depth, glossy_depth, transparent_depth, transmission_depth)

is_camera_ray: ProcNode[float]

Alias for field number 0

is_shadow_ray: ProcNode[float]

Alias for field number 1

is_diffuse_ray: ProcNode[float]

Alias for field number 2

is_glossy_ray: ProcNode[float]

Alias for field number 3

is_singular_ray: ProcNode[float]

Alias for field number 4

is_reflection_ray: ProcNode[float]

Alias for field number 5

is_transmission_ray: ProcNode[float]

Alias for field number 6

ray_length: ProcNode[float]

Alias for field number 7

ray_depth: ProcNode[float]

Alias for field number 8

diffuse_depth: ProcNode[float]

Alias for field number 9

glossy_depth: ProcNode[float]

Alias for field number 10

transparent_depth: ProcNode[float]

Alias for field number 11

transmission_depth: ProcNode[float]

Alias for field number 12

Supported special methods: __add__, __contains__, __getitem__, __getnewargs__, __iter__, __len__, __mul__, __rmul__

procfunc.nodes.shader.light_path()[source]

Uses a LightPath Shader Node.

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/input/light_path.html

Return type:

LightPathResult

procfunc.nodes.shader.mapping(vector=(0, 0, 0), location=(0, 0, 0), rotation=(0, 0, 0), scale=(1, 1, 1), vector_type='POINT')[source]

Uses a Mapping Shader Node.

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/vector/mapping.html

Parameters:
  • vector (ProcNode[Vector] | Vector)

  • location (ProcNode[Vector] | Vector)

  • rotation (ProcNode[Vector] | Vector)

  • scale (ProcNode[Vector] | Vector)

  • vector_type (Literal['POINT', 'TEXTURE', 'VECTOR', 'NORMAL'])

Return type:

ProcNode[Vector]

procfunc.nodes.shader.mix_shader(factor=0.5, a=None, b=None)[source]

Uses a MixShader Shader Node.

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/shader/mix.html

Parameters:
Return type:

ProcNode[Shader]

class procfunc.nodes.shader.NormalResult[source]

Bases: NamedTuple

NormalResult(normal, dot)

normal: ProcNode[Vector]

Alias for field number 0

dot: ProcNode[float]

Alias for field number 1

Supported special methods: __add__, __contains__, __getitem__, __getnewargs__, __iter__, __len__, __mul__, __rmul__

procfunc.nodes.shader.normal(normal=(0, 0, 1))[source]

Uses a Normal Shader Node.

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/vector/normal.html

Parameters:

normal (ProcNode[Vector] | Vector)

Return type:

NormalResult

procfunc.nodes.shader.normal_map(strength=1.0, color=(0.5, 0.5, 1, 1), space='TANGENT', uv_map='')[source]

Uses a NormalMap Shader Node.

This node is discouraged. We recommend using the shader’s Displacement output instead, which supports bumpmapping OR real mesh render/export.

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/vector/normal_map.html

Parameters:
Return type:

ProcNode[Vector]

class procfunc.nodes.shader.ObjectInfoResult[source]

Bases: NamedTuple

ObjectInfoResult(location, color, alpha, object_index, material_index, random)

location: ProcNode[Vector]

Alias for field number 0

color: ProcNode[Color]

Alias for field number 1

alpha: ProcNode[float]

Alias for field number 2

object_index: ProcNode[int]

Alias for field number 3

material_index: ProcNode[int]

Alias for field number 4

random: ProcNode[float]

Alias for field number 5

Supported special methods: __add__, __contains__, __getitem__, __getnewargs__, __iter__, __len__, __mul__, __rmul__

procfunc.nodes.shader.object_info()[source]

Uses a ObjectInfo Shader Node.

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/input/object_info.html

Return type:

ObjectInfoResult

class procfunc.nodes.shader.ParticleInfoResult[source]

Bases: NamedTuple

ParticleInfoResult(index, random, age, lifetime, location, size, velocity, angular_velocity)

index: ProcNode[int]

Alias for field number 0

random: ProcNode[float]

Alias for field number 1

age: ProcNode[float]

Alias for field number 2

lifetime: ProcNode[float]

Alias for field number 3

location: ProcNode[Vector]

Alias for field number 4

size: ProcNode[float]

Alias for field number 5

velocity: ProcNode[Vector]

Alias for field number 6

angular_velocity: ProcNode[Vector]

Alias for field number 7

Supported special methods: __add__, __contains__, __getitem__, __getnewargs__, __iter__, __len__, __mul__, __rmul__

procfunc.nodes.shader.particle_info()[source]

Uses a ParticleInfo Shader Node.

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/input/particle_info.html

Return type:

ParticleInfoResult

class procfunc.nodes.shader.PointInfoResult[source]

Bases: NamedTuple

PointInfoResult(position, radius, random)

position: ProcNode[Vector]

Alias for field number 0

radius: ProcNode[float]

Alias for field number 1

random: ProcNode[float]

Alias for field number 2

Supported special methods: __add__, __contains__, __getitem__, __getnewargs__, __iter__, __len__, __mul__, __rmul__

procfunc.nodes.shader.point_info()[source]

Uses a PointInfo Shader Node.

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/input/point_info.html

Return type:

PointInfoResult

procfunc.nodes.shader.rgb()[source]

Uses a RGB Shader Node.

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/input/rgb.html

Return type:

ProcNode[Color]

procfunc.nodes.shader.rgb_to_bw(color=(0.5, 0.5, 0.5, 1))[source]

Uses a RGBToBW Shader Node.

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/converter/rgb_to_bw.html

Parameters:

color (ProcNode[Color] | Color)

Return type:

ProcNode[float]

procfunc.nodes.shader.script(bytecode='', bytecode_hash='', filepath='', mode='INTERNAL', script=None, use_auto_update=False)[source]

Uses a Script Shader Node.

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/osl.html

Parameters:
  • bytecode (str)

  • bytecode_hash (str)

  • filepath (str)

  • mode (Literal['INTERNAL', 'EXTERNAL'])

  • script (Any)

  • use_auto_update (bool)

Return type:

ProcNode[Shader]

procfunc.nodes.shader.shader_to_rgb(shader=None)[source]

Uses a ShaderToRGB Shader Node.

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/converter/shader_to_rgb.html

Parameters:

shader (ProcNode[Shader] | None)

Return type:

ProcNode[Color]

procfunc.nodes.shader.squeeze(value=0.0, width=1.0, center=0.0)[source]

Uses a Squeeze Shader Node.

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/converter/map_range.html

Parameters:
Return type:

ProcNode[float]

procfunc.nodes.shader.subsurface_scattering(color=(0.8, 0.8, 0.8, 1), scale=0.05, radius=(1, 0.2, 0.1), ior=1.4, roughness=1.0, anisotropy=0.0, normal=(0.0, 0.0, 0.0), falloff='RANDOM_WALK')[source]

Uses a SubsurfaceScattering Shader Node.

Parameters:
Return type:

ProcNode[Shader]

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/shader/volume_scatter.html

procfunc.nodes.shader.tangent(axis='Z', direction_type='RADIAL', uv_map='')[source]

Uses a Tangent Shader Node.

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/input/tangent.html

Parameters:
  • axis (Literal['X', 'Y', 'Z'])

  • direction_type (Literal['RADIAL', 'UV_MAP'])

  • uv_map (str)

Return type:

ProcNode[Vector]

class procfunc.nodes.shader.TextureResult[source]

Bases: NamedTuple

TextureResult(fac, color)

fac: ProcNode[float]

Alias for field number 0

color: ProcNode[Color]

Alias for field number 1

Supported special methods: __add__, __contains__, __getitem__, __getnewargs__, __iter__, __len__, __mul__, __rmul__

procfunc.nodes.shader.brick(vector, color1=(0.8, 0.8, 0.8, 1), color2=(0.2, 0.2, 0.2, 1), mortar=(0, 0, 0, 1), scale=5.0, mortar_size=0.02, mortar_smooth=0.1, bias=0.0, brick_width=0.5, row_height=0.25, offset=0.5, offset_frequency=2, squash=1.0, squash_frequency=2)[source]

Uses a TexBrick Shader Node.

Infinigen requires an explicit vector input - node will not default to using texture coordinate or world coordinate like blender

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/textures/brick.html

Parameters:
Return type:

TextureResult

procfunc.nodes.shader.checker(vector, color1=(0.8, 0.8, 0.8, 1), color2=(0.2, 0.2, 0.2, 1), scale=5.0)[source]

Uses a TexChecker Shader Node.

Infinigen requires an explicit vector input - node will not default to using texture coordinate or world coordinate like blender

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/textures/checker.html

Parameters:
Return type:

TextureResult

class procfunc.nodes.shader.CoordResult[source]

Bases: NamedTuple

CoordResult(generated, normal, uv, object, camera, window)

generated: ProcNode[Vector]

Alias for field number 0

normal: ProcNode[Vector]

Alias for field number 1

uv: ProcNode[Vector]

Alias for field number 2

object: ProcNode[Vector]

Alias for field number 3

camera: ProcNode[Vector]

Alias for field number 4

window: ProcNode[Vector]

Alias for field number 5

Supported special methods: __add__, __contains__, __getitem__, __getnewargs__, __iter__, __len__, __mul__, __rmul__

procfunc.nodes.shader.coord(from_instancer=False, object=None)[source]

Uses a TexCoord Shader Node.

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/input/texture_coordinate.html

Parameters:
  • from_instancer (bool)

  • object (Any)

Return type:

CoordResult

class procfunc.nodes.shader.GeometryResult[source]

Bases: NamedTuple

GeometryResult(position, normal, tangent, true_normal, incoming, parametric, backfacing, pointiness, random_per_island)

position: ProcNode[Vector]

Alias for field number 0

normal: ProcNode[Vector]

Alias for field number 1

tangent: ProcNode[Vector]

Alias for field number 2

true_normal: ProcNode[Vector]

Alias for field number 3

incoming: ProcNode[Vector]

Alias for field number 4

parametric: ProcNode[Vector]

Alias for field number 5

backfacing: ProcNode[float]

Alias for field number 6

pointiness: ProcNode[float]

Alias for field number 7

random_per_island: ProcNode[float]

Alias for field number 8

Supported special methods: __add__, __contains__, __getitem__, __getnewargs__, __iter__, __len__, __mul__, __rmul__

procfunc.nodes.shader.geometry()[source]
Return type:

GeometryResult

procfunc.nodes.shader.environment(vector, image=None, interpolation='Linear', projection='EQUIRECTANGULAR')[source]

Uses a TexEnvironment Shader Node.

Infinigen requires an explicit vector input - node will not default to using texture coordinate or world coordinate like blender

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/textures/environment.html

Parameters:
  • vector (ProcNode[Vector] | Vector)

  • image (Any)

  • interpolation (Literal['Linear', 'Closest', 'Cubic', 'Smart'])

  • projection (Literal['EQUIRECTANGULAR', 'MIRROR_BALL'])

Return type:

ProcNode[Color]

procfunc.nodes.shader.gradient(vector, gradient_type='LINEAR')[source]

Uses a TexGradient Shader Node.

Infinigen requires an explicit vector input - node will not default to using texture coordinate or world coordinate like blender

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/textures/gradient.html

Parameters:
  • vector (ProcNode[Vector] | Vector)

  • gradient_type (Literal['LINEAR', 'QUADRATIC', 'EASING', 'DIAGONAL', 'SPHERICAL', 'QUADRATIC_SPHERE', 'RADIAL'])

Return type:

TextureResult

procfunc.nodes.shader.ies(vector, strength=1.0, filepath='', ies=None, mode='INTERNAL')[source]

Uses a TexIES Shader Node.

Infinigen requires an explicit vector input - node will not default to using texture coordinate or world coordinate like blender

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/textures/ies.html

Parameters:
Return type:

ProcNode[float]

procfunc.nodes.shader.image(vector, extension='REPEAT', image=None, interpolation='Linear', projection='FLAT', projection_blend=0.0)[source]

Uses a TexImage Shader Node.

Infinigen requires an explicit vector input - node will not default to using texture coordinate or world coordinate like blender

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/textures/image.html

Parameters:
  • vector (ProcNode[Vector] | Vector)

  • extension (Literal['REPEAT', 'EXTEND', 'CLIP', 'MIRROR'])

  • image (Any)

  • interpolation (Literal['Linear', 'Closest', 'Cubic', 'Smart'])

  • projection (Literal['FLAT', 'BOX', 'SPHERE', 'CUBE'])

  • projection_blend (float)

Return type:

TextureResult

procfunc.nodes.shader.magic(vector, scale=5.0, distortion=1.0, turbulence_depth=2)[source]

Uses a TexMagic Shader Node.

Infinigen requires an explicit vector input - node will not default to using texture coordinate or world coordinate like blender

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/textures/magic.html

Parameters:
Return type:

TextureResult

procfunc.nodes.shader.noise(vector=(0.0, 0.0, 0.0), scale=5.0, detail=2.0, roughness=0.5, lacunarity=2.0, offset=0.0, gain=1.0, distortion=0.0, noise_dimensions='3D', noise_type='FBM', normalize=True, w=0.0)[source]

Uses a TexNoise Shader Node.

Parameters:
  • offset (-) – Only supported for RIDGED_MULTIFRACTAL, HYBRID_MULTIFRACTAL, HETERO_TERRAIN noise types

  • gain (-) – Only supported for RIDGED_MULTIFRACTAL and HYBRID_MULTIFRACTAL noise types

  • distortion (-) – Only supported for RIDGED_MULTIFRACTAL, HYBRID_MULTIFRACTAL, HETERO_TERRAIN noise types

  • w (-) – Only supported for 1D and 4D noise dimensions

  • vector (ProcNode[Vector] | Vector)

  • scale (ProcNode[float] | float)

  • detail (ProcNode[float] | float)

  • roughness (ProcNode[float] | float)

  • lacunarity (ProcNode[float] | float)

  • noise_dimensions (Literal['1D', '2D', '3D', '4D'])

  • noise_type (Literal['MULTIFRACTAL', 'FBM', 'RIDGED_MULTIFRACTAL', 'HYBRID_MULTIFRACTAL', 'HETERO_TERRAIN'])

  • normalize (bool)

Return type:

TextureResult

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/textures/noise.html

class procfunc.nodes.shader.PointDensityResult[source]

Bases: NamedTuple

PointDensityResult(color, density)

color: ProcNode[Color]

Alias for field number 0

density: ProcNode[float]

Alias for field number 1

Supported special methods: __add__, __contains__, __getitem__, __getnewargs__, __iter__, __len__, __mul__, __rmul__

procfunc.nodes.shader.point_density(vector, interpolation='Linear', object=None, particle_color_source='PARTICLE_AGE', particle_system=None, point_source='PARTICLE_SYSTEM', radius=0.3, resolution=100, space='OBJECT', vertex_attribute_name='', vertex_color_source='VERTEX_COLOR')[source]

Uses a TexPointDensity Shader Node.

Infinigen requires an explicit vector input - node will not default to using texture coordinate or world coordinate like blender

TODO: vertex_attribute_name and vertex_color_source are only available for point_source OBJECT

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/textures/point_density.html

Parameters:
  • vector (ProcNode[Vector] | Vector)

  • interpolation (Literal['Closest', 'Linear', 'Cubic'])

  • object (Any)

  • particle_color_source (Literal['PARTICLE_AGE', 'PARTICLE_SPEED', 'PARTICLE_VELOCITY'])

  • particle_system (Any)

  • point_source (Literal['OBJECT', 'PARTICLE_SYSTEM'])

  • radius (float)

  • resolution (int)

  • space (Literal['OBJECT', 'WORLD'])

  • vertex_attribute_name (str)

  • vertex_color_source (Literal['VERTEX_COLOR', 'VERTEX_NORMAL', 'VERTEX_WEIGHT'])

Return type:

PointDensityResult

procfunc.nodes.shader.sky(air_density=1.0, altitude=0.0, dust_density=1.0, ground_albedo=0.3, ozone_density=1.0, sky_type='NISHITA', sun_direction=(0.0, 0.0, 1.0), sun_disc=True, sun_elevation=0.261799, sun_intensity=1.0, sun_rotation=0.0, sun_size=0.009512, turbidity=2.2)[source]

Uses a TexSky Shader Node.

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/textures/sky.html

Parameters:
Return type:

ProcNode[Color]

class procfunc.nodes.shader.VoronoiResult[source]

Bases: NamedTuple

VoronoiResult(color, distance, position, w)

color: ProcNode[Color]

Alias for field number 0

distance: ProcNode[float]

Alias for field number 1

position: ProcNode[Vector]

Alias for field number 2

w: ProcNode[float] | None

Alias for field number 3

Supported special methods: __add__, __contains__, __getitem__, __getnewargs__, __iter__, __len__, __mul__, __rmul__

procfunc.nodes.shader.voronoi(vector, scale=5.0, detail=0.0, roughness=0.5, lacunarity=2.0, randomness=1.0, exponent=0.0, distance='EUCLIDEAN', feature='F1', normalize=False, voronoi_dimensions='3D', w=0.0)[source]

Uses a TexVoronoi Shader Node.

Parameters:
Return type:

VoronoiResult

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/textures/voronoi.html

procfunc.nodes.shader.voronoi_distance(vector, scale=5.0, detail=0.0, roughness=0.5, lacunarity=2.0, randomness=1.0, normalize=False, voronoi_dimensions='3D', w=0.0)[source]
Parameters:
Return type:

ProcNode[float]

procfunc.nodes.shader.voronoi_smooth_f1(vector, scale=5.0, detail=0.0, roughness=0.5, lacunarity=2.0, smoothness=0.5, randomness=1.0, distance='EUCLIDEAN', normalize=False, voronoi_dimensions='3D', w=0.0)[source]
Parameters:
Return type:

VoronoiResult

procfunc.nodes.shader.voronoi_n_spheres_distance(vector, scale=5.0, randomness=1.0, normalize=False)[source]
Parameters:
Return type:

ProcNode[float]

procfunc.nodes.shader.wave(vector, scale=5.0, distortion=0.0, detail=2.0, detail_scale=1.0, detail_roughness=0.5, phase_offset=0.0, bands_direction='X', rings_direction='X', wave_profile='SIN', wave_type='BANDS')[source]

Uses a TexWave Shader Node.

TODO: bands_direction and rings_direction are only available for wave_type BANDS or RINGS respectively

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/textures/wave.html

Parameters:
Return type:

TextureResult

procfunc.nodes.shader.white_noise(vector=None, noise_dimensions='3D', w=None)[source]

Uses a TexWhiteNoise Shader Node.

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/textures/white_noise.html

Parameters:
Return type:

TextureResult

procfunc.nodes.shader.uv_along_stroke(use_tips=False)[source]

Uses a UVAlongStroke Shader Node.

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/input/uv_map.html

Parameters:

use_tips (bool)

Return type:

ProcNode[Vector]

procfunc.nodes.shader.uv_map(from_instancer=False, uv_map='')[source]

Uses a UVMap Shader Node.

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/input/uv_map.html

Parameters:
  • from_instancer (bool)

  • uv_map (str)

Return type:

ProcNode[Vector]

class procfunc.nodes.shader.ColorRampResult[source]

Bases: NamedTuple

ColorRampResult(color, alpha)

color: ProcNode[Color]

Alias for field number 0

alpha: ProcNode[float]

Alias for field number 1

Supported special methods: __add__, __contains__, __getitem__, __getnewargs__, __iter__, __len__, __mul__, __rmul__

procfunc.nodes.shader.color_ramp(fac=0.5, points=None, mode='RGB', interpolation='LINEAR')[source]

Uses a ValToRGB (ColorRamp) Shader Node with points support.

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/converter/color_ramp.html

Parameters:
Return type:

ColorRampResult

procfunc.nodes.shader.value()[source]

Uses a Value Shader Node.

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/input/value.html

Return type:

ProcNode[float]

procfunc.nodes.shader.vector_displacement(vector=(0.8, 0.8, 0.8, 1), midlevel=0.0, scale=1.0, space='TANGENT')[source]

Uses a VectorDisplacement Shader Node.

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/vector/vector_displacement.html

Parameters:
Return type:

ProcNode[Vector]

procfunc.nodes.shader.vertex_color(layer_name='')[source]

Uses a VertexColor Shader Node.

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/input/vertex_color.html

Parameters:

layer_name (str)

Return type:

ProcNode[Color]

procfunc.nodes.shader.volume_absorption(color=(0.8, 0.8, 0.8, 1), density=1.0)[source]

Uses a VolumeAbsorption Shader Node.

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/shader/volume_absorption.html

Parameters:
Return type:

ProcNode[Shader]

procfunc.nodes.shader.volume_info()[source]

Uses a VolumeInfo Shader Node.

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/input/volume_info.html

Return type:

ProcNode

procfunc.nodes.shader.volume_principled(color=(0.5, 0.5, 0.5, 1), color_attribute='', density=1.0, density_attribute='density', anisotropy=0.0, absorption_color=(0, 0, 0, 1), emission_strength=0.0, emission_color=(1, 1, 1, 1), blackbody_intensity=0.0, blackbody_tint=(1, 1, 1, 1), temperature=1000.0, temperature_attribute='temperature')[source]

Uses a VolumePrincipled Shader Node.

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/shader/volume_principled.html

Parameters:
Return type:

ProcNode[Shader]

procfunc.nodes.shader.volume_scatter(color=(0.8, 0.8, 0.8, 1), density=1.0, anisotropy=0.0)[source]

Uses a VolumeScatter Shader Node.

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/shader/volume_scatter.html

Parameters:
Return type:

ProcNode[Shader]

procfunc.nodes.shader.wavelength(wavelength=500.0)[source]

Uses a Wavelength Shader Node.

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/converter/wavelength.html

Parameters:

wavelength (ProcNode[float] | float)

Return type:

ProcNode[Color]

procfunc.nodes.shader.wireframe(size=0.01, use_pixel_size=False)[source]

Uses a Wireframe Shader Node.

See: https://docs.blender.org/manual/en/4.2/render/shader_nodes/input/wireframe.html

Parameters:
Return type:

ProcNode[float]