Rust-Speed Grid Analytics

Stop installing
Start solving.

A full grid lab in a single binary. AC-OPF, N-1 contingency analysis, and state estimation without the Python headaches or commercial invoices.

$ curl -fsSL https://github.com/monistowl/gat/releases/download/v0.5.7/install-modular.sh | bash
Get Started
bash — 80x24
user@lab:~$ gat pf dc grid.arrow --out flows.parquet
# Loading 12k-bus system...
Nodes: 12,400
Branches: 16,210
Solver: Clarabel (Rust)
Time: 42ms
user@lab:~$ _
Output: Parquet / Arrow

Built for the entire ecosystem

Select your role to see how GAT changes your workflow.

Background
Open Source & Academic Community

Your thesis deserves better than MATLAB.

GAT is what happens when you rewrite half the power-systems curriculum in Rust and ship it as a single executable. Runs everywhere, solves fast, zero ceremony.

The Scenario

"You sit down to reproduce a paper. The Python environment breaks. The MATLAB license expired. You remember GAT exists. One command later, you're running AC-OPF and generating Parquet files that drop straight into Polars. Suddenly your entire research pipeline works again."

WHY IT MATTERS

GAT is the toolkit every power-systems student always wished existed: reproducible, dependency-free, lightning-fast, and fully hackable. Run AC-OPF, N-1, SE, contingency analysis, and reliability metrics with a local binary smaller than most homework PDFs. Export to Arrow/Parquet, visualize via a built-in Ratatui dashboard, and tear apart the Rust code to see how everything works. Academic use is free — and contributions shape the future of open grid tooling.

⚙️

Native Rust Speed

Forget waiting minutes for OPF. GAT runs industrial-grade solvers in milliseconds. Ideal for N-1 screening and real-time validation.

🗄️

Data-First Architecture

Inputs and outputs are Arrow & Parquet. Drop results straight into Polars, DuckDB, or Pandas without parsing text files.

🔒

Air-Gap Ready

No internet required. No license servers. A single binary that runs safely behind your firewall or in an isolated enclave.

📊

Visual Dashboard

Includes a built-in TUI (Ratatui) for exploring models, results, and reliability metrics directly from the terminal.

💻

Agent-Ready API

Designed for tool-use. MCP server endpoints and structured JSON outputs make GAT the perfect physics engine for AI agents.

📖

Open Core

Academic use is free forever. Contributions shape the future of open grid tooling. Documentation that actually exists.

Preview GAT Studio • Browser + WASM

A demo web GUI that speaks Rust, WASM, and the GAT CLI.

(Coming soon) Ship the same workflows to the browser with a WASM build of gat-notebook. The Studio mock shows how the CLI, notebook cells, and live outputs stay in lockstep—perfect for interactive docs, training labs, or lightweight field tools.

WASM Bridge
  • Compile gat-notebook via wasm-pack
  • Expose a thin JS harness for file drops and blobs
  • Stream Arrow/Parquet frames to the UI viewer
UI Wiring
  • Notebook cell buttons call the WASM shim
  • Status badges mirror CLI telemetry
  • Result panes reuse Arrow viewers from the demo
Build

Bundle gat-notebook with --target web and publish to static/.

Wire

Attach run buttons to the WASM bridge and feed stdin/stdout to the panels.

Ship

Reuse this layout for docs, on-prem demos, or embedded field tablets.

GN
GAT Notebook (WASM preview)
Interactive AC-OPF cell ➜ live result panes
Idle • ready
Selected demo AC-OPF quickstart IEEE 14-bus • CLI parity
case14.arrow · limits.csv
gat opf ac case14.arrow --limits limits.csv --out opf.parquet
Cell 12 • ac_opf() wasm-bindgen
1 use gat_notebook::{ac_opf, ArrowSink};
2 let grid = load_arrow("case14.arrow")?;
3 let limits = load_csv("branch_limits.csv")?;
4 let result = ac_opf(grid, limits).await?;
5 ArrowSink::from(result).download("opf.parquet");
CLI parity
gat opf ac grid.arrow --limits branch_limits.csv --out opf.parquet --mipgap 1e-4 --solver clarabel
Live outputs Parquet
flows.parquet → 14 branches
binding constraints: 2
objective: 13,284.22
🔗 WASM embed status
Waiting for wasm-pack output…
Drop notebook.js and notebook_bg.wasm into static/wasm/gat-notebook to hydrate this embed. The page will look for a run_demo (or run_cell) export to wire the run button.
Awaiting bundle…
WASM supported. Looking for gat-notebook artifacts…
Run pipeline
Compile wasm build
Hydrate notebook shell
Solve ac_opf
Stream outputs
Service worker caching Edge-friendly No GPU required

Documentation & Resources

Everything you need to get started with GAT.