Skip to content
weSkelDOCUMENTATION
Documentation/API reference/GeometryFilter

GeometryFilter

Deformer foundation: envelope and input / output geometries.

ClassAPI 2.0Base
objectNodeDGNodeGeometryFilter
from weSkel.src.core.node.abstract.geometry_filter.lib import GeometryFilter

In Maya or in a Python script run by Maya / initialized mayapy, with weSkel available. Importing om is only required when using OpenMaya types in your own code.

Item Value
Class GeometryFilter
Module weSkel.src.core.node.abstract.geometry_filter.lib
Direct parent DGNode
Represented direct descendants SkinCluster
Own members 3 Python properties + 16 spec properties; 0 methods defined or overridden here.

Parent members remain available. Each section includes collapsible tables grouped by parent class, with links to the full contracts. Private methods and standard Python mechanisms are outside this inventory.

Signature : GeometryFilter(node) → GeometryFilter or an already registered compatible subclass.

Parameter Accepted types Default
node str, om.MObject, om.MObjectHandle, om.MFnDependencyNode Required

Wraps an existing node or stages a wrapper if the name is unresolved; creates no node. For another wrapper, pass other.mobject. The shared registry preserves identity and may return the existing concrete wrapper. Incompatible input can raise TypeError, and identity conflicts RuntimeError.

Accepts objects compatible with om.MFn.kGeometryFilt. To create a skinCluster, use the concrete SkinCluster wrapper, not the abstract geometryFilter type.

Python properties defined on this class. om means maya.api.OpenMaya. Spec-generated properties are detailed in the following section.

Property Return type Access
mfn_geometry_filter oma.MFnGeometryFilter | None R
input_geometries om.MObjectArray R
output_geometries om.MObjectArray R

node.mfn_geometry_filterRead only

Live deformer function set, or None when missing or incompatible. oma means maya.api.OpenMayaAnim.

Item Type / behavior
Returns oma.MFnGeometryFilter | None

node.input_geometriesRead only

Input geometry objects returned by the function set. Empty array without a function set; does not stage connections.

Item Type / behavior
Returns om.MObjectArray

node.output_geometriesRead only

Output geometry objects returned by the function set. Empty array without a function set; separate from the output_geometry plugs.

Item Type / behavior
Returns om.MObjectArray
Properties inherited from DGNode15
Property Return type Access Description
dep_fn om.MFnDependencyNode R Live function set; unattached object when the node is missing.
uuid str | None R Live UUID, or the last staged value if still available.
name str | None R/W Live name, otherwise staged name.
absolute_name str | None R Absolute namespace name from MFnDependencyNode.absoluteName(); None without a node.
stripped_name str | None R/W Name without its namespace, or None when unnamed.
namespace str | None R/W Normalized namespace such as a:b; None at the root.
plugs Plugs | None R Live node plug manager; None otherwise.
is_valid_dep_fn bool R Function-set compatibility with the current MObject.
is_default_node bool R Whether this is a Maya default node; False without a node.
is_from_referenced_file bool R Whether the node comes from a referenced file; False without a node.
is_locked bool R/W Node lock, separate from plug locks.
is_shared bool R Shared state reported by Maya; False without a node.
plugin_name str | None R Associated Maya plugin name, possibly an empty string; None without a node.
affect_animation bool R Result of MFnDependencyNode.affectsAnimation(); False without a node.
type str | None R/W Live native type or staged type.
Properties inherited from Node10
Property Return type Access Description
mobject om.MObject R/W Live Maya object, or a null object.
mobject_handle om.MObjectHandle R/W Handle associated with the node.
api_type int | None R Maya API type identifier.
api_type_str str R API type name, for example "kTime".
exists bool R The wrapper currently has a live node.
is_null bool R The returned Maya object is null.
is_alive bool R The object exists with a valid, live handle.
is_valid_handle bool R Validity of the stored handle.
is_dag_node bool R Compatibility with om.MFn.kDagNode.
hash_code int R Maya handle hash.

