Skip to content
PLATFORM

Every layer,in one product.

Acquisition, historian, HMI, twin, process automation and policy are not six integrations here — they are one system with one data model. Which is why a procedure can be grounded in the twin, proven against it, and executed through the same tag it was written for.

An orbitable 3D synoptic of the Provence plant rendered in Djinious, with equipment models on the ground plane.
The same screen record, rendered as an orbitable 3D scene.Runner · 3D synoptic
FIELD

Real drivers, and an honest badge when they are not

Southbound acquisition runs on genuine protocol stacks — a node-opcua client, a Modbus TCP master and an MQTT Sparkplug B subscriber. Flip an asset to LIVE and its value comes from a device read or it reports no data. There is no silent fall-back to the model.

  • OPC-UA client with subscriptions, auto-reconnect and per-tag NodeId mapping
  • Modbus TCP (32-bit float) and MQTT Sparkplug B with a real broker
  • Northbound OPC-UA server: 392 AnalogItems with engineering units and EU range, historical access served from TimescaleDB, and Alarms & Conditions with acknowledgement round-trip
  • Governed writes: an external OPC-UA write is issued as a command and passes the same interlocks and read-back as an operator's
The Djinious connectivity page showing southbound OPC-UA, Modbus TCP and MQTT Sparkplug connections with their state, throughput and driver, alongside the northbound OPC-UA server card.
Southbound and northbound on one page, each connection naming the library actually behind it.
TWIN

A twin with bindings, not a diagram

Site, areas and assets carry an ontology type, aspects, a criticality and a safety classification. Twin nodes bind to the specific tags that express their state, which is what lets a procedure be grounded rather than guessed.

  • Ontology-typed assets with explicit tag bindings and binding confidence
  • Per-asset data-source mode: simulated model or real device, switchable per asset or plant-wide
  • Behavioural (F1) physics per equipment family, shared by the live simulator and the proving twin
  • Every tag carries a quantity kind, unit and limits, so an alarm limit is dimension-checked at authoring time
The Djinious digital twin page showing the plant hierarchy graph with sites, areas and bound assets.
The twin is the thing the copilot grounds against, and the thing the dry-run runs on.
HMI

Draw it once. The Runner shows exactly that.

The Builder is a palette and a canvas with a tag-binding inspector. The Runner renders the same elements with the same symbol components, so what an engineer draws is what an operator sees — there is no second drawing set to drift.

  • Equipment symbols per family — turbine, inverter, battery, transformer, pump, tank, valve, machine — bound to live tags
  • Process pipes and power feeders animate from the tag they carry; ISA-101 keeps them neutral until something is wrong
  • 2D synoptics and orbitable 3D scenes from the same screen record
  • Imported CAD: OBJ, STL, glTF and STEP/IGES tessellated in a worker, normalised to glTF-binary
The Djinious screen builder: a symbol palette, a drag canvas with a plant mimic, and a tag-binding inspector.
The Builder canvas. Same symbol components, same live values as the Runner — WYSIWYG in the literal sense.
PROCESS

Procedures are artefacts, not scripts

A process is authored as intent, compiled to BPMN, statically validated, published, and executed by a token runtime. It has a version, a validation report, an authority class and a generation record naming who or what wrote it.

  • PIR → BPMN with a validation report listing required capabilities and blast radius
  • Capability steps, decisions, human tasks and notifications — readable by the people who sign it off
  • Token runtime with activity history, task assignments and incidents
  • A step does not complete until its command's read-back settles; a mismatch is a step failure
The Djinious process list showing authored procedures with their version, status, authorship mode and authority class.
Published procedures with their version and validation state. Authorship mode records whether a human or an agent wrote it.
REALITY

The plant as it was actually built

Import a LiDAR or photogrammetry survey and drop equipment tags onto the point cloud. Useful when the as-built and the drawing disagree — which, on a plant of any age, they do.

  • PLY, PCD, XYZ and PTS point clouds rendered in the browser
  • Colour by scan or by height; click to place an equipment annotation
  • Point data stored out-of-line so the list view stays fast
The Djinious reality-capture page rendering an imported point cloud of a process plant with equipment annotations.
An imported survey with equipment tags dropped onto it. The bundled demo scan is labelled as synthetic.
CONFIG

Configuration you can sign, export and roll back

Everything that makes this deployment what it is — assets, tags, screens, alarm definitions, connections, processes — snapshots into a signed project with a deployment mode. Export it, import it elsewhere, activate it to restore.

  • Signed snapshots of every configuration table, versioned
  • Deployment mode: production, simulation or mixed
  • Export to JSON, import into another instance, activate to restore and reload the runtime
The Djinious projects page listing signed configuration snapshots with their version, deployment mode and record counts.
Configuration as a versioned, signed artefact rather than a database nobody dares touch.
REGISTER

Every asset, every plant, one list

Four plants in one deployment means one asset register, one tag namespace and one alarm list — not four consoles that happen to share a login.

The Djinious asset register listing every asset across all four plants with its type, criticality, data-source mode and operational status.
One asset register across every plant, with each asset's data-source mode on the row.
SPECIFICATION

What it actually is

Acquisition & storage

Southbound protocols
OPC-UA · Modbus TCP · MQTT Sparkplug B
Acquisition rate
1 Hz tick, per-connection scan rate
Historian
TimescaleDB (PostgreSQL 16), continuous aggregates
Northbound
OPC-UA server — AnalogItems, HA, Alarms & Conditions, methods, audit events

Operations

HMI
ISA-101 high-performance, 2D and 3D, authored in-product
Alarms
ISA-18.2 — priority, shelve, suppress, out-of-service, second-person ack
Commands
Interlocks, policy gate, independent read-back echo
Languages
English, French, German, Italian, Romanian

Automation & governance

Process model
PIR → BPMN 2.0, statically validated, token runtime
Simulation
Isolated twin, virtual clock, seeded RNG, intercepted commands
Authority
C0–C6 classes, granted per agent and scope with an expiry
Autonomy
L0 advisory → L4 autonomous with review

Platform

Runtime
Bun · React 19 · TypeScript
Data
SurrealDB 2.x (graph, vectors, full-text) + TimescaleDB
Auth
JWT (HMAC-SHA256) + Argon2id, server-side role gates
Agent access
MCP server + REST, API-key scoped
ROADMAP

Not built yet

So you can plan around it rather than discover it in a workshop:

  • OPC-UA server redundancy (hot-standby pairs) and reverse connect
  • Per-tag register mapping for Modbus and per-metric mapping for Sparkplug — OPC-UA per-tag mapping is done
  • Hot-standby session transfer for a redundant OPC-UA client connection
  • Unified Namespace publishing to a live broker — the current view is a projection, and is labelled as one

See it against your tags.

Bring a tag list and one procedure you run today. We will wire it up and dry-run it with you on the call.

DjiniousControl Center

Supervise the plant, author the procedure, prove it on an isolated twin, execute under policy. One governed loop.

  1. Observe
  2. Author
  3. Prove
  4. Act

Every screenshot on this site is a capture of the running platform.