Skip to content

Work

Live demos, running in your browser

These are not screenshots and not videos. Each demo below is the actual widget source that would run on a station, loaded by a minimal AMD loader, talking to a simulated station that resolves ORDs and pushes changing values. Interact with them.

  • Unmodified widget source
  • Simulated ORD resolution
  • Live subscriptions
  • Writable points

What is real and what is not. The widget code, the config files, the ORD strings and the rendering are exactly what a station would run. The station is a simulator: point values are generated by a small physical model in your browser rather than read from real plant, because publishing a live connection to somebody's building would be a poor idea. Nothing here is a client site.

Plant dashboard — AHU-01

Supply and return air temperature, fan power, zone CO₂, a fan-speed dial, a demand chart, a writable zone set point, plant commands and the alarm queue. Twelve tiles, each bound to its own station ORD — and the values are moving because a simulated station is pushing them. Move the set point and the plant responds.

Simulated station · live Open full screen

Building summary

The same discipline at building level, light theme: KPI tiles for demand, chilled water and LTHW, plant monitoring, and an equipment table carrying fault and warning states. Toggle the theme — every component re-points from the token layer without one of them being touched.

Simulated station · live Open full screen

Navigation rail

Site, building and floor navigation. Collapse it and it becomes an icon rail with flyout menus, so a tight PX viewport or a phone still gives the graphics the full width. Click through the sections.

Simulated station · live Open full screen

Under the hood

How the demos work

Worth a paragraph, because the mechanism is the point: if the widget needed rewriting to run here, running here would prove nothing.

The same source

Niagara's HTML5 profile serves a PX view by creating a DOM element per WebWidget and handing it to the AMD module named by the widget's js ORD. The demo does exactly that, with the widget's rc/*.js and rc/*.css untouched.

A simulated station

A stand-in for baja resolves station:|slot:/… ORDs against an in-browser model of an air handling unit — supply and return temperature, fan speed, valve position, zone CO₂ — integrated on a tick, so values move the way plant moves rather than jittering randomly.

Real subscriptions

The simulator implements the subscriber contract the widgets use, so a changing point pushes into the widget through the same path a station would use. Writes work too: move a set point and the model responds.

Stills

The same widgets, captured

For anyone who would rather not run JavaScript, and for print.

Building summary dashboard in a dark theme with a floor selector open on the left and full ORD paths displayed beneath each KPI tile.
Commissioning mode. Full ORD paths surfaced under each tile, so the engineer commissioning the job can see exactly what each value is bound to.
Building summary dashboard with an information callout tooltip open over a KPI tile.
Callouts. Contextual detail without leaving the view.
The AHU dashboard rendered on a phone, with cards stacked vertically and navigation collapsed to an icon rail.
Same widgets, phone. One responsive component set rather than a separate mobile view to maintain.
Dark-themed Niagara AHU dashboard showing supply and return air temperature, fan power, zone CO2, a fan-speed dial, a 12-hour demand chart, a set point slider, plant command toggles and an active alarm list.
Plant dashboard. The desktop view at full width.

Next step

Tell us the version, the hardware, and what it has to do.

You will get a written scope and a fixed price against it. If the honest answer is that you do not need us, you will get that instead.