Python and Maya names are reproduced exactly. Declared kind, Python return and declared default are different facts. A spec default is not necessarily the live node value, nor a value automatically written at creation.

The returns below describe this class descriptors; live observations use a network, container, transform, mesh or skinCluster as appropriate. Some plugs depend on the concrete type. A subclass may override a member and its write capabilities. Proxy names identify current results: do not import their private classes.

Form Usage
_ValuePlugProxy .value reads the value; .plug gives a Plug, .mplug an MPlug.
IndexedPathProxy Indexed access object. Resolution has limitations at this checkpoint: member cards provide verified alternatives using node.plugs[...].
Flags / writing stored, input, output, connectable describe the replay contract. They do not guarantee a native plug is editable in its current state.

For writes where failure must be checked, use the Plug explicitly and verify live state: some descriptor setters can stage a value without propagating a Maya write error.

Property Maya plug Returns
block_gpu blockGPU _ValuePlugProxy · .value: bool
envelope envelope _ValuePlugProxy · .value: float
envelope_weights_list envelopeWeightsList ArrayCompoundProxy
envelope_weights envelopeWeightsList[].envelopeWeights AttributeError (direct access)
weight_function weightFunction Any (native data)
input input ArrayCompoundProxy
input_geometry input[].inputGeometry IndexedPathProxy
group_id input[].groupId IndexedPathProxy
component_tag_expression input[].componentTagExpression IndexedPathProxy
map_64_bit_indices map64BitIndices TypedArrayProxy
original_geometry originalGeometry TypedArrayProxy
output_geometry outputGeometry TypedArrayProxy
function function CompoundProxy
fchild_1 function.fchild1 _ValuePlugProxy · .value: int
fchild_2 function.fchild2 _ValuePlugProxy · .value: int
fchild_3 function.fchild3 _ValuePlugProxy · .value: int

node.block_gpuRead / write

Native deformer GPU evaluation block.

Item Type / behavior
Declared Maya path blockGPU
Property return _ValuePlugProxy · .value: bool
Declared spec kind numeric:bool
Declared default False
Flags input, output, connectable, stored
Read the value node.block_gpu.value
Assignment node.block_gpu = value

node.envelopeRead / write

Overall deformer strength.

Item Type / behavior
Declared Maya path envelope
Property return _ValuePlugProxy · .value: float
Declared spec kind numeric:float
Declared default 1.0
Flags input, output, connectable, stored, keyable
Read the value node.envelope.value
Assignment node.envelope = value

node.envelope_weights_listStructured access

Envelope weight-list array.

Item Type / behavior
Declared Maya path envelopeWeightsList
Property return ArrayCompoundProxy
Declared spec kind array:compound
Declared default ()
Flags array, output, connectable, hidden
Plug access node.envelope_weights_list.plug

The property returns a structure. Edit an explicit child or use Plug operations; do not replace the proxy with a Python assignment.

node.envelope_weightsLimited access

Envelope weights beneath an indexed list.

Item Type / behavior
Declared Maya path envelopeWeightsList[].envelopeWeights
Property return AttributeError (direct access)
Declared spec kind array:numeric:float
Declared default ()
Flags array, output, connectable, hidden
Verified alternative · returns a Plug node.plugs["envelopeWeightsList"][i1]["envelopeWeights"]

Current limitation: descriptor resolution raises AttributeError in the verified case. Use the explicit path above with logical indices. The resulting Plug can then read .value or manage connections.

node.weight_functionRead / connections

Native weight-function data; declared kind typed:unknown.

Item Type / behavior
Declared Maya path weightFunction
Property return Any (native data)
Declared spec kind typed:unknown
Declared default None
Flags input, output, connectable, hidden

The descriptor setter raises AttributeError. Manage connections with node.plugs[...]; this property does not return the connected node.

node.inputStructured access

Deformer geometry-input array.

