A research-grade ML platform for time-series & spatio-temporal forecasting — built around an editorial-Swiss BI canvas, anchored by an AI agent that proposes panels, drafts reports, and lets you sketch a chart and watch it materialise.
Think Power BI for ML researchers, but the agent speaks from where you look, not from a corner sidebar. Six "fused-mode" principles (F1 spatial anchoring · F2 predictive prefetch · F3 bidirectional spec sync · F4 visible reasoning · F5 reversible by default · F6 shared cursor) shape every interaction.
Four entry cards · agent chat · keyboard shortcuts. 20 seconds to a useful next click.
Agent has drafted a morning note. Three columns surface what needs your eyes, what's running, and what to pick back up.
PatchTST on the Aare river · 72-hour discharge · backtest MAE 8.42 m³/s · </> spec reveals the JSON the agent edits.
LIULIAN is an intentional multi-repo split. Each repo owns one technology stack and one concern — no monolith.
| Repo | Stack | What it owns |
|---|---|---|
| liulian-web ★ | Next.js · TypeScript | the BI canvas · web demo · redesign rounds |
| liulian-python ★ | Python · NumPy · PyTorch | ML core: datasets · models · runtime · experiments |
| liulian-docs ★ | mkdocs-material | federation hub: ADRs · user stories · agile templates · platform blueprint |
| liulian-api ★ | Python · FastAPI | REST surface over the ML core |
| liulian-agent ★ | Python · FastAPI · SSE | LLM gateway + BI agent · tool registry |
| liulian-mobile ★ | Swift · Kotlin · ArkTS | native iOS / Android / HarmonyOS apps |
| liulian-design-system | TS / JS | design tokens · reference designs · UI audit checklist |
| liulian-dev-env | shell · docker · slurm | local 3-tier stack · UBELIX cluster setup |
| liulian-ops | Python · click · helm | deploy CLI · runbooks · cost ledger |
| liulian-ingest | Python · FastAPI | scheduled crawlers · manifests |
★ = recommended pinned items (the 6 most useful for a first visitor).
| If you are a … | Open … |
|---|---|
| First-time visitor | the single-file web demo — no install, just download + open |
| ML researcher | the Python core — adapter contract + manifest spec + datasets catalog |
| Product / advisor reviewer | the user stories — six codenamed flows (Doorway · Annotated Drop · First Light · Pencil · Graft · Easel), each in three modes |
| Infra / DevOps | liulian-dev-env (local stack) and liulian-ops (deploy + cost ledger) |
| Designer / brand contributor | liulian-design-system (tokens · 12-platform reference designs · UI audit) |
- Fonts: Fraunces (display, with WONK axis) · Switzer (body) · JetBrains Mono (numbers · code)
- Palette: warm bone canvas
#FBFBFA· UniBe red#E20613as the single accent · 1 px hairlines · max 2 reds per viewport - Charts: ECharts as the engine · Vega-Lite grammar for portable specs · custom Q05-Q95 fan + multi-model overlay + correlation matrix + severity ribbon
- Editor: draw.io embedded as the vector canvas for chart annotation
- Mode-C "fused" interactions: the six principles above (F1–F6) — distilled in
liulian-docs/docs/user-stories/index.md
The brand anchor is UniBe red — the official red of the University of Bern, where the project was born. ADR 0004 in liulian-docs/docs/strategy/adr/ tells the story.
| Surface | State |
|---|---|
| Web demo (this profile's screenshots) | ✅ shipping |
/forecast canvas in Next.js |
✅ R8 design lock implemented · real swiss-river-1990 data |
| Federation CI | ✅ green across all 6 CI-enabled repos · see ci-skips ledger for IOUs |
| Mobile parity | 🚧 iOS Swift snapshots in place · Android / HarmonyOS WIP |
| Save & share dashboards | 🚧 spec'd (R8 §11) · endpoint stub |
| Drawio twin-track editor | 🚧 spec'd (R7) · iframe protocol drafted |
All public repos are MIT licensed unless otherwise stated.
Built by Linlin Jia at the University of Bern, with Claude as design + coding partner.


