Real-time core

Visual node editor & real-time engine

The node engine is the beating heart of Melanite: a visual graph of typed nodes that runs as a hard real-time control loop on the device itself. You wire it in the browser; it executes the moment you connect a wire. And it measures its own determinism, continuously, so you never have to take our word for it.

Status Hardware-verified

The Melanite node editor running on a device, showing a photovoltaic logging graph: three string inputs plus grid, battery and export values wired into two data-logger nodes.
The editor on a running device. Palette on the left, a live value on every port, RUN bottom-left — there is no compile step between this and the machine.

In one line

The node engine runs a visual control program as a deterministic real-time loop directly on the device. Hardware-verified under a full production-motion stress run at a 1 ms cycle: delivered jitter max 0.994 µs (p99.9 0.256 µs), worst-case wake latency under 20 µs, execution max 37.8 µs, zero GC pauses and zero incomplete fieldbus frames — the 1 ms deadline met with roughly 10× margin. The cycle is configurable down to 250 µs. A second, parallel ~60 Hz loop drives LED and visual output, so lighting never steals time from control. 2-DOF PID, cascade control, math, logic and reusable function blocks are first-class nodes, wired on-device in the browser and applied live — no IDE, no compile step, no deployment.

Capabilities

Closed-loop control

2-DOF PID with anti-windup and bumpless manual/auto, cascade loops, hysteresis, setpoint ramp/soak programs, PWM / time-proportional output, PT1 filter, differentiator, and a unit-delay (z⁻¹) node for closing feedback loops in-graph.

Every category, one palette

No add-on packs: Math, Logic, Control, Time, I/O, Variables, Views, Vision, Canvas, Spatial, Motion, Devices, Smart-home, Audio, Text, Diagnostics, Logging, HMI, plotting, inputs and reusable sub-networks — all in the box.

Real-time determinism

Dedicated RT process on a PREEMPT_RT kernel with CPU partitioning baked into the image and a native driver that takes the fieldbus NIC out of the Linux network stack entirely. Verified at 1 ms: sub-µs delivered jitter, <20 µs worst-case wake.

It benchmarks itself

Allocation-free latency histograms (p50/p90/p99/p99.9/max), two-point jitter, a stall-attribution journal and allocation tripwires ship in the product — live on every device, not a one-time lab result.

Dual-loop architecture

A hard real-time loop runs control at the set cycle; a separate ~60 Hz loop drives LED / visual output — both independently configurable, so rendering never disturbs control timing.

Live authoring

Edit the running graph in-browser — slider and parameter changes apply to the live process with no recompile or download. Per-network compile isolation means one broken network can't take the others down.

Function blocks & typed ports

Encapsulate a subgraph as a reusable, nestable sub-network. A two-family port type system (scalar values vs. reference values like views and images) rejects nonsensical wires at connect time, at zero real-time cost.

Undo, everywhere

Editor-wide history with Ctrl+Z / Ctrl+Shift+Z — and an entire AI-assistant turn collapses into a single undo step.

Worked examples

Lab-reactor temperature control (HiClave)

Hold a reactor at setpoint across three modes while protecting the heating jacket from overshoot.

How

A ΔT-clamped cascade — an outer PID on product temperature driving the setpoint of an inner jacket PID — runs as a 146-node graph reading EtherCAT analog inputs and driving an SSR via PWM into a Beckhoff EL2008, with an 8-segment setpoint program and a status light. Built on-device, hardware-verified.

Servo motion at 1 kHz, measured

Run coordinated servo motion and prove the loop never missed a beat.

How

A jerk-limited profiler drives CiA-402 servos over EtherCAT on the real-time cycle while the built-in metrics record wake latency, execution time, deadline jitter and fieldbus frame errors. A ~15-minute full-motion stress run came back with sub-µs delivered jitter and zero incomplete frames — from the device's own scorecard, not a separate test rig.

Why Melanite

CODESYS gives you a real-time engine but locks authoring behind a desktop IDE and a download cycle. Node-RED is browser-native but runs on an event loop, not a deterministic real-time cycle. Melanite is both: hardware-verified real-time control authored live in the browser — and it publishes its measured jitter percentiles, with the conditions, so you can check the claim on your own hardware.

FAQ

How fast and how deterministic is the real-time loop?

The published, hardware-verified figure is a 1 ms cycle on the Raspberry Pi CM5 under a full production-motion load: delivered jitter max 0.994 µs (p99.9 0.256 µs), worst-case wake latency under 20 µs, execution max 37.8 µs, zero GC pauses and zero incomplete EtherCAT frames. That is the 1 ms deadline met with about 10× margin. The cycle time is configurable down to 250 µs, but we only publish numbers we have measured at rate.

Does lighting or visualization slow down control?

No. Control runs in the hard real-time loop at your set cycle; LED and visual output run in a separate ~60 Hz loop. The two are parallel and independently configurable, so rendering never steals time from control.

Do I need to compile or deploy my logic?

No. You wire the graph in the browser and changes apply to the running process immediately. There is no compile step, no artifact to build, and no deployment.

Can I verify the timing claims myself?

Yes — that is the point. Every device ships the latency histograms, two-point jitter measurement, execution histogram and fieldbus error counters used to produce our published numbers, on a live scorecard page. The standard Linux `cyclictest` tool is in the image too, so you can cross-check against an independent reference.

What control blocks are included?

2-DOF PID with anti-windup, cascade control, hysteresis, setpoint ramp/soak programs, PWM / time-proportional output, a PT1 filter, a differentiator, IEC timers (TON/TOF/TP), full math nodes, boolean logic, a unit-delay for feedback loops, and rotary-encoder input — all standard, no add-on packs required.

Free, full-featured

Every feature, free for personal use.

One binary runs every tier — the licence only toggles entitlements, never the feature set.