1
Fork 0
Controller Modularity in Brittle-Star Robots https://selab-3-2026.github.io/SEL3-2026-Groep-4/
This repository has been archived on 2026-08-15. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
Find a file
Tibo De Peuter 8347d81d70 test: add tests for YAML config loading
- test_config.py: covers load_yaml_config (happy path, missing file raises)
- Uses project-relative paths so tests run in any environment
2026-04-01 00:28:32 +02:00
.agents chore: configure git lfs 2026-03-21 16:36:33 +01:00
.devcontainer fix(devcontainer): update GPU runtime args for compatibility 2026-03-31 20:04:13 +00:00
.github/workflows ci: skip actions on draft pull requests 2026-03-21 17:29:21 +01:00
configs feat(config): add YAML config templates for dev, production and personal use 2026-04-01 00:27:00 +02:00
docs docs: update documentation for logging and configuration 2026-03-31 19:53:45 +00:00
experiments Environment setup + train loop (#5) 2026-03-26 09:53:54 +01:00
src fix(train): integrate YAML config 2026-04-01 00:27:38 +02:00
tests test: add tests for YAML config loading 2026-04-01 00:28:32 +02:00
.commitlintrc.json ci: configure pre-commit hooks 2026-03-21 16:35:42 +01:00
.gitattributes chore: configure git lfs 2026-03-21 16:36:33 +01:00
.gitignore fix(logging): improve JSON serialization and add wandb directory to gitignore 2026-03-31 20:52:51 +00:00
.pre-commit-config.yaml ci: configure pre-commit hooks 2026-03-21 16:35:42 +01:00
.python-version Initial commit 2026-02-26 14:18:39 +01:00
flake.lock Initial commit 2026-02-26 14:18:39 +01:00
flake.nix ci: configure pre-commit hooks 2026-03-21 16:35:42 +01:00
pyproject.toml fix(train): integrate YAML config 2026-04-01 00:27:38 +02:00
README.md docs: update documentation for logging and configuration 2026-03-31 19:53:45 +00:00
ruff.toml fix(lint): remove deprecated ruff rule PLR1708 2026-03-31 19:32:38 +00:00
uv.lock Environment setup + train loop (#5) 2026-03-26 09:53:54 +01:00

Brittle Star

Reinforcement learning research on brittle star locomotion using PPO.

Quick Start

Installation

Set up the environment using UV:

uv sync --frozen

Configuration

  1. Copy the default configuration:

    cp configs/default_ppo.yaml configs/my_experiment.yaml
    
  2. Edit configs/my_experiment.yaml to set your WandB credentials:

    track: true  # Enable WandB logging
    wandb_entity: "your-wandb-username"  # Replace with your username/team
    wandb_project_name: "PPO-Modularity"
    
  3. (Optional) Login to WandB:

    uv run wandb login
    

Training

Run training with your configuration:

uv run python src/train.py

Or use a custom config file:

uv run python src/train.py --config configs/my_experiment.yaml

Override specific parameters:

uv run python src/train.py --learning-rate 0.001 --num-envs 32 --track

Logging

The training script uses a unified logging framework that:

  • Logs to WandB (when enabled)
  • Saves metrics to local disk (JSON files in runs/)
  • Displays progress in stdout

All experiment data is preserved locally, even if WandB is unavailable.

Project Structure

src/brittle_star_project/  # Core library (reusable components)
├── logging/               # Unified logging framework
├── environment/           # Environment wrappers
├── rl/                    # RL algorithms and models
└── dataclasses/          # Configuration dataclasses

configs/                   # Training configurations
runs/                      # Training outputs (checkpoints, metrics)

For Researchers

Important: Do not commit your personal WandB credentials to the repository. Instead, create your own config file (e.g., configs/yourname.yaml) and add it to .gitignore if needed.

See configs/README.md for more details on configuration management.