Pre-alpha · foundation hardening

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. Optional services connecting multiple sites are a later direction.

Source available · pre-alpha

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.

Post-1.0 direction

Local operation. A future view across locations.

Start with a gateway and browser on one PC, or a local server serving clients across the plant. The future direction is independent gateways at multiple locations, with optional central services for authorized remote dashboards, selected history, analytics, reporting, and business logic across sites. Central services could be self-hosted or managed in the cloud.

Local HMI operation, alarms, and operational logic must continue without internet; PLCs retain machine control. Cloud connectivity will be opt-in. Data forwarding, multi-site dashboards, and fleet management are not available today and are outside the initial beta and v1.0 scope. Read the future deployment direction →

Planned for v1

Build visually. Bring your favorite coding agent.

Author your SCADA/HMI in the Designer, or use an external coding agent to help create screens, bindings, configuration, and Python scripts. The goal is one open project you can edit from either workflow, then preview and review in the browser Designer before publishing.

Your HMI application will have its own local project folder, ready for an optional Git repository. Use GitHub or another Git host to share branches, review changes as a team, and validate in CI. Coding agents and the visual Designer will work with the same documented source, validation tools, and preview. Pushing or merging source will not publish to a running gateway; deployment remains a separate authorized step.

No required AI provider or AI subscription to use the Designer. Portable project files, terminal tools, team repository workflows, and conflict-aware editing are planned; the supported team and agent workflows are not available yet. Read the authoring plan → See the team workflow →

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 established choices. OpenWebHMI aims to offer small and mid-size plants an open-source, self-hosted alternative with open project authoring.

Engineers should be able to choose visual editing, terminal tools, or help from their own coding agent, while keeping control of what is published.

v1.0 scope

Engineering targets, not certified capacity. Workload, hardware, history recording rate and client subscriptions determine the supported deployment.

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* Browser-first React/TypeScript; optional Tauri
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

Earlier phase milestones established the source foundation. The current hardening and architecture work still needs validation before a public beta.

  1. Source foundation Gateway and browser runtime, form-based Designer, history, alarms, authentication, scripting, and a simulator-backed Rockwell vertical slice.
  2. Current work Security and command correctness, driver integration, reusable engine boundaries, browser delivery, safe project publishing, and durable history. Capacity, recovery, platform, and hardware evidence remain pending.
  3. Beta planning horizon As of October 2026, allow at least another year before a public beta: October 2027 or later, subject to scope and validation. This is a planning horizon, not an announced release date. Private demos and feedback can happen earlier; production 1.0 has separate validation gates.
  4. After v1.0 Optional manufacturing modules and edge + cloud services for multiple locations are separate future tracks with no committed delivery dates.

Detailed roadmap ↗

What we explicitly don't try to be

Help shape OpenWebHMI

Review the plan and progress, then share what you like, what is missing, and what you would expect from an HMI/SCADA platform. Describe your use case or suggest a feature through GitHub issues. Feedback is welcome while the product is still taking shape.

Review the roadmap ↗ · See development progress ↗