Skip to content

Commit f75e79f

Browse files
committed
Cleanup for v0.1.0
Signed-off-by: Adityan Jothi <ajothi@nvidia.com>
1 parent 623e58c commit f75e79f

15 files changed

Lines changed: 122 additions & 177 deletions

File tree

.github/CODEOWNERS

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,14 @@
1-
#cpp code owners
2-
cpp/ @<org>/<repo>-cpp-codeowners
3-
41
#python code owners
5-
python/ @<org>/<repo>-python-codeowners
2+
modules @metropolis-sdg-team/metropolis-sdg-codeowners
3+
4+
#notebooks code owners
5+
notebooks @metropolis-sdg-team/metropolis-sdg-codeowners
66

7-
#cmake code owners
8-
**/CMakeLists.txt @<org>/<repo>-cmake-codeowners
9-
**/cmake/ @<org>/<repo>-cmake-codeowners
7+
#data code owners
8+
data @metropolis-sdg-team/metropolis-sdg-codeowners
109

1110
#build/ops code owners
12-
.github/ @<org>/ops-codeowners
13-
ci/ @<org>/ops-codeowners
14-
conda/ @<org>/ops-codeowners
15-
**/Dockerfile @<org>/ops-codeowners
16-
**/.dockerignore @<org>/ops-codeowners
17-
docker/ @<org>/ops-codeowners
11+
deploy @metropolis-sdg-team/metropolis-sdg-codeowners
12+
.github @metropolis-sdg-team/metropolis-sdg-codeowners
13+
pyproject.toml @metropolis-sdg-team/metropolis-sdg-codeowners
14+

.github/ISSUE_TEMPLATE/bug_report.md

Lines changed: 0 additions & 30 deletions
This file was deleted.

.github/ISSUE_TEMPLATE/documentation-request.md

Lines changed: 0 additions & 42 deletions
This file was deleted.

.github/ISSUE_TEMPLATE/feature_request.md

Lines changed: 0 additions & 23 deletions
This file was deleted.

.github/ISSUE_TEMPLATE/submit-question.md

Lines changed: 0 additions & 14 deletions
This file was deleted.

CHANGELOG.md

Lines changed: 32 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,41 @@
1-
# ___PROJECT___ 0.0.0 (DD Mon YYYY)
1+
# Metropolis SDG for Smart Cities 0.1.0 (18 Nov 2025)
22

33
## New Features
44

5-
- ...
5+
- End-to-end SDG workflow:
6+
- Stage 1: CARLA 0.9.16 ground-truth generation (RGB, Depth, Semantic/Instance Segmentation, Normals, Edges, masks, ODVG JSONs)
7+
- Stage 2: Cosmos-Transfer2.5 video augmentation with Gradio client
8+
- Stage 3: SoM-aligned post-processing and VLM-ready artifacts
9+
- Docker Compose deployment:
10+
- Homogeneous mode: single-host stack for NIM services, Cosmos-Transfer, CARLA, and Jupyter Workbench
11+
- Heterogeneous mode: split NIM stack and Workbench across hosts with `NIM_HOST`
12+
- One-command deploy script (`deploy/compose/deploy.sh`):
13+
- `./deploy.sh` (homogeneous), `./deploy.sh nim`, `./deploy.sh workbench`
14+
- Per-service GPU pinning via `*_GPU_ID` and `*_GPU_COUNT`
15+
- Health checks guidance and URLs printed
16+
- Notebook (`notebooks/carla_synthetic_data_generation.ipynb`):
17+
- Self-guided flow: ground truth generation → captioning → template/prompt generation → augmentation → post-processing
18+
- NIM endpoints and ports derived from env
19+
- Config assets and samples:
20+
- CARLA scenario JSON and camera YAML examples
21+
- Augmentation YAML (`modules/augmentation/configs/config_carla.yaml`)
22+
- Class filter YAML for masked edges
623

724
## Improvements
825

