# Rust build output (the Studio crate's own workspace)
target/
**/target/

# macOS
.DS_Store

# uv-managed virtualenvs (trainnr/)
.venv/
.venv-train/
.venv-usd/
# Training runs: checkpoints and logs are artifacts by hash, not source.
trainnr/runs/
__pycache__/
*.egg-info/
# Generated debris: MuJoCo's cwd log, episode/training
# output (artifacts travel by hash, never as source), ruff cache.
MUJOCO_LOG.TXT
runs/
.ruff_cache/

# Local secrets/config: never tracked (a root .env appeared 2026-08-26).
.env
.env.*

# Per-user Claude Code settings (shared settings, if any, live in .claude/settings.json).
.claude/settings.local.json

# coverage databases carry absolute paths; per machine, never tracked
.coverage*
.playwright-mcp/
# the forks' worktrees (claude worktree plugin), never part of the tree
.claude/worktrees/

# The Studio log the launch line redirects to when started by hand.
scratchpad/

# uv build / setuptools output
trainnr/build/
trainnr/dist/
trainnr-mjlab/build/
trainnr-mjlab/dist/

# coverage.py data and reports
.coverage
coverage.json
badge-coverage.json
htmlcov/

# The microduck's meshes are fetched from Pollen Robotics on first use
# (robots/microduck/FETCH.json): their licence keeps them out of this repository.
robots/microduck/assets/
# keys and credentials never belong in the tree
*.pem
*.key
id_rsa*
id_ed25519*
credentials*.json
.netrc
# editor, notebook and tracker state
.idea/
.vscode/
.ipynb_checkpoints/
wandb/
.pytest_cache/
.mypy_cache/