Item Type / behavior
Declared Maya path input
Property return ArrayCompoundProxy
Declared spec kind array:compound
Declared default ()
Flags array, input, output, connectable
Plug access node.input.plug

The property returns a structure. Edit an explicit child or use Plug operations; do not replace the proxy with a Python assignment.

node.input_geometryLimited access

Input geometry at the requested index.

Item Type / behavior
Declared Maya path input[].inputGeometry
Property return IndexedPathProxy
Declared spec kind typed:geometry
Declared default None
Flags input, output, connectable
Indices 1 logical index(es), in the order of [] in the Maya path.
Verified alternative · returns a Plug node.plugs["input"][i1]["inputGeometry"]

Current limitation: descriptor resolution raises AttributeError in the verified case. Use the explicit path above with logical indices. The resulting Plug can then read .value or manage connections.

node.group_idLimited access

Input group identifier.

Item Type / behavior
Declared Maya path input[].groupId
Property return IndexedPathProxy
Declared spec kind numeric:int
Declared default 0
Flags input, output, connectable
Indices 1 logical index(es), in the order of [] in the Maya path.
Verified alternative · returns a Plug node.plugs["input"][i1]["groupId"]

Current limitation: descriptor resolution raises AttributeError in the verified case. Use the explicit path above with logical indices. The resulting Plug can then read .value or manage connections.

node.component_tag_expressionLimited access

Component-tag selection expression.

Item Type / behavior
Declared Maya path input[].componentTagExpression
Property return IndexedPathProxy
Declared spec kind typed:string
Declared default '*'
Flags input, output, connectable, stored
Indices 1 logical index(es), in the order of [] in the Maya path.
Verified alternative · returns a Plug node.plugs["input"][i1]["componentTagExpression"]

Current limitation: descriptor resolution raises AttributeError in the verified case. Use the explicit path above with logical indices. The resulting Plug can then read .value or manage connections.

node.map_64_bit_indicesRead / write

Native 64-bit index mapping.

Item Type / behavior
Declared Maya path map64BitIndices
Property return TypedArrayProxy
Declared spec kind typed:intarray
Declared default ()
Flags input, output, connectable, stored, hidden
Plug access node.map_64_bit_indices.plug

This attribute contains typed-array data, not necessarily a Maya multi-attribute. Read its contents with .plug.value; do not equate data indices with logical plug indices.

node.original_geometryRead / connections

Original deformer geometries.

Item Type / behavior
Declared Maya path originalGeometry
Property return TypedArrayProxy
Declared spec kind array:typed:geometry
Declared default ()
Flags array, input, output, connectable
Plug access node.original_geometry.plug
Logical element node.original_geometry.element_plug(i).value

node.output_geometryRead / connections

Geometry output plugs; distinct from output_geometries.

Item Type / behavior
Declared Maya path outputGeometry
Property return TypedArrayProxy
Declared spec kind array:typed:geometry
Declared default ()
Flags array, output, connectable
Plug access node.output_geometry.plug
Logical element node.output_geometry.element_plug(i).value

node.functionStructured access

Native internal deformer data exposed by the specs.

Item Type / behavior
Declared Maya path function
Property return CompoundProxy
Declared spec kind compound
Declared default None
Flags input, output, connectable, stored, hidden
Plug access node.function.plug

The property returns a structure. Edit an explicit child or use Plug operations; do not replace the proxy with a Python assignment.

node.fchild_1Read / write

First integer field of function.

Item Type / behavior
Declared Maya path function.fchild1
Property return _ValuePlugProxy · .value: int
Declared spec kind numeric:int
Declared default 0
Flags input, output, connectable, stored, hidden
Read the value node.fchild_1.value
Assignment node.fchild_1 = value

node.fchild_2Read / write

Second integer field of function.

