Simulation
Nodes for simulations inside of Geometry Nodes
Build Elastic Network
nodes.geometry.BuildElasticNetwork(
atoms=None,
selection=True,
menu='Alpha Carbon',
alpha_carbon=4.0,
all_atom=2.0,
)
GUI reference: Build Elastic Network.
Parameters
| atoms |
InputGeometry |
Atomic mesh which inculdes vertices and edges to generate an elastic network on |
None |
| selection |
InputBoolean |
Atoms which aren’t selected will not be included in the final output mesh |
True |
| menu |
| Literal['Alpha Carbon', 'All Atom'] |
Output a network between just alpha carbons, or one that includes all atoms |
'Alpha Carbon' |
| alpha_carbon |
InputFloat |
Scale the distance for edge creation between just alpha carbon atoms, ignoring all other atoms. |
4.0 |
| all_atom |
InputFloat |
Scale the distance for edge creation, looking for all selected atoms |
2.0 |
Outputs
| o.mesh |
GeometrySocket |
The generated elastic network. Edges are formed between atoms within the cutoff distance for use as constraints in a simulation |
Force Brownian
nodes.geometry.ForceBrownian(add=None, small=0.1, large=0.0)
GUI reference: Force Brownian.
Parameters
| add |
InputVector |
Add |
None |
| small |
InputFloat |
Small |
0.1 |
| large |
InputFloat |
Large |
0.0 |
Outputs
| o.force |
VectorSocket |
Force |
Force Gravity
nodes.geometry.ForceGravity(add=None, gravity=None)
GUI reference: Force Gravity.
Parameters
| add |
InputVector |
Add |
None |
| gravity |
InputVector |
Gravity |
None |
Outputs
| o.force |
VectorSocket |
Force |
Force Mesh Collide
nodes.geometry.ForceMeshCollide(
add=None,
geometry=None,
geometry_bounds='Original',
collision_distance=0.1,
)
GUI reference: Force Mesh Collide.
Parameters
| add |
InputVector |
Add |
None |
| geometry |
InputGeometry |
Geometry |
None |
| geometry_bounds |
| Literal['Original', 'Convex Hull'] |
Geometry Bounds |
'Original' |
| collision_distance |
InputFloat |
Collision Distance |
0.1 |
Outputs
| o.force |
VectorSocket |
Force |
Simulate Curve
nodes.geometry.SimulateCurve(
geometry=None,
selection=True,
substeps=5,
force=None,
drag=1.0,
point_radius=0.04,
point_alpha=0.0,
curve_points=1,
curve_straightness=0.9,
curve_segment_length=0.1,
curve_alpha=0.0,
hook_selection=False,
hook_target=None,
hook_decay=0.5,
pin_selection=False,
pin_target=None,
)
GUI reference: Simulate Curve.
Parameters
| geometry |
InputGeometry |
Geometry containing curve to simulate |
None |
| selection |
InputBoolean |
Which points to simulate on the curve |
True |
| substeps |
InputInteger |
Number of substeps to simulate for each frame of the animation (higher is slower but more accurate) |
5 |
| force |
InputVector |
Additional forces to be applied to the simulation |
None |
| drag |
InputFloat |
Drag force for how quickly velocity should dissipate in the simulation. 0 is no drag and higher values dissipate quicker. |
1.0 |
| point_radius |
InputFloat |
Radius for each point which is used for calculating collisions between points |
0.04 |
| point_alpha |
InputFloat |
Point alpha |
0.0 |
| curve_points |
InputInteger |
Number of points to check in each direction to maintain straightness of curve |
1 |
| curve_straightness |
InputFloat |
Curve Straightness |
0.9 |
| curve_segment_length |
InputFloat |
Curve Segment Length |
0.1 |
| curve_alpha |
InputFloat |
Curve alpha |
0.0 |
| hook_selection |
InputBoolean |
Hook Selection |
False |
| hook_target |
InputVector |
Hook Target |
None |
| hook_decay |
InputFloat |
Hook Decay |
0.5 |
| pin_selection |
InputBoolean |
Pin Selection |
False |
| pin_target |
InputVector |
Pin Target |
None |
Outputs
| o.geometry |
GeometrySocket |
Geometry |
Simulate Elastic Network
nodes.geometry.SimulateElasticNetwork(
mesh=None,
selection=True,
substeps=5,
force=None,
drag=0.1,
edge_length_source='Original',
edge_length=0.1,
edge_alpha=0.0,
particle_radius=0.005,
particle_alpha=0.0,
hook_selection=False,
hook_target=None,
hook_decay=2.0,
pin_selection=False,
pin_target=None,
)
GUI reference: Simulate Elastic Network.
Parameters
| mesh |
InputGeometry |
Mesh |
None |
| selection |
InputBoolean |
Selection |
True |
| substeps |
InputInteger |
Substeps |
5 |
| force |
InputVector |
Force |
None |
| drag |
InputFloat |
Drag |
0.1 |
| edge_length_source |
| Literal['Original', 'Custom'] |
Edge Length Source |
'Original' |
| edge_length |
InputFloat |
Edge Length |
0.1 |
| edge_alpha |
InputFloat |
Edge alpha |
0.0 |
| particle_radius |
InputFloat |
Particle Radius |
0.005 |
| particle_alpha |
InputFloat |
Particle alpha |
0.0 |
| hook_selection |
InputBoolean |
Hook Selection |
False |
| hook_target |
InputVector |
Hook Target |
None |
| hook_decay |
InputFloat |
Hook Decay |
2.0 |
| pin_selection |
InputBoolean |
Pin Selection |
False |
| pin_target |
InputVector |
Pin Target |
None |
Outputs
| o.geometry |
GeometrySocket |
Geometry |
Simulate on Faces
nodes.geometry.SimulateOnFaces(
points=None,
selection=True,
substeps=5,
force=None,
drag=0.1,
faces=None,
alpha=0.0,
particle_radius=0.0,
particle_alpha=0.0,
hook_selection=False,
hook_target=None,
hook_decay=2.0,
pin_selection=False,
pin_target=None,
)
GUI reference: Simulate on Faces.
Parameters
| points |
InputGeometry |
Points |
None |
| selection |
InputBoolean |
Selection |
True |
| substeps |
InputInteger |
Substeps |
5 |
| force |
InputVector |
Force |
None |
| drag |
InputFloat |
Drag |
0.1 |
| faces |
InputGeometry |
Faces |
None |
| alpha |
InputFloat |
alpha |
0.0 |
| particle_radius |
InputFloat |
Particle Radius |
0.0 |
| particle_alpha |
InputFloat |
Particle alpha |
0.0 |
| hook_selection |
InputBoolean |
Hook Selection |
False |
| hook_target |
InputVector |
Hook Target |
None |
| hook_decay |
InputFloat |
Hook Decay |
2.0 |
| pin_selection |
InputBoolean |
Pin Selection |
False |
| pin_target |
InputVector |
Pin Target |
None |
Outputs
| o.geometry |
GeometrySocket |
Geometry |
| o.normal |
VectorSocket |
Normal of the face the current point is nearest |