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, andextensionare loaded and validated byConfigManager. - Tasks & actions:
taskmay defineactionsandgoalsfor no-code flows. - Extensions:
extensioncan 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_sizevsground_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 therecord.h5layout produced by therecordextension and the activeTrajectoryLoaderimplementation.\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.