# Entropyk Web UI Visual canvas builder for Entropyk thermodynamic cycles. The UI emits the same `ScenarioConfig` JSON as the CLI (`crates/cli/src/config.rs`). Physics always runs through `entropyk_cli::run::simulate_from_json` via the Axum `ui-server`. ## Prerequisites - Node.js 18+ and npm - The Rust API server running (see below) ## Setup ### 1. Start the Rust API server From the project root: ```bash cargo run -p entropyk-demo --bin ui-server # → http://localhost:3030 ``` Endpoints: - `GET /api/health` - `GET /api/components` - `POST /api/simulate` - `GET /api/mollier?fluid=R134a` ### 2. Start the Next.js dev server ```bash cd apps/web npm install npm run dev # → http://localhost:3000 ``` By default the frontend proxies `/api/entropyk/*` to `http://localhost:3030/api/*` (see `next.config.mjs`). To point at a different API, set: ```bash ENTROPYK_API_URL=http://my-host:3030 npm run dev ``` ## Usage 1. Drag components from the left palette onto the canvas. 2. Connect ports by dragging from one handle to another. 3. Select a node to edit its parameters in the right panel. 4. Pick the fluid and backend in the top bar. 5. Click **Solve cycle** — the result panel shows COP, edge states and a P-h diagram. 6. **Load** drops in a CLI example from the picker; **Import JSON** loads any CLI config. 7. **Multi-run** sweeps parameters (fluid, UA, …) and solves cases in parallel. ## Architecture ``` Browser (Next.js) Rust API (Axum ui-server :3030) React Flow canvas → POST /api/simulate Zustand store → simulate_from_json() (CLI engine) Recharts P-h diagram ← SimulationResult JSON ``` Anything buildable in the UI can also be run with: ```bash cargo run -p entropyk-cli -- run path/to/config.json ``` ## Deprecated surfaces - `ui/` at the repo root — legacy static HTML; calls removed `/api/calculate`. Do not use. - `tools/circuit-builder-ui` — alternate HTML builder; prefer `apps/web`.