Interactive, web-based canvas is now the default in ROOT

After a long period of development and testing we decided to switch to the web-based TCanvas implementation by default in the ROOT master version. It has been present in the ROOT for a while (since 2017) and used already in the web-based TBrowser, which you have probably seen already.

This is a companion discussion topic for the original entry at

As a long-time “power” ROOT user for over 20 years with a well-developed machinery/codebase for generating publication-quality figures in a vector format using the existing TPad/TCanvas machinery either interactively or in batch, I have never used this feature so far. I will give it a try, but to force it as the default seems, for lack of a better word, asinine, and highly likely to piss off a large fraction of your user base who may be forced to overhaul existing workflows… again. And when you make a big, flashy announcement of a major change like this with a 500-word essay to justify it, there is an understandable and well-justified fear that this is a first step toward obsolescence/deprecation/enshittification of the original, highly configurable and functional graphics system. If you need to write a 500-word essay to justify this change (the contents of which, incidentally, suggest that it’s not quite ready for prime-time, let alone for universal adoption as the default option), maybe it isn’t necessarily all that awesome. While I’m sure there will be some advantages for ease-of-use/convenience for some use cases like remote displays, it is not at all obvious to me that this “feature” improves the functionality in any way for one of the most important use cases of ROOT’s graphics system; namely, the production of publication-quality figures in a vector graphics format (PDF or EPS). It also seems like it could be a major inconvenience/headache and potential security risk in some computing/network environments.

I’m all about new feature but making the Javascript web gui default was premature.
I believe that the Javascript gui is a great addition to ROOT but as implied by ajrpuckett, Javascript in application code has been banned by some.
One thing I would request is that you do not get rid of the old gui or I will have to drop ROOT if there is a move to Javascript gui only. I will still use it for my personal projects but I won’t be able to use it for anything else. I really enjoy the ROOT gui and being able to double click on my figures and zoom in. The ROOT binaries and these gui features are what make the difference. Knowing that I can go to my old root files from my PhD and open them up.

The original gui was not be the most elegant, but it was stable enough to get a lot of work done.


Thanks for both of your feedback. Let me just clarify that ROOT moves to the web-based graphics not out of boredom: we know that the old, platform-specific graphics backends are not sustainable. Windows uses some 30 years old library, we would need to rewrite much of the macOS GUI / graphics code having to higher a macOS developer, and Linux is migrating to Wayland. The old GUI / graphics backend forces us to deal with “wonderful” issues such as Can't open TBrowser locally after upgrading macos “Apple M2 14.0 (23A344)” · Issue #13834 · root-project/root · GitHub

Especially as a power-user you know what to do when you find a problem: open a bug report with a screen shot of what you see, an indication of the problem and the code you use to generate this problem. That way we can fix it, for everyone. Sergey has done a fantastic job in fixing super quickly everything that came his way.

We have received some reports of problems with the web-based graphics over the last few months - not many, but at a consistent (low) rate that we prefer to still release with the old graphics system being the default for the v6.30 release. master and TBrowser will continue to use the new, web-based one. We expect to switch the default graphics backend to the web-based one for v6.32. Please help us fix everything you see by then, by reporting issues today!

Cheers, Axel