9-
- ...
26+
- README updates:
27+
- Quickstart with clear homogeneous/heterogeneous steps
28+
- Troubleshooting covers image access errors, health checks, GPU runtime setup, Docker permissions, port issues, and CARLA GPU usage.
29+
- Advanced configuration guide (`data/docs/advanced_configuration.md`):
30+
- Field-by-field documentation for env, CARLA JSON/YAML, augmentation YAML
31+
- Validation rules and type constraints, recommendations, and examples
32+
- Notes on external reference configs (Inverted AI examples)
33+
- Deploy UX:
34+
- `workbench` mode prompts to confirm `NIM_HOST` loaded from `deploy/compose/env`
35+
- README clarifies `NIM_HOST` in `env` overrides previously exported values
1036

1137
## Bug Fixes
1238

13-
- ...
39+
- Robust config validation for augmentation pipeline (required sections and fields)
40+
- Safer handling of missing seeds and prompt files
41+
- Graceful errors for missing controls per selected modalities in Cosmos execution

CITATION.md

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,6 @@
22

33
If you use this project or its components in your research, please cite the project and the third-party systems it builds upon.
44

5-
## Cite This Project
6-
```tex
7-
@misc{smartcity_sdg_2025,
8-
title = {Synthetic Data Generation for Smart City Applications},
9-
author = {Project Contributors},
10-
year = {2025},
11-
note = {Software repository}
12-
}
13-
```
14-
155
## NIM Components
166

177
### Cosmos-Reason1-7B (VLM)

README.md

Lines changed: 28 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -140,8 +140,8 @@ Notes:
140140
1) Clone the repository
141141

142142
```bash
143-
git clone <repository.git>
144-
cd its-github
143+
git clone https://github.com/NVIDIA/metropolis-sdg-smart-cities.git
144+
cd metropolis-sdg-smart-cities
145145
```
146146

147147
2) Download sample CARLA logs
@@ -191,7 +191,7 @@ Once the NIM stack is up, launch the CARLA server and notebook/workbench stack,
191191

192192
```bash
193193
# On the second machine, ensure steps 1-3 are complete to have the repository and configuration ready before this step.
194-
export NIM_HOST=<ip_of_nim_node> # Set NIM host to IP of machine 1 printed in the previous step.
194+
# The deployment script sources `deploy/compose/env`, where `NIM_HOST` defaults to `localhost`. This will override any previously exported `NIM_HOST`. Before running `./deploy.sh workbench`, edit `deploy/compose/env` and set `NIM_HOST=<ip_of_nim_node>`. The script will prompt you to confirm the detected value.
195195
cd deploy/compose
196196
./deploy.sh workbench
197197
```
@@ -220,34 +220,6 @@ curl http://$HOST:8002/v1/health/ready # LLM should return "Service is live."
220220
- Stage 3: SoM-aligned post-processing for VLM training
221221
---
222222

223-
## Configuration
224-
225-
Environment file (`deploy/compose/env.example`)
226-
- Set credentials: `NGC_API_KEY`, `HF_TOKEN`
227-
- Select GPUs per service: `*_GPU_ID`, `*_GPU_COUNT`
228-
- Ports: `NOTEBOOK_PORT`, `VLM_PORT`, `LLM_PORT`, `TRANSFER_GRADIO_PORT`, `CARLA_PORT`
229-
- Endpoints auto-derived from host and ports
230-
231-
CARLA ground-truth generation:
232-
- JSON workflow/config and per-camera YAMLs (see `modules/carla-ground-truth-generation/config/`)
233-
- Typical invocation from the repository root directory:
234-
```bash
235-
cd modules/carla-ground-truth-generation
236-
python main.py --config config/wrong_way.json
237-
# Or with workflow config overrides
238-
python main.py --wf-config wf-config.json --config config/wrong_way.json
239-
```
240-
241-
COSMOS augmentation (Cosmos-Transfer2.5):
242-
- YAML config drives cameras, template/prompt generation, and COSMOS execution (see `modules/augmentation/configs/`)
243-
- Typical invocation from workbench shell:
244-
```bash
245-
uv run modules/augmentation/modules/cli.py --config modules/augmentation/configs/config_carla.yaml
246-
```
247-
248-
Notebook workflow:
249-
- `notebooks/carla_synthetic_data_generation.ipynb`
250-
251223
## Advanced Configuration
252224
- For a complete list of configuration options, field definitions, and recommendations, see `data/docs/advanced_configuration.md`.
253225

