This repository brings together the two main Atmos projects in a single place:
atmos-server: the Python runtime/API that validates and executes Atmos specificationsatmos-interface: the React + TypeScript frontend used to author specs and visualize results
The repository structure makes it easier to clone, install, and run both projects side by side.
atmos/
├── atmos-server/
│ ├── input/
│ │ ├── chicago/
│ │ ├── geo/
│ │ ├── mrrj/
│ │ └── hrrr/
└── atmos-interface/
├── public/
│ ├── examples/
│ │ └── atmos-lite/
This repository includes an empty input/ folder inside atmos-server/ for local data. This folder is used by atmos-server to load local data sources referenced in Atmos specifications.
Some Atmos examples require external datasets (e.g., NetCDF, CSV), which are not included in this repository due to their size.
You can download example datasets here:
After downloading, place the files inside:
atmos-server/input/
Important: Preserve the folder structure inside input/ (including subfolders), as some specifications expect specific relative paths.
The example specifications available in the frontend (public/examples/atmos-lite) are designed to work with this data. Once the files are in place, you can load and run those examples directly.
Install these before getting started:
- Git
- Python 3.10+
- Node.js and npm
git clone https://github.com/urban-toolkit/atmos.git
cd atmosatmos-server is the backend runtime. It is a Python project that validates Atmos specs, runs the data pipeline, and serves generated artifacts.
cd atmos-server
python3 -m venv .venv
source .venv/bin/activatecd atmos-server
python -m venv .venv
.\.venv\Scripts\Activate.ps1pip install --upgrade pip
pip install -e .uvicorn atmos_server.api.app:app --reload --port 8000The backend will be available at:
- API health check:
http://localhost:8000/api/health - Generated artifacts:
http://localhost:8000/artifacts/...
The package also exposes an atmos-server command. Example usage:
atmos-server versions
atmos-server validate path/to/spec.json --version v0.1
atmos-server run path/to/spec.json --version v0.1 --out artifacts/manual-runKeep the backend running while you start the frontend in a second terminal.
atmos-interface is the frontend application built with React, TypeScript, and Vite.
Open a new terminal and go to the frontend directory:
cd atmos/atmos-interfacenpm installnpm run devVite will print a local URL, usually:
http://localhost:5173/
Open that URL in your browser.
The Vite dev server is configured to proxy these paths to the backend running on port 8000:
/api/artifacts
That means the recommended local development setup is:
atmos-serverrunning athttp://localhost:8000atmos-interfacerunning athttp://localhost:5173
From the repository root:
cd atmos-server
source .venv/bin/activate # macOS/Linux
# or .\.venv\Scripts\Activate.ps1 on Windows
uvicorn atmos_server.api.app:app --reload --port 8000cd atmos-interface
npm install
npm run devThen open the frontend URL shown by Vite.
cd atmos-interface
npm run buildThe production build will be written to dist/.
Make sure the backend is running on port 8000, since the frontend proxy points there during local development.
Make sure you are using a recent Node.js version. If needed, delete node_modules and package-lock.json, then reinstall.
Make sure your virtual environment is activated and that you are running the command inside atmos-server.
If port 8000 or 5173 is busy, stop the conflicting process or change the port manually.
- The server writes run outputs under
atmos-server/artifacts/runs/. - The frontend README currently contains the default Vite template text, so this top-level README is the recommended place to start for repository setup.