Collide problem statement - An AI siting platform that jointly scores candidate sites across all three dimensions, surfacing a ranked set of locations with quantified risk and cost estimates for each constraint layer and enabling a developer to understand the sensitivity of site rankings to changes in gas price, LMP spreads, and land cost.
0
stars
35
commits
Python
primary language
Aug 7, 2026
updated
An AI siting platform that jointly scores candidate sites across land viability, gas supply reliability, and BTM power economics — surfacing a ranked set of locations with quantified risk, cost estimates, and sensitivity analysis.
Built for the ASU Energy Hackathon 2026.
Hyperscale AI data centers need 50–500 MW of power 24/7. Grid interconnection queues now stretch 3–7 years. The alternative — behind-the-meter (BTM) natural gas generation — requires evaluating three interlocking constraints simultaneously:
COLLIDE scores every candidate site across all three dimensions in seconds, streams a composite scorecard with 20-year NPV estimates, and lets an AI analyst answer what-if questions in natural language.
| Layer | Technology |
|---|---|
| Frontend | React 18, Vite, Leaflet, Recharts |
| Backend | Python FastAPI, async SSE |
| AI orchestration | LangGraph + LangChain |
| LLM | Anthropic Claude Haiku + Sonnet |
| ML models | Random Forest (land, power durability), Gaussian KDE (gas), GMM (regime) |
| Live data | GridStatus (ERCOT LMP), EIA Open Data, CAISO OASIS |
| Web enrichment | Tavily API |
| Data pipeline | DuckDB, Parquet, Pandera, 10 public APIs |
| Deployment | Vercel (experimentalServices: Vite + FastAPI) |
normal (cluster 0), wind_curtailment (cluster 1), stress_scarcity (cluster 2)| Source | Dataset | Cadence |
|---|---|---|
| EIA-930 | BA demand, net generation | 15 min |
| EIA Open Data | Waha + Henry Hub gas prices | Daily |
| CAISO OASIS | SP15, NP15, Palo Verde LMP | 5 min |
| NOAA NWS | Phoenix weather forecast | Hourly |
| BLM GeoBOB | Federal land ownership (AZ, NM, TX) | Static |
| FCC HIFLD | Dark fiber and FTTP availability | Static |
| USGS NHD | Water body proximity | Static |
| FEMA | 100-year flood zone boundaries | Periodic |
| EIA Gas | Pipeline routes ERCOT + WECC | Periodic |
| PHMSA | Gas pipeline incident records | Periodic |
collide/
├── src/ # React frontend
│ ├── components/ # 28 UI components
│ ├── hooks/ # 13 custom hooks (useEvaluate, useAgent, ...)
│ ├── docs/ # /docs/* documentation pages
│ └── data/ # Static site definitions
├── backend/
│ ├── scoring/ # Sub-A, Sub-B, Sub-C + TOPSIS + cost
│ ├── agent/ # LangGraph agent (graph.py, tools.py)
│ ├── features/ # Spatial feature extraction
│ ├── pipeline/ # FastAPI routes + background jobs
│ └── data/ # Site definitions + live cache
├── data/models/ # Trained pkl files (RF, GMM, KDE, SHAP)
├── ingestion/ # Data pipeline (see ingestion/README.md)
└── docs/ # Problem statement + specs + plans
npm install
npm run dev
python -m venv .venv
.venv/Scripts/activate # Windows
pip install -r requirements.txt
npm run dev:api
Set environment variables in .env:
ANTHROPIC_API_KEY=sk-ant-...
TAVILY_API_KEY=tvly-...
GRIDSTATUS_API_KEY=...
EIA_API_KEY=...
See ingestion/README.md for full setup. To run all sources:
cd ingestion
python -m ingestion.run
| Method | Path | Purpose |
|---|---|---|
| GET | /api/sites | All candidate sites with scores |
| GET | /api/market | Live gas prices, LMP, BA demand |
| POST | /api/evaluate | Score a coordinate (SSE stream) |
| POST | /api/optimize | Grid search (SSE stream) |
| POST | /api/agent | AI Analyst query (SSE stream) |
| GET | /api/forecast | 72 h LMP forecast P10/P50/P90 |
| GET | /api/regime | Current market regime |
| WS | /ws/lmp/stream | Live ERCOT LMP WebSocket |
Full schema reference: /docs/schema
Live docs are available at /docs in the app:
Python
62.3%
JavaScript
26.3%
CSS
10.9%
Collide problem statement - An AI siting platform that jointly scores candidate sites across all three dimensions, surfacing a ranked set of locations with quantified risk and cost estimates for each constraint layer and enabling a developer to understand the sensitivity of site rankings to changes in gas price, LMP spreads, and land cost.
0
stars
35
commits
Python
primary language
Aug 7, 2026
updated
An AI siting platform that jointly scores candidate sites across land viability, gas supply reliability, and BTM power economics — surfacing a ranked set of locations with quantified risk, cost estimates, and sensitivity analysis.
Built for the ASU Energy Hackathon 2026.
Hyperscale AI data centers need 50–500 MW of power 24/7. Grid interconnection queues now stretch 3–7 years. The alternative — behind-the-meter (BTM) natural gas generation — requires evaluating three interlocking constraints simultaneously:
COLLIDE scores every candidate site across all three dimensions in seconds, streams a composite scorecard with 20-year NPV estimates, and lets an AI analyst answer what-if questions in natural language.
| Layer | Technology |
|---|---|
| Frontend | React 18, Vite, Leaflet, Recharts |
| Backend | Python FastAPI, async SSE |
| AI orchestration | LangGraph + LangChain |
| LLM | Anthropic Claude Haiku + Sonnet |
| ML models | Random Forest (land, power durability), Gaussian KDE (gas), GMM (regime) |
| Live data | GridStatus (ERCOT LMP), EIA Open Data, CAISO OASIS |
| Web enrichment | Tavily API |
| Data pipeline | DuckDB, Parquet, Pandera, 10 public APIs |
| Deployment | Vercel (experimentalServices: Vite + FastAPI) |
normal (cluster 0), wind_curtailment (cluster 1), stress_scarcity (cluster 2)| Source | Dataset | Cadence |
|---|---|---|
| EIA-930 | BA demand, net generation | 15 min |
| EIA Open Data | Waha + Henry Hub gas prices | Daily |
| CAISO OASIS | SP15, NP15, Palo Verde LMP | 5 min |
| NOAA NWS | Phoenix weather forecast | Hourly |
| BLM GeoBOB | Federal land ownership (AZ, NM, TX) | Static |
| FCC HIFLD | Dark fiber and FTTP availability | Static |
| USGS NHD | Water body proximity | Static |
| FEMA | 100-year flood zone boundaries | Periodic |
| EIA Gas | Pipeline routes ERCOT + WECC | Periodic |
| PHMSA | Gas pipeline incident records | Periodic |
collide/
├── src/ # React frontend
│ ├── components/ # 28 UI components
│ ├── hooks/ # 13 custom hooks (useEvaluate, useAgent, ...)
│ ├── docs/ # /docs/* documentation pages
│ └── data/ # Static site definitions
├── backend/
│ ├── scoring/ # Sub-A, Sub-B, Sub-C + TOPSIS + cost
│ ├── agent/ # LangGraph agent (graph.py, tools.py)
│ ├── features/ # Spatial feature extraction
│ ├── pipeline/ # FastAPI routes + background jobs
│ └── data/ # Site definitions + live cache
├── data/models/ # Trained pkl files (RF, GMM, KDE, SHAP)
├── ingestion/ # Data pipeline (see ingestion/README.md)
└── docs/ # Problem statement + specs + plans
npm install
npm run dev
python -m venv .venv
.venv/Scripts/activate # Windows
pip install -r requirements.txt
npm run dev:api
Set environment variables in .env:
ANTHROPIC_API_KEY=sk-ant-...
TAVILY_API_KEY=tvly-...
GRIDSTATUS_API_KEY=...
EIA_API_KEY=...
See ingestion/README.md for full setup. To run all sources:
cd ingestion
python -m ingestion.run
| Method | Path | Purpose |
|---|---|---|
| GET | /api/sites | All candidate sites with scores |
| GET | /api/market | Live gas prices, LMP, BA demand |
| POST | /api/evaluate | Score a coordinate (SSE stream) |
| POST | /api/optimize | Grid search (SSE stream) |
| POST | /api/agent | AI Analyst query (SSE stream) |
| GET | /api/forecast | 72 h LMP forecast P10/P50/P90 |
| GET | /api/regime | Current market regime |
| WS | /ws/lmp/stream | Live ERCOT LMP WebSocket |
Full schema reference: /docs/schema
Live docs are available at /docs in the app:
Python
62.3%
JavaScript
26.3%
CSS
10.9%