@@ -291,6 +263,27 @@ Example configs and logs can be found [here](https://github.com/inverted-ai/metr
291263
```bash
292264
docker run --rm --gpus all nvidia/cuda:12.2-runtime-ubuntu22.04 nvidia-smi
293265
```
266+
- Set NVIDIA runtime as default so containers can access GPU:
267+
- Edit `/etc/docker/daemon.json`:
268+
```json
269+
{
270+
"runtimes": {
271+
"nvidia": {
272+
"path": "nvidia-container-runtime",
273+
"runtimeArgs": []
274+
}
275+
},
276+
"default-runtime": "nvidia"
277+
}
278+
```
279+
- Then restart Docker and relaunch containers:
280+
```bash
281+
sudo systemctl daemon-reload && sudo systemctl restart docker
282+
# If already running, bring down and redeploy
283+
docker compose -f deploy/compose/docker-compose.nim.yml --env-file deploy/compose/env down || true
284+
docker compose -f deploy/compose/docker-compose.workbench.yml --env-file deploy/compose/env down || true
285+
cd deploy/compose && ./deploy.sh
286+
```
294287

295288
**NGC login required:**
296289
- `docker login nvcr.io` with `$oauthtoken` and your `NGC_API_KEY`
@@ -375,6 +368,10 @@ docker logs transfer2_5-gradio
375368
# [11-10 19:25:53|INFO|cosmos_transfer2/inference.py:108:__init__] Saved config to outputs/config.yaml
376369
```
377370

371+
**Slow CARLA simulation:**
372+
- If you encounter the message `WARNING: lavapipe is not a conformant vulkan implementation, testing use only.`, this usually means your container is not using the NVIDIA container runtime, or your GPU is not supported by CARLA.
373+
- To resolve this, ensure the NVIDIA runtime is enabled for Docker (see the setup section for details on configuring it as default).
374+
- If your GPU is unsupported, try to match your setup to the hardware recommendations in this README or use a supported environment.
378375

379376
---
380377

data/docs/advanced_configuration.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
## Advanced Configuration Guide
1+
## Advanced Configuration Guide — Metropolis SDG Smart Cities
22

33
This guide documents all configuration knobs used by the SDG workflow across CARLA ground-truth generation, augmentation/orchestration, and deployment/runtime. It explains each field, types, defaults, constraints, and recommendations for first-time success and advanced tuning.
44

deploy/compose/deploy.sh

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ case "$MODE" in
126126
echo "[deploy] Mode: heterogeneous (Workbench-only on this node)"
127127
if ! check_nvcr_login; then
128128
echo "[deploy][warn] Not logged into nvcr.io. If your workbench Dockerfile uses NVCR base images, please login:"
129-
echo " docker login nvcr.io (username: oauthtoken; password: your NGC API key)"
129+
echo " docker login nvcr.io (username: $oauthtoken; password: your NGC API key)"
130130
fi
131131
if [ -z "${NIM_HOST:-}" ]; then
132132
if [ -f env ]; then
@@ -136,10 +136,22 @@ case "$MODE" in
136136
fi
137137
if [ -z "${NIM_HOST:-}" ]; then
138138
echo "[deploy][error] NIM_HOST not set. Set NIM_HOST in the environment or 'env' file before deploying Workbench."
139-
echo "Example: export NIM_HOST=<NIM_NODE_IP> && ./deploy.sh het-workbench"
139+
echo "Example: export NIM_HOST=<NIM_NODE_IP> && ./deploy.sh workbench"
140140
exit 1
141141
fi
142142
echo "[deploy] Using NIM_HOST: $NIM_HOST"
143+
# Confirm NIM_HOST looks correct to the user before proceeding
144+
read -r -p "[deploy] Is this the correct NIM host for your NIM node? [y/N]: " _ans
145+
case "${_ans:-N}" in
146+
y|Y|yes|YES)
147+
;;
148+
*)
149+
echo "[deploy][info] Please edit 'deploy/compose/env' and set NIM_HOST to your NIM node IP, then re-run:"
150+
echo " cd deploy/compose && vi env # or your preferred editor"
151+
echo " ./deploy.sh workbench"
152+
exit 1
153+
;;
154+
esac
143155
docker compose -f docker-compose.workbench.yml --env-file env up -d
144156
;;
145157

0 commit comments

Comments
 (0)