newton.geometry.SDFHydroelasticConfig#

class newton.geometry.SDFHydroelasticConfig(reduce_contacts=True, buffer_mult_broad=1, buffer_mult_iso=1, buffer_mult_contact=1, grid_size=262144, output_contact_surface=False, normal_matching=True, anchor_contact=False, moment_matching=False, margin_contact_area=0.01)[source]#

Bases: object

Controls properties of SDF hydroelastic collision handling.

__init__(reduce_contacts=True, buffer_mult_broad=1, buffer_mult_iso=1, buffer_mult_contact=1, grid_size=262144, output_contact_surface=False, normal_matching=True, anchor_contact=False, moment_matching=False, margin_contact_area=0.01)#
anchor_contact: bool = False#

Whether to add an anchor contact at the center of pressure for each normal bin. The anchor contact helps preserve moment balance. Only active when reduce_contacts is True.

buffer_mult_broad: int = 1#

Multiplier for the preallocated broadphase buffer that stores overlapping block pairs. Increase only if a broadphase overflow warning is issued.

buffer_mult_contact: int = 1#

Multiplier for the preallocated face contact buffer that stores contact positions, normals, depths, and areas. Increase only if a face contact overflow warning is issued.

buffer_mult_iso: int = 1#

Multiplier for preallocated iso-surface extraction buffers used during hierarchical octree refinement (subblocks and voxels). Increase only if an iso buffer overflow warning is issued.

grid_size: int = 262144#

Grid size for contact handling. Can be tuned for performance.

margin_contact_area: float = 0.01#

Contact area used for non-penetrating contacts at the margin.

moment_matching: bool = False#

Whether to scale friction coefficients to match the aggregate moment from unreduced contacts. Requires anchor_contact=True to be effective. Only active when reduce_contacts is True.

normal_matching: bool = True#

Whether to rotate reduced contact normals so their weighted sum aligns with the aggregate force direction. Only active when reduce_contacts is True.

output_contact_surface: bool = False#

Whether to output hydroelastic contact surface vertices for visualization.

reduce_contacts: bool = True#

Whether to reduce contacts to a smaller representative set per shape pair. When False, all generated contacts are passed through without reduction.