remoteMonitoring OOT Development blog (GSoC 2026)

Weekly blog on development

View the Project on GitHub ZiadFahmyZewailCity/blog-gr4.0-remotePlotting

2 June 2026

POC Complete!

by Ziad Fahmi

Hello everyone! Happy to say that the proof of concept for the OOT module is complete.

First, I’ll give a general overview of how the OOT module is intended to work, then get into what the POC specifically achieved.


How the OOT Module Works — The Concept

What lives in the browser

The browser-based dashboard uses imGUI, written in C++ and compiled to WebAssembly (WASM) using Emscripten. It’s configured via a .json config file that specifies each panel, the elements within each panel (plots, sliders, text labels, etc.), and an ID for the data source of each element that will have data pushed to it.

What lives in the GR4.0 Flowgraph

Blocks for each kind of plot or widget can be placed directly in the GR4 flowgraph and connected to the data sources or variables you want to visualize or control — very similar to how the old gr-bokehGUI worked.

Hopfully ill be able to handle all networking in the background, so users won’t need a separate networking block cluttering their flowgraph.

What happens when you run the flowgraph

  1. An HTTP server serves the pre-compiled WASM dashboard to the browser.
  2. The config file is sent to the dashboard to set its layout.
  3. The flowgraph begins pushing data and receiving widget commands, routed via the data source IDs defined in the config.
  4. Profit!

What the POC Achieved

The POC successfully demonstrates bi-directional communication between a GR4 flowgraph and the configurable dashboard: plotting live signal data coming from the flowgraph, and varying the frequency of a sine wave in real time via a slider widget in the browser.

The Flowgraph

SignalGenerator → SimCompute → Bridge

Differences from the final architecture

The POC intentionally simplifies a few things for speed:


Successfully achieving bi-directional communication between a live GR4 flowgraph and the configurable browser dashboard confirms that the general concept for the OOT module is sound.

Here is a video showing the POC working

tags: