JavaScript ROOT provides interactive ROOT-like graphics in the web browsers and in node.js
.
Data can be read and displayed from ROOT binary and JSON files.
JSROOT
implements user interface for THttpServer class.
...
<body>
<div id="drawing" style="position: relative; width: 800px; height: 600px;"></div>
</body>
<script type='module'>
import { openFile, draw } from 'https://root.cern/js/latest/modules/main.mjs';
let file = await openFile('https://root.cern/js/files/hsimple.root');
let obj = await file.readObject('hpxpy;1');
draw('drawing', obj, 'colz');
</script>
...
import { openFile, makeSVG } from 'jsroot';
import { writeFileSync } from 'fs';
let file = await openFile('https://root.cern/js/files/hsimple.root');
let obj = await file.readObject('hpxpy;1');
let svg = await makeSVG({ object: obj, option: 'lego2,pal50', width: 800, height: 600 });
writeFileSync('lego2.svg', svg);
npm install jsroot
For 3D rendering jsroot uses gl package which may have problems
during installation. To use jsroot without gl
one can omit development packages:
npm install jsroot --omit=dev