auto-atomic-operation lets you define robotic manipulation tasks — move, grasp, release, pick, place, push, pull, press — as declarative YAML files. A built-in state machine handles task sequencing, pose resolution, end-effector control, and execution tracking. A plugin-based backend system decouples task logic from the underlying hardware or simulator, making it easy to run the same task definition against a real robot, a physics simulator, or a lightweight mock for testing.
- Hydra-powered task configuration — describe multi-stage manipulation tasks in YAML; full Hydra support means
_target_instantiation, variable interpolation, and command-line overrides work out of the box - Flexible pose references — specify targets relative to world, robot base, end-effector, or tracked objects
- Pluggable backends — connect any robot or simulator by implementing a small set of abstract interfaces
- Pose randomization — per-object position/orientation randomization with automatic collision avoidance on reset
- Multi-arm support — single-arm and dual-arm (left/right) topologies
- Execution records — detailed per-stage status, failure reasons, and timing after every run
- MuJoCo backend included — a ready-to-use backend with RGB-D cameras, tactile sensors, force/torque, IMU, and joint state support
- 3D Gaussian Splatting rendering — photorealistic rendering for any task via
_gs.yamlconfigs
Requires Python 3.10+.
pip install auto-atomic-operationThe PyPI release lags behind source and does not ship with demo configs/assets. For the latest features and runnable demos, install from source.
GIT_LFS_SKIP_SMUDGE=1 git clone https://github.com/OpenGHz/auto-atomic-operation.git
cd auto-atomic-operation
pip install -e . # core framework only
pip install -e ".[mujoco]" # with the built-in MuJoCo backend
pip install -e ".[gs]" # with 3D Gaussian Splatting renderingMuJoCo demo assets live in Git LFS. After cloning, install Git LFS and pull them:
sudo apt-get install git-lfs # Debian/Ubuntu
git lfs pullThe CLI looks for configs in ./aao_configs/ relative to the current working directory. After cloning the repo, run from the project root:
aao_demo --list # list every available config
aao_demo --config-name mock # mock backend, no simulator required
aao_demo --config-name pick_and_place # MuJoCo demo (default)
aao_demo --config-name <config> # any other configFor all CLI flags, Hydra overrides, and aao_eval usage, see the CLI Reference.
![]() |
![]() |
pick_and_place |
cup_on_coaster |
![]() |
![]() |
stack_color_blocks |
press_three_buttons |
![]() |
![]() |
open_drawer |
close_drawer |
![]() |
![]() |
open_hinge_door |
close_hinge_door |
![]() |
pick_and_place_franka |
GS configs are named <task>_gs and run identically to the native MuJoCo demos. Asset bundles live on Hugging Face:
pip install huggingface_hub httpx[socks]
hf download OpenGHz/auto-atom-assets --repo-type=dataset --include "assets/gs/*" --local-dir .![]() |
![]() |
cup_on_coaster_gs |
stack_color_blocks_gs |
![]() |
![]() |
press_three_buttons_gs |
arrange_flowers_gs |
![]() |
![]() |
hang_toothbrush_cup_gs |
wipe_the_table_gs |
Full documentation is hosted at openghz.github.io/auto-atomic-operation. Common entry points:
- CLI Reference — every flag, override, and output of
aao_demo/aao_eval - Task Configuration — YAML schema, stages, waypoints, action space, randomization, scene composition
- Execution Completion Flow — how
pre_move/eef/post_movedecide they are done and how that drives stage success - MuJoCo Backend — backend conditions, gripper semantics, observation wiring
- Custom Backend Guide — integrate a new simulator or real robot
- IK & Motion Control
- Gaussian Splatting
- Tools — data collection, replay, policy evaluation, panel XML assembly, scene viewer, randomization tuning, benchmarking
- Migration Notes — bring your own XML / mesh / GS assets into this project's layout
See LICENSE.














