Arcogine is a deterministic simulation engine for factory systems, economic dynamics, and agent-driven decision making.
Arcogine is a simulation-first platform where you experiment with how pricing, capacity, and automated agents interact in a factory environment. Three systems feed back into each other:
You set a price
│
▼
Demand responds (lower price → more orders)
│
▼
Factory produces (machines process jobs through routing steps)
│
▼
KPIs update (throughput, lead time, backlog, revenue)
│
▼
You (or the agent) (observe KPIs, decide what to change)
make decisions
│
└───────────────► loop repeats
The simulation is fully deterministic: same inputs produce identical outputs every time. This makes it useful for comparing strategies, testing hypotheses, and understanding cause-and-effect in complex operational systems.
New to Arcogine? Read Concepts to understand what you're looking at before running your first session.
git clone https://github.com/alaiba/arcogine.git
cd arcogineOpen the folder in VS Code with the Dev Containers extension. The container automatically installs Java 25, Gradle, and UI dependencies.
After the container is ready, start the UI and API in two terminals:
# Terminal 1: UI dev server
cd ui && npm run dev
# Terminal 2: Build and run API server
cd java && ./gradlew :sim-cli:bootJar --no-daemon
java -jar sim-cli/build/libs/arcogine.jar serve --addr 0.0.0.0:3000Then open http://127.0.0.1:5173.
- Docker Compose:
cp .env.example .env && docker compose up --build
You can go from clone to meaningful results in under five minutes:
- Load a scenario — the welcome overlay offers three built-in options.
- Run the simulation — click Run and watch KPIs update in real time.
- Try an intervention — change the price or toggle a machine offline.
- Save a baseline — snapshot the current state before a big change.
- Compare — make the change, then compare against your baseline.
- Toggle the agent — enable the Sales Agent and see how it manages pricing.
| Scenario | Challenge | What you'll learn |
|---|---|---|
| Basic | None — balanced factory | How the controls work and what the KPIs mean |
| Overload | Demand exceeds capacity | How to stabilize backlog and lead times with pricing |
| Capacity Expansion | Same pressure, more machines | Whether structural upgrades beat tactical tuning |
Run a scenario without the UI:
java -jar java/sim-cli/build/libs/arcogine.jar run examples/basic_scenario.toml| Layer | Technology |
|---|---|
| Simulation engine | Java 25 (records, sealed interfaces, pattern matching) |
| HTTP API | Spring Boot 3.4 + Spring MVC |
| CLI | Picocli |
| Build | Gradle 8 (Kotlin DSL) |
| Frontend | React 19 + TypeScript + Vite |
| Container | Eclipse Temurin 25 JRE |
| Document | What it covers |
|---|---|
| Concepts | How the simulation works, KPIs, agents, scenarios |
| API Reference | Every HTTP endpoint with curl examples |
| Architecture | Design philosophy, module structure, determinism contract |
| Full docs index | Everything else: testing, standards, vision, security |
make # show all available targets
make quality # fast gates: compile, tests, coverage, lint, build
make quality-full # everything: quality + Playwright E2E + Docker smoke + security scansSee TESTING.md for the full test category reference.
See CONTRIBUTING.md for setup paths, development workflow, code style, and testing conventions.
Apache-2.0 — see LICENSE.