9-13 July 2018
Sofia, Bulgaria
Europe/Sofia timezone

Beautiful, simple and remote ROOT graphics and GUI

11 Jul 2018, 11:30
Hall 3 (National Palace of Culture)

Hall 3

National Palace of Culture

presentation Track 5 – Software development T5 - Software development


Serguei Linev (GSI - Helmholtzzentrum fur Schwerionenforschung GmbH (DE))


For two decades, ROOT brought its own window system abstraction (for X11, GL, Cocoa, and Windows) together with its own GUI library. X11 is nearing the end of its lifetime; new windowing systems shine with performance and features. To make best use of them, the ROOT team has decided to re-implement its graphics and GUI subsystem using web technology.

This presentation introduces the model, data and control flow. The concepts are likely similar for any application that wishes to offer remote GUI and graphics and will follow clear client-server concept. Here the server is a C++-application, which produces data and prepares it for visualization. The client(s) will be JavaScript-based code, creating a HTML/SVG/WebGL representation of the provided data and implements all kind of interactivity – zooming, tooltips, context menus, etc. The communication will be done via websocket-based protocol, allowing data push from the server side. Local displays will be implemented with libraries like Chromium Embedded Framework (CEF).

Taking new TCanvas as prominent example, different aspects of new concept will be discussed: data organization on application side; creation of data model and versioning of different components in the canvas; communication patterns with multiple clients; efficient JavaScript-based rendering with significant amount of code sharing with JSROOT. Example with new FitPanel can be used to show how main interactive part can be implemented with open-source GUI library, but main fitting job will be performed with standard ROOT methods.

Primary authors

Serguei Linev (GSI - Helmholtzzentrum fur Schwerionenforschung GmbH (DE)) Bertrand Bellenot (CERN) Olivier Couet (CERN) Axel Naumann (CERN)

Presentation Materials