Installation¶
DAM is set up from source using make setup. The setup script handles the Python environment, Rust extension build, and frontend dependencies in one step.
Prerequisites¶
| Tool | How to get it |
|---|---|
| Git | Already installed on most systems |
| uv | Auto-installed by make setup if missing |
| Rust + cargo | rustup.rs — required for the Rust data plane |
| Node.js | nodejs.org — optional, only needed for the dashboard UI |
Quick Start¶
# 1. Clone the repository
git clone https://github.com/ez945y/DAM.git
cd DAM
# 2. Run one-time setup (Python venv + Rust extension + npm)
make setup
# 3. Start the system
make run
make run starts both the backend API (port 8080) and the pre-built dashboard UI
(port 3000). Run make build after frontend changes.
Open http://localhost:3000 in your browser to see the DAM Console.
What make setup Does¶
The setup script runs automatically and handles:
- Python environment — creates
.venv/and installs development, service, and PyTorch dependencies viauv sync --frozen --inexact - Rust extension — compiles
dam_rsviamaturinand installs it into.venv/ - Frontend — installs dashboard dependencies from
package-lock.jsonwith npm's offline cache preference and creates.env.localif it doesn't exist
If uv is not installed, the script installs it automatically. cargo must be available beforehand — install it with:
Hardware Support (SO-ARM101 / LeRobot)¶
For physical robot hardware, use the lerobot variant:
Running make setup after make setup-lerobot will preserve the hardware extras — it detects lerobot in the existing venv and keeps it.
After installing hardware extras, complete the no-hardware Quick Start first. Move to Hardware Readiness only when validation, inspection, and console checks are familiar.
Useful Make Targets¶
| Target | Description |
|---|---|
make setup |
First-time setup: venv + Rust + npm |
make setup-lerobot |
Setup with SO-ARM101 hardware support |
make build |
Build the production console after frontend changes |
make run |
Start backend + pre-built console (follows .dam_stackfile.yaml) |
make test |
Run full test suite (Python + Rust + frontend) |
make build-rs |
Rebuild Rust extension only |
make lint |
Run linters (ruff, mypy, cargo clippy) |
make clean |
Remove .venv/, Rust build artefacts, node_modules/ |
Verify¶
After setup completes, verify the installation:
# Python package
.venv/bin/python -c "import dam; print(dam.__version__)"
# Rust extension
.venv/bin/python -c "import dam_rs; print('Rust data plane OK')"
# Runtime dependency check
.venv/bin/dam doctor
# Run the test suite
make test
Expected results:
- The Python package command prints the installed DAM version, such as
0.5.0. - The Rust extension command prints
Rust data plane OK. dam doctorreports required components as available; optional hardware packages may warn unless installed.make testends withAll checks passed.
Next, continue with Quick Start.