Jump to content

Connect SuperML | Leeroopedia MCP: Equip your AI agents with best practices, code verification, and debugging knowledge. Powered by Leeroo — building Organizational Superintelligence. Contact us at founders@leeroo.com.

Implementation:Haosulab ManiSkill SimConfig

From Leeroopedia
Knowledge Sources
Domains Robotics, Simulation, Configuration
Last Updated 2026-02-15 08:00 GMT

Overview

Concrete tool for defining simulation configuration dataclasses including physics settings, GPU memory allocation, material defaults, and type aliases.

Description

The types.py module defines the configuration dataclasses and type aliases used throughout ManiSkill for simulation setup.

Type aliases:

  • Array = Union[torch.Tensor, np.ndarray, Sequence] -- Universal array type.
  • Device = Union[str, torch.device] -- Device specification type.
  • DriveMode = Literal["force", "acceleration"] -- Drive control mode.

GPUMemoryConfig: Controls PhysX GPU memory allocation:

  • temp_buffer_capacity -- Pinned host buffer (default: 2^24).
  • max_rigid_contact_count -- Contact buffer size (default: 2^19).
  • max_rigid_patch_count -- Patch buffer size (default: 2^18).
  • heap_capacity, found_lost_pairs_capacity, collision_stack_size, etc.

SceneConfig: PhysX scene physics parameters:

  • gravity -- Default [0, 0, -9.81].
  • solver_position_iterations (15) / solver_velocity_iterations (1).
  • Contact/rest offsets, sleep threshold, bounce threshold.
  • Flags: PCM, TGS, CCD, enhanced determinism, friction every iteration.

DefaultMaterialsConfig: Default physics material:

  • static_friction (0.3), dynamic_friction (0.3), restitution (0).

SimConfig: Top-level simulation configuration:

  • spacing -- Distance between parallel environments (default: 5m).
  • sim_freq -- Simulation frequency in Hz (default: 100).
  • control_freq -- Control frequency in Hz (default: 20).
  • Nested gpu_memory_config, scene_config, default_materials_config.

Usage

Override in environment subclasses to customize simulation parameters. The SimConfig is specified in the environment class definition and applied during environment creation.

Code Reference

Source Location

Signature

Array = Union[torch.Tensor, np.ndarray, Sequence]
Device = Union[str, torch.device]
DriveMode = Literal["force", "acceleration"]

@dataclass
class GPUMemoryConfig:
    temp_buffer_capacity: int = 2**24
    max_rigid_contact_count: int = 2**19
    max_rigid_patch_count: int = 2**18
    heap_capacity: int = 2**26
    ...

@dataclass
class SceneConfig:
    gravity: np.ndarray  # default [0, 0, -9.81]
    solver_position_iterations: int = 15
    solver_velocity_iterations: int = 1
    ...

@dataclass
class DefaultMaterialsConfig:
    static_friction: float = 0.3
    dynamic_friction: float = 0.3
    restitution: float = 0

@dataclass
class SimConfig:
    spacing: float = 5
    sim_freq: int = 100
    control_freq: int = 20
    gpu_memory_config: GPUMemoryConfig = ...
    scene_config: SceneConfig = ...
    default_materials_config: DefaultMaterialsConfig = ...

Import

from mani_skill.utils.structs.types import Array, Device, SimConfig, GPUMemoryConfig, SceneConfig

I/O Contract

Inputs

Name Type Required Description
spacing float No Distance between parallel envs (default: 5m)
sim_freq int No Physics simulation frequency (default: 100 Hz)
control_freq int No Control step frequency (default: 20 Hz)

Outputs

Name Type Description
SimConfig SimConfig Complete simulation configuration
dict dict Serialized config via .dict() method

Usage Examples

Basic Usage

from mani_skill.utils.structs.types import SimConfig, GPUMemoryConfig

# Custom simulation config
sim_config = SimConfig(
    spacing=10,
    sim_freq=200,
    control_freq=50,
    gpu_memory_config=GPUMemoryConfig(
        max_rigid_contact_count=2**21,
    ),
)
print(sim_config.dict())

Related Pages

Page Connections

Double-click a node to navigate. Hold to expand connections.
Principle
Implementation
Heuristic
Environment