Introduction

FastSim uses stereotypes to describe generated entities (base, object, robot, sensor, light, …) and organizes them in a scene. UniSim provides a unified simulation abstraction; backends such as isaaclab plug in through simulator adapters.

  • Config-driven: blocks like general, simulation, scene, task, and extension are loaded and validated by ConfigManager.
  • Tasks & actions: task may define actions and goals for no-code flows.
  • Extensions: extension can enable recording, replay, benchmarks, HTTP server, and more.

See the following topic pages and the Configuration section for details.

Known issues and risk notes

This project is under active iteration. The items below are observable from the current codebase and are provided as troubleshooting guidance. Validate critical workflows before production use:

  • Config field consistency: some demo configs use inconsistent field names (e.g., base_config.ground_size vs ground_plane_size). Treat the corresponding Config classes and validators as the source of truth.\n- Replay/trajectory toolchain: multiple loader paths (HDF5/LFS) and legacy modules may coexist. Prefer the record.h5 layout produced by the record extension and the active TrajectoryLoader implementation.\n- Planner implementation risks: planner-related code may include maintainability risks and strong external assumptions. Validate IK, motion planning, world updates, and attach/detach flows before relying on them.\n- Termination behavior: FastSim.close() uses a hard exit (os._exit(0)). If you require graceful cleanup (e.g., integration into a larger system), evaluate and adjust accordingly.