Pre-alpha · Phase 4 in progress

Open-source SCADA/HMI for real machines.

Design operator views, run them in a browser, and connect plant-floor data through a Rust gateway. OpenWebHMI is a pre-alpha platform built in public for small and mid-size industrial systems.

AGPL core · MPL protocol packages · no JVM · no per-server fees

Product path

A working SCADA/HMI foundation comes first. The reference demo and manufacturing features build on that foundation without expanding the v1.0 promise.

Available

SCADA/HMI foundation

Source builds include the Rust gateway, browser runtime, form-based designer, tag flow, history, alarms, authentication, scripting, and a Rockwell-protocol simulator vertical slice.

In development

Default reference demo

One fictional manufacturing HMI will ship with deterministic offline simulation and an explicit real Rockwell PLC profile using the same screens and logical tags. It will never silently fall back between profiles.

Direction

Optional manufacturing modules

Production, downtime, OEE, reporting, and equipment modules are a post-1.0 direction—not shipped v1.0 features or an MES promise.

Why another platform?

Industrial automation has been locked behind closed source tooling and expensive gateway licensing for decades. Tools like Inductive Automation Ignition and Rockwell FactoryTalk Optix are excellent, but there is no equivalent open-source platform a small or mid-size plant could actually run. OpenWebHMI's goal is to change that.

AI-assisted development makes the timeline plausible in a way it wasn't five years ago.

v1.0 scope

Concrete bounds. If anything in the project implies bigger numbers, it's wrong and gets fixed.

Stack at a glance

Layer Ignition Optix OpenWebHMI
Core / runtime Java 17 / JVM C++/Qt native platform + C#/.NET NetLogic* Rust
Designer Java/Swing C++/Qt + web technology; C#/.NET authoring* Tauri + React/TypeScript
Web HMI Perspective — React/TypeScript over Java Web Presentation Engine — HTML5/browser React + TypeScript
Scripting Jython 2.7.4 — Python 2.7 language level C#/.NET NetLogic CPython 3.11+ in worker subprocesses
Open source? AGPL core / MPL protocols

*Optix is closed source. C++/Qt is supported by Rockwell's native-runtime documentation and current ASEM/Rockwell engineering roles, while C#/.NET NetLogic is publicly documented. The exact internal boundary between its designer and runtime is not public.

Why this combination matters

The advantage is not that Java or C# are incapable. It is that each OpenWebHMI language has one clear job, and the complete platform remains inspectable and operator-owned.

Full reasoning: docs/stack-rationale.md ↗

v1.x feature highlights

Where we are

  1. ✓ Phase 0 Foundations — gateway boots, simulated tags flow to a browser.
  2. ✓ Phase 1 Vertical slice — Rockwell driver wired end-to-end, validated against a simulator. Released as v0.1.0.
  3. ✓ Phase 2 Designer MVP — form-based authoring, an initial component set, hot reload.
  4. ✓ Phase 3 Core SCADA — historian, alarms, auth, trends, Python scripting host, Monaco script editor.
  5. In progress Phase 4 — five driver implementations are being hardened and integrated for the v1.0 envelope. Current closeout work includes CI hygiene, release packaging, website/docs refresh, and the physical Rockwell PLC validation gate before 1.0. Recent v1.x additions include audit-log Part 11 framing, themes, widget transfer, historian retention planning, and Raspberry Pi deployment notes.

Detailed roadmap ↗

What we explicitly don't try to be

Want to follow along?

The repo is the source of truth — every architectural decision, task brief, code review, and validation run is in markdown alongside the code.