# Aurora
### Glass-box quantitative intelligence. Local. Open. Cited.
Aurora is the **verification cortex** for serious quantitative work — for humans analyzing hard data, and for AI systems that can't afford to hallucinate.
> **Cloud LLMs guess. Aurora computes.**
[](LICENSE)
[](https://python.org)
[](#)
[](#)
[](https://www.patreon.com/c/FantasyLab3DStudio)
**[⬇️ Download the desktop app](#%EF%B8%8F-download-the-desktop-app)** · [Run from source](#-quickstart-60-seconds) · [Aurora Sentinel demos](#-aurora-sentinel--decision-contracts-in-the-room) · [See it in action](#see-aurora-in-action) · [Aurora Copilot](#-aurora-copilot--for-humans) · [Aurora Cortex (MCP + SDK)](#%EF%B8%8F-aurora-cortex--for-ai-systems) · [Roadmap](ROADMAP.md) · [FantasyLab.ai](https://fantasylab.ai)
The run banner. Domain selector across the top (Research / Ops / Industrial / Finance / Medical / Economics / Sports / Logistics / Custom+) sets context. The Aurora Pulse line below states the run's status in plain English. The 0 fabricated chip is the contractual signal that every finding traces to a method.
The Studio. The Overview cube rotates through six analytical lenses (Overview, Anomalies, Regimes, Motifs, Forecast, Physics). Below it, the Intelligence row surfaces the top anomalies (20 critical), the forecast peak prediction, a what-if causal answer, and the discovered physics law — y = a·t² + b·t + c at RMSE 126.720 — all live and grounded in artifacts, not LLM guesses.
"What This Means" reads like a research paragraph because it is one. Each claim is tagged with a seed:* citation — seed:diurnal_cycle, seed:mutual_information_kg, seed:causal_chain, seed:physics_match, seed:wavelet_morlet, seed:sindy — that links to the exact knowledge-bank entry backing it. The panel below lists all 12 entries Aurora actually retrieved, each with its real source: Newton (1701), French AP (1971), Pierson & Moskowitz (1964), NIST, NOAA NDBC, Torrence & Compo (1998). No invented citations. No invented numbers. No invented papers.
Findings as structured atoms. Each card is a typed object — method, severity (crit / high / med), threshold, evidence, citation — not a paragraph of LLM prose. +448.6σ with p < 0E+0 isn't a vibes-level "anomaly"; it's a Hampel z-score on row 6715 you can re-run.
|
19 advanced methods, honestly disclosed. HMM (3 latent regimes), mutual info (13-feature matrix), Granger (5 causal pairs), Wavelet Morlet CWT, Gaussian process, persistent topology, multivariate outliers (325 of 5000 flagged by ≥2 detectors). Methods that couldn't run are explicitly skipped with the reason — no_time_axis, negative_values_present, cross_sectional_no_time_axis. No silent failure.
|
Spacetime worldlines. Eight entity worldlines (Wind, Atmospheric pressure, Solar input, Humidity, Air temperature, Sea-surface temp, Wave height, Precipitation) plotted against time. The vertical "NOW" line separates past from the forecast cone. The orange marker is a predicted threshold cross at +2.0h — fired by Aurora, not a human. |
Phase Space. The system reduced to a 2D state projection. The cyan NOW marker is current position; the trail behind it is the trajectory it took to get there. Pressure ↔ solar, pressure ↔ humidity, pressure ↔ air_temp resonances (35.71m, coh 1.0) drive the geometry. |
0 fabricated. 12 cited knowledge entries. Three methods deferred with reason.
---
## Verifying the install
After `python studio_api.py` starts, you should see something like:
```
[aurora] frontend = /path/to/aurora/frontend
* Running on http://127.0.0.1:8000
```
Open the URL. The Studio greets you with a "drop a dataset" zone. Use any of:
```bash
data/fixtures/factory_bearing_demo.csv # ships with the repo — bearing failure
data/fixtures/climate_buoy_demo.csv # ships with the repo — NOAA-style buoy data
data/fixtures/patient_cohort_demo.csv # ships with the repo — clinical cohort
```
Drop one, click **AUTO** + **▶ RUN ANALYSIS**. In ~10-20 seconds you'll see:
- The six analytical lenses populate (Overview, Anomalies, Regimes, Motifs, Forecast, Physics)
- The Findings cards list every cited claim
- The `0 fabricated` chip (always — that's Aurora's contract)
If that worked, you're production-ready.
### Optional: enhanced frontend build (v0.10 Phase 2)
**You do NOT need this to run Aurora.** `python studio_api.py` is the only command required. This section is for developers who want type safety + a Vite hot-reload dev loop for future panel work.
The Phase 2 bundle adds a Vite + TypeScript layer with typed API helpers, hardened Server-Sent Events, and a Nanostores-backed state model. It runs **side-by-side** with the existing frontend and is fully non-breaking — the visible Studio looks identical with or without it.
Requirements: Node 18+ and npm.
**Activation is a one-time build:**
```bash
cd frontend
npm install # installs Vite, TypeScript, @types/node, Nanostores
npm run build # produces frontend/dist/aurora.js + aurora.css
cd ..
```
That's it. The next time anyone loads the Studio (whether Flask was already running or not), the bundle activates automatically — Flask's static route serves the new files, and `index.html` HEAD-probes for them on load. Open DevTools console after a page reload and you'll see `⚡ Aurora 0.10.0+phase2 loaded` plus `window.Aurora.api / .store / .stream` available for custom panel work.
**To turn it back off**: `rm -rf frontend/dist/` (or delete the folder). The page reverts to pure-legacy mode with no console warnings.
**For active TypeScript development with hot-reload** (two terminals):
```bash
# Terminal 1 — Flask backend on :8000
python studio_api.py
# Terminal 2 — Vite dev server on :5173 with HMR + Flask proxy
cd frontend && npm run dev
```
Open