From 013268c28328cc1ff5fce6be82d4b5a0fe14200f Mon Sep 17 00:00:00 2001 From: Taylor Howell Date: Mon, 12 Jan 2026 08:46:35 -0800 Subject: [PATCH] Documentation: Pair-wise colliders. PiperOrigin-RevId: 855245724 Change-Id: Iffad5dc426350040f730dc1a7b9766f079ef949e --- doc/computation/index.rst | 138 ++++++++++++++++++++++++++++++++++++ doc/css/theme_overrides.css | 7 +- 2 files changed, 144 insertions(+), 1 deletion(-) diff --git a/doc/computation/index.rst b/doc/computation/index.rst index 3cbb8738..0f069845 100644 --- a/doc/computation/index.rst +++ b/doc/computation/index.rst @@ -1574,6 +1574,144 @@ callbacks. This can be used to incorporate a general-purpose "triangle soup" col do not recommend such an approach. Pre-processing the geometry and representing it as a union of convex geoms takes some work, but it pays off at runtime and yields both faster and more stable simulation. +.. _coPairwise: + +Pair-wise colliders +^^^^^^^^^^^^^^^^^^^ + +The table below provides information about the colliders used for different geom pairs. The second row in each cell +lists the maximum number of contacts generated, possibly with ``multiccd`` enabled. For example, ``Mesh`` / ``Mesh`` +will generate up to 1 contact or with ``multiccd`` up to 4 contacts. + +.. list-table:: + :header-rows: 1 + :stub-columns: 1 + :widths: auto + :class: table-pairwise + + * - + - Sphere + - Capsule + - Ellipsoid + - Cylinder + - Box + - Mesh + - SDF + * - Plane + - | primitive + | **1** + - | primitive + | **2** + - | primitive + | **1** + - | primitive + | **2** + - | primitive + | **4** + - | primitive + | **3** + - | primitive + | **1** + * - HField + - | HFieldCCD + | :ref:`mjMAXCONPAIR ` + - | HFieldCCD + | :ref:`mjMAXCONPAIR ` + - | HFieldCCD + | :ref:`mjMAXCONPAIR ` + - | HFieldCCD + | :ref:`mjMAXCONPAIR ` + - | HFieldCCD + | :ref:`mjMAXCONPAIR ` + - | HFieldCCD + | :ref:`mjMAXCONPAIR ` + - | HFieldSDF + | :ref:`sdf_initpoints ` + * - Sphere + - | primitive + | **1** + - | primitive + | **1** + - | CCD + | **1** + - | primitive + | **1** + - | primitive + | **1** + - | CCD + | **1** + - | SDF + | :ref:`sdf_initpoints ` + * - Capsule + - + - | primitive + | **2** + - | CCD + | **1** + - | CCD + | **1**, **4** + - | primitive + | **2** + - | CCD + | **1**, **4** + - | SDF + | :ref:`sdf_initpoints ` + * - Ellipsoid + - + - + - | CCD + | **1** + - | CCD + | **1** + - | CCD + | **1** + - | CCD + | **1** + - | SDF + | :ref:`sdf_initpoints ` + * - Cylinder + - + - + - + - | CCD + | **1**, **4** + - | CCD + | **1**, **4** + - | CCD + | **1**, **4** + - | SDF + | :ref:`sdf_initpoints ` + * - Box + - + - + - + - + - | primitive + | **8** + - | CCD + | **1**, **4** + - | SDF + | :ref:`sdf_initpoints ` + * - Mesh + - + - + - + - + - + - | CCD + | **1**, **4** + - | MeshSDF + | :ref:`sdf_initpoints ` + * - SDF + - + - + - + - + - + - + - | SDF + | :ref:`sdf_initpoints ` + .. _Sleeping: Sleeping islands diff --git a/doc/css/theme_overrides.css b/doc/css/theme_overrides.css index 6df21b1a..45f94131 100644 --- a/doc/css/theme_overrides.css +++ b/doc/css/theme_overrides.css @@ -50,7 +50,12 @@ body[data-theme="dark"] table.docutils:not(.mjcf-attributes) { font-size: 93%; } -.small-centered td, .small-centered th { +.table-pairwise { + font-size: 85%; +} + +.small-centered td, .small-centered th, +.table-pairwise td, .table-pairwise th { text-align: center !important; vertical-align: middle !important; border: 2px solid var(--color-table-border) !important;