Item Type / behavior
Declared Maya path function.fchild2
Property return _ValuePlugProxy · .value: int
Declared spec kind numeric:int
Declared default 0
Flags input, output, connectable, stored, hidden
Read the value node.fchild_2.value
Assignment node.fchild_2 = value

node.fchild_3Read / write

Third integer field of function.

Item Type / behavior
Declared Maya path function.fchild3
Property return _ValuePlugProxy · .value: int
Declared spec kind numeric:int
Declared default 0
Flags input, output, connectable, stored, hidden
Read the value node.fchild_3.value
Assignment node.fchild_3 = value
Specs inherited from DGNode6
Property Maya plug Returns Description
message message None Node message plug; used for connections, with no numeric value.
frozen frozen _ValuePlugProxy · .value: bool Native evaluation freeze state.
is_historically_interesting isHistoricallyInteresting _ValuePlugProxy · .value: int Node interest level in Maya history.
bin_membership binMembership _ValuePlugProxy · .value: str Maya bin membership.
caching_enabled caching _ValuePlugProxy · .value: bool Native node caching switch.
caching_node_state nodeState _ValuePlugProxy · .value: int Native nodeState evaluation state.

No new public methods on this class. Use inherited methods below; an abstract base does not provide a new creatable Maya type.

Methods inherited from DGNode7
Method Returns Description
create None Creates a missing node; does nothing if it already exists.
delete None Disconnects live connections, detaches the wrapper and deletes the node.
snapshot DGSnapshot Captures and stores an identity and spec-driven SVD dictionary.
snapshot_svd SVDSnapshot Captures Source / Value / Destinations for the requested list.
svd SVDView Returns a read-only live view of source, value and destinations; it is not a frozen capture.
finalize None Applies all sources, then undriven values, then destinations; enabled FSET dispatch follows.
clear_attr_cache None Clears this instance attribute cache; does not delete nodes or clear the global wrapper registry.
Methods inherited from Node2
Method Returns Description
has_fn(fn_type) bool Test compatibility with a Maya function set.
clear_node_registry() None Detach registered wrappers and clear their shared registry.
Attribute Type Value / role
NODE_TYPE str | None "geometryFilter"
COMPATIBLE_MAYA_FN_TYPES tuple[int, ...] (om.MFn.kGeometryFilt,)
SPEC_LAYERS list[SpecLayer] Parent layers + get_geometry_filter_specs_all

Attributes defined or overridden here. NODE_REGISTRY is inherited from Node.

The GeometryFilterSnapshot types exported by these modules are TypedDict descriptions, not classes to instantiate for capture. Use node.snapshot().

Point Behavior
Identity The wrapper follows the Maya object; a replacement with the same name is not the same node.
Reading Live reads take priority; check exists before native operations.
Specs Describe existing plugs; do not automatically add Maya attributes.
Examples The demonstration creates and deletes only its own nodes with a random name suffix.

Self-contained example for the Maya Python Script Editor. To run it in mayapy, initialize maya.standalone before this block and shut it down afterwards, as shown in the Node.

This test creates a skinCluster without bound geometry to demonstrate the base; it does not perform a skin bind.

from uuid import uuid4
from weSkel.src.core.node.abstract.geometry_filter.lib import GeometryFilter
from weSkel.src.core.node.dg.skin_cluster.lib import SkinCluster
node = SkinCluster("api_filter_" + uuid4().hex[:8])
try:
node.create()
assert GeometryFilter(node.mobject) is node
assert node.mfn_geometry_filter is not None
node.envelope = 0.5
assert abs(node.envelope.value - 0.5) < 1e-6
assert len(node.input_geometries) == 0
assert len(node.output_geometries) == 0
print("GeometryFilter: envelope and empty geometry arrays OK")
finally:
node.delete(snapshot=False)

Expected result : GeometryFilter: envelope and empty geometry arrays OK. Demonstration nodes are removed in finally.

SDK checkpoint 87c3486 reference. Inventory and examples checked against source under Maya 2025.3 and 2026.3; this does not validate the compiled package.