| # Extending Simulators | |
| Add a new simulator by implementing `dovla_cil.simulators.base.SimulatorBackend`. | |
| Minimum requirements: | |
| 1. `serialize_state()` must return enough information for exact reset. | |
| 2. `reset_from_state(state)` must restore deterministic state for same-state interventions. | |
| 3. `get_observation()` must return JSON-serializable metadata or paths to external assets. | |
| 4. `step_action_chunk(action)` must execute a fixed action chunk and return reward, done, and info. | |
| Keep heavyweight dependencies optional. The package should import and run toy smoke tests even when | |
| ManiSkill3, Genesis, or cluster launchers are unavailable. | |