newton.solvers.style3d#

Style3D solver module.

This module provides the SolverStyle3D cloth simulation solver along with helper functions for setting up cloth assets. It includes utilities for creating cloth meshes and grids, handling collisions, and sewing cloth vertices together.

Functions

newton.solvers.style3d.add_cloth_grid(builder, *, pos, rot, vel, dim_x, dim_y, cell_x, cell_y, mass, reverse_winding=False, fix_left=False, fix_right=False, fix_top=False, fix_bottom=False, tri_aniso_ke=None, tri_ka=None, tri_kd=None, tri_drag=None, tri_lift=None, edge_aniso_ke=None, edge_kd=None, add_springs=False, spring_ke=None, spring_kd=None, particle_radius=None, custom_attributes_particles=None, custom_attributes_springs=None)#

Create a planar Style3D cloth grid.

Call newton.solvers.SolverStyle3D.register_custom_attributes() before invoking this helper so the Style3D custom attributes are available on the builder. The grid uses mass per particle to compute panel density and then delegates to newton.solvers.style3d.add_cloth_mesh().

Parameters:
  • builder (ModelBuilder) – newton.ModelBuilder to populate.

  • pos (Vec3) – World-space translation for the grid.

  • rot (Any) – World-space rotation for the grid.

  • vel (Vec3) – Initial velocity for all particles.

  • dim_x (int) – Number of grid cells along X (creates dim_x + 1 vertices).

  • dim_y (int) – Number of grid cells along Y (creates dim_y + 1 vertices).

  • cell_x (float) – Cell size along X in panel space.

  • cell_y (float) – Cell size along Y in panel space.

  • mass (float) – Mass per particle (used to compute density).

  • reverse_winding (bool) – If True, flip triangle winding.

  • fix_left (bool) – Fix particles on the left edge.

  • fix_right (bool) – Fix particles on the right edge.

  • fix_top (bool) – Fix particles on the top edge.

  • fix_bottom (bool) – Fix particles on the bottom edge.

  • tri_aniso_ke (Sequence[Vec3] | Vec3 | None) – Anisotropic stretch stiffness (weft, warp, shear).

  • tri_ka (float | None) – Triangle area stiffness.

  • tri_kd (float | None) – Triangle damping.

  • tri_drag (float | None) – Triangle drag coefficient.

  • tri_lift (float | None) – Triangle lift coefficient.

  • edge_aniso_ke (Sequence[Vec3] | Vec3 | None) – Anisotropic bending stiffness values.

  • edge_kd (float | None) – Edge damping.

  • add_springs (bool) – If True, add structural springs across mesh edges.

  • spring_ke (float | None) – Spring stiffness.

  • spring_kd (float | None) – Spring damping.

  • particle_radius (float | None) – Per-particle radius.

  • custom_attributes_particles (dict[str, Any] | None) – Extra custom attributes for particles.

  • custom_attributes_springs (dict[str, Any] | None) – Extra custom attributes for springs.

newton.solvers.style3d.add_cloth_mesh(builder, *, pos, rot, vel, vertices, indices, density, scale=1.0, panel_verts=None, panel_indices=None, tri_aniso_ke=None, edge_aniso_ke=None, tri_ka=None, tri_kd=None, tri_drag=None, tri_lift=None, edge_kd=None, add_springs=False, spring_ke=None, spring_kd=None, particle_radius=None, custom_attributes_particles=None, custom_attributes_springs=None)#

Add a Style3D cloth mesh using newton.ModelBuilder custom attributes.

This helper uses newton.ModelBuilder.add_particles(), newton.ModelBuilder.add_triangles(), and newton.ModelBuilder.add_edges(). It computes panel-space rest data for anisotropic stretch and bending, then injects the Style3D custom attributes:

  • style3d:tri_aniso_ke

  • style3d:edge_rest_area

  • style3d:edge_bending_cot

  • style3d:aniso_ke

It overwrites newton.ModelBuilder.tri_poses and newton.ModelBuilder.tri_areas with panel rest data. Call newton.solvers.SolverStyle3D.register_custom_attributes() before invoking this helper.

Parameters:
  • builder (ModelBuilder) – newton.ModelBuilder to populate.

  • pos (Vec3) – World-space translation for the mesh.

  • rot (Any) – World-space rotation for the mesh.

  • vel (Vec3) – Initial velocity for all particles.

  • vertices (Sequence[Vec3]) – 3D mesh vertices (list of positions).

  • indices (Sequence[int]) – Triangle indices (3 entries per face).

  • density (float) – Mass per unit area in panel space.

  • scale (float) – Uniform scale applied to vertices and panel_verts.

  • panel_verts (Sequence[Vec2] | None) – 2D panel coordinates (UVs). Defaults to vertices XY.

  • panel_indices (Sequence[int] | None) – Triangle indices in panel space. Defaults to indices.

  • tri_aniso_ke (Sequence[Vec3] | Vec3 | None) – Anisotropic stretch stiffness (weft, warp, shear). Can be a single value or per-triangle list. Full lists are filtered to valid triangles after degenerates are removed.

  • edge_aniso_ke (Sequence[Vec3] | Vec3 | None) – Anisotropic bending stiffness values. Can be a single value or per-edge list (computed from mesh adjacency).

  • tri_ka (float | None) – Triangle area stiffness (defaults to newton.ModelBuilder.default_tri_ka).

  • tri_kd (float | None) – Triangle damping (defaults to newton.ModelBuilder.default_tri_kd).

  • tri_drag (float | None) – Triangle drag coefficient (defaults to newton.ModelBuilder.default_tri_drag).

  • tri_lift (float | None) – Triangle lift coefficient (defaults to newton.ModelBuilder.default_tri_lift).

  • edge_kd (float | None) – Edge damping (defaults to newton.ModelBuilder.default_edge_kd).

  • add_springs (bool) – If True, add structural springs across mesh edges.

  • spring_ke (float | None) – Spring stiffness (defaults to newton.ModelBuilder.default_spring_ke).

  • spring_kd (float | None) – Spring damping (defaults to newton.ModelBuilder.default_spring_kd).

  • particle_radius (float | None) – Per-particle radius (defaults to newton.ModelBuilder.default_particle_radius).

  • custom_attributes_particles (dict[str, Any] | None) – Extra custom attributes for particles.

  • custom_attributes_springs (dict[str, Any] | None) – Extra custom attributes for springs.