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, betas=(10.0, -0.5), sticky_contacts=0.0, normal_matching=True, 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, betas=(10.0, -0.5), sticky_contacts=0.0, normal_matching=True, moment_matching=False, margin_contact_area=0.01)#
betas: tuple[float, float] = (10.0, -0.5)#

Penetration beta values for contact reduction heuristics. See compute_score() for more details.

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 attempt adjusting reduced contacts friction coefficients so their net maximum moment matches that of the reference given by unreduced contacts. Only active when reduce_contacts is True.

normal_matching: bool = True#

Whether to adjust reduced contacts normals so their net force direction matches that of the reference given by unreduced contacts. 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.

sticky_contacts: float = 0.0#

Stickiness factor for temporal contact persistence. Setting it to a small positive value (e.g. 1e-6) can prevent jittering contacts in certain scenarios. Default is 0.0 (no stickiness).