m-labs / artiq

A leading-edge control system for quantum information experiments
https://m-labs.hk/artiq
GNU Lesser General Public License v3.0
437 stars 201 forks source link

Web UI #2585

Open jordens opened 1 month ago

jordens commented 1 month ago

ARTIQ Feature: Web interface

Problem this request addresses

The ARTIQ GUI components (dashboard and browser) use Qt. The interface employs a (dated) MDI style UI design. ARTIQ GUI applets run into process separation imposed by e.g. Wayland. While the GUI operation is mostly decoupled from the (headless) components they talk to (master, moninj proxy, etc), their codebases are still integrated. The installation of ARTIQ with support for just the GUI components is possible and supported but it still runs into the same installation woes and hurdles that the installation of the main ARTIQ components hit. While the ARTIQ installation experience has changed and arguably improved over the years, we're considering adding a different user interface to ARTIQ.

Describe the solution you'd like

A Web interface that offers comparable functionality to the ARTIQ Qt applications.

A web application allows controlling an ARTIQ system from any computer with zero download and installation hurdles. There may be issues with browser compatibility though. Another issue may be design differences for touch screens or keyboard/mouse. A web UI can hopefully integrate better with network security requirements imposed by IT departments. It may also play nicer with containerized (headless) ARTIQ installations which then don't need graphical access and UI libraries/desktop environments. There should be no functional conflict between the web application and the Qt dashboard. The scope of the MVP will be less than what the Qt apps can currently do.

A draft prioritization of features (along the lines of the docks):

Additional context

dhslichter commented 1 month ago

I like the idea of a lighter-weight, more portable GUI option in a browser window, which would be nice for various instances. One of the big challenges always with the ARTIQ GUI is managing the inevitable clutter from all of these features. Is there a vision around how clutter reduction/organization would be done? For example, would there be a main page from which e.g. new browser tabs are opened for scheduler, log, experiments, dataset viewer/editor, etc? Are you envisioning that all these features would be available (in some appropriately switchable way) within a single browser tab?

jordens commented 1 month ago

We'll see. This is just a heads up that we might start working on this.