Sym2real
Official repo for Sym2Real: Symbolic Dynamics with Residual Learning for Data-Efficient Adaptive Control
Install / Use
/learn @generalroboticslab/Sym2realREADME
Sym2Real: Symbolic Dynamics with Residual Learning for Data-Efficient Adaptive Control
<div align="center">
<img src="https://img.shields.io/badge/Framework-JAX-red.svg"/>
Easop Lee, Samuel A. Moore, and Boyuan Chen <br> Duke University <br>
<div align="center"> <table> <tr> <td align="center"> <img src="figures/sym2real_led_painting.png" alt="Sym2Real LED Painting" width="400"/> </td> <td align="center"> <img src="figures/teaser.png" alt="Sym2Real Teaser" width="275"/> </td> </tr> </table> </div>This repository provides a modular framework for symbolic dynamics model-based control, integrating dynamics models, controllers, and algorithms. This also includes Mujoco simulation environments. This repository is to be concurrently used with real robot repositories.
📑 Contents
🛠️ Installation
conda create -n sym2real python==3.10
conda activate sym2real
pip install -r installation/requirements.txt
source installation/setup.sh
🚀 Quickstart
This runs our method (1. base model, 2. adaptation) in MuJoCo simulation environments.
Our repository is handled by hydra. Custom hydra parameters are located under the conf folder. The parameters can be changed at run time by specifying them in the terminal.
▶️ Run Base Model (e.g. Symbolic Regression on Crazyflie)
python main.py \
dynamics_model="symbolic_regression" \
overrides="pets_crazyflie" \
env_params="crazyflie" \
root_dir="exp_results/base_exps/"
🪄 Run Residual Model (e.g. Symbolic Regression + Residual MLP on Crazyflie)
python main.py \
dynamics_model="residual_mlp" \
dynamics_model.model_a="symbolic_regression" \
dynamics_model.model_a_path="{path_to_sr_base_model_experiment}" \
overrides="pets_crazyflie" \
env_params="crazyflie" \
env_params.wind_x=8 \
env_params.wind_y=4 \
root_dir="exp_results/res_exp/"
⚙️ Available configurations
All available hydra parameters are under the conf/ folder.
conf/
├── dynamics_model
│ ├── symbolic_regression
│ ├── gaussian_mlp_ensemble
│ ├── residual_mlp # requires base model type & its saved path as shown above
│ └── residual_sr # requires base model type & its saved path as shown above
│
├── env_params
│ ├── crazyflie
│ └── mushr
│
├── overrides
│ ├── pets_crazyflie
│ └── pets_mushr
│
└── controller
├── cem
├── mppi
└── spline_mppi
🤖 Hardware
This repository contains the core training, modeling, and controller scripts for our experiments, along with the simulation environments used for base experiments and sim2sim transfers.
For sim2real experiments, hardware-specific communication components are located in separate repositories. These external scripts can directly call all main scripts from this repository.
For real-world hardware experiments, please:
-
Install the following additional repositories:
-
Launch experiments from those repositories rather than this one for sim2real adaptation experiments.
Citation
If you find our paper or codebase helpful, please consider citing:
@misc{lee2025sym2realsymbolicdynamicsresidual,
title={Sym2Real: Symbolic Dynamics with Residual Learning for Data-Efficient Adaptive Control},
author={Easop Lee and Samuel A. Moore and Boyuan Chen},
year={2025},
eprint={2509.15412},
archivePrefix={arXiv},
primaryClass={cs.RO},
url={https://arxiv.org/abs/2509.15412},
}
📚 Acknowledgement
This work was supported by ARO under award W911NF2410405 and DARPA TIAMAT program under award HR00112490419.
We also acknowledge the reference to the following codebase:
Related Skills
proje
Interactive vocabulary learning platform with smart flashcards and spaced repetition for effective language acquisition.
YC-Killer
2.7kA library of enterprise-grade AI agents designed to democratize artificial intelligence and provide free, open-source alternatives to overvalued Y Combinator startups. If you are excited about democratizing AI access & AI agents, please star ⭐️ this repository and use the link in the readme to join our open source AI research team.
best-practices-researcher
The most comprehensive Claude Code skills registry | Web Search: https://skills-registry-web.vercel.app
groundhog
400Groundhog's primary purpose is to teach people how Cursor and all these other coding agents work under the hood. If you understand how these coding assistants work from first principles, then you can drive these tools harder (or perhaps make your own!).
