A lightweight, opinionated template for running machine learning and robotics research projects. It provides a standardized structure for experiments, data handling, logging, and evaluation, with ready-to-use configs and scripts for reproducible workflows.
Projects that used RoboML template:
Let me know if you use this template!!
- Hydra Configuration Management: Modular config structure with separate files for model, training, and wandb settings
- Type-Safe Configs: Dataclass schemas for configuration validation and IDE support
- Wandb Integration: Built-in experiment tracking and logging
- Fast Package Management: Uses
uvfor quick dependency installation - Development Tools: Pre-commit hooks with ruff and black for code quality
- Auto-formatting: Ruff automatically formats Python files on save (VS Code/Cursor)
- Python 3.8+
- uv package manager
- Clone the repository:
git clone <repository-url>
cd roboml-research-template- Install dependencies:
uv venv
source .venv/bin/activate
make installNote: This template installs dependencies directly rather than using pip install -e ".[dev]" because it's structured as a template repository, not an installable Python package.
- (Optional) Install pre-commit hooks:
make pre-commit-installpython main.pyConfiguration files are located in the config/ directory:
defaults.yaml: Main defaults file that imports all configsmodel.yaml: Model architecture parameterstraining.yaml: Training hyperparameterswandb.yaml: Wandb project settingsconfig.yaml: General experiment settings
Override config values via command line:
python main.py training.learning_rate=0.01 training.batch_size=64- Lint code:
make lint - Format code:
make format - Run tests:
make test - Clean cache:
make clean
roboml-research-template/
├── config/ # Hydra configuration files
│ ├── config_schema.py # Dataclass schemas
│ ├── defaults.yaml # Main defaults
│ ├── model.yaml # Model config
│ ├── training.yaml # Training config
│ ├── wandb.yaml # Wandb config
│ └── config.yaml # General config
├── networks/ # Network architectures
├── learner/ # Learning algorithms
├── tests/ # Test files
└── main.py # Entry point
Contributions are welcome! Please see CONTRIBUTING.md for guidelines.
See LICENSE file for details.