Skip to content

Commit 4b27bdb

Browse files
silverweedvvolkl
andauthored
add proposal for ROOT RNTuple GSoC project (#1635)
* add proposal for ROOT RNTuple GSoC project * update mentors page with RNTuple project --------- Co-authored-by: Valentin Volkl <[email protected]>
1 parent 2065963 commit 4b27bdb

File tree

2 files changed

+46
-0
lines changed

2 files changed

+46
-0
lines changed
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
---
2+
title: RNTuple in JSROOT
3+
layout: gsoc_proposal
4+
project: ROOT
5+
year: 2025
6+
organization: CERN
7+
difficulty: medium
8+
duration: 350
9+
mentor_avail: June-October
10+
---
11+
12+
# Description
13+
RNTuple is the next-generation data format for high-energy physics (HEP) data collected from the LHC.
14+
It is part of ROOT, a cornerstone software package for the storage, visualization and analysis of scientific data, widely used in the scientific community and particularly in HEP.
15+
ROOT is a C++ and Python framework, but it recently became available in the browsers as well through a Javascript implementation of some of its parts: *JSROOT*.
16+
Since RNTuple is still in the experimental phase, it currently lacks a JSROOT interface and its contents cannot be visualized in the browser, a common and desirable property of many ROOT objects.
17+
The goal of this project is filling this gap by making JSROOT able to read and display data stored inside an RNTuple.
18+
19+
## Task ideas
20+
In this project, the student will learn the internals of the RNTuple binary format and use this knowledge to implement a Javascript interface to expose RNTuple to JSROOT.
21+
22+
## Expected results and milestones
23+
* Familiarize with the JSROOT framework, understanding how to integrate new components into it;
24+
* read and implement (a subset of) the RNTuple [binary format specifications](https://github.com/root-project/root/blob/master/tree/ntuple/v7/doc/BinaryFormatSpecification.md), in Javascript; this will concretely mean implementing the deserialization code from a binary blob to a RNTuple object that may be used by JSROOT;
25+
* enable the visualization of an RNTuple's fields in the browser, leveraging the existing framework in JSROOT.
26+
27+
## Requirements
28+
* Knowledge of Javascript / ES6
29+
* Basic knowledge of "low-level" programming (primitive types binary layouts, bit-level manipulations, reinterpreting bytes as different types, ...)
30+
* Experience with git / github
31+
* (Bonus): familiarity with any binary format
32+
33+
## Mentors
34+
* **[Serguei Linev](mailto:[email protected])**
35+
* [Giacomo Parolini](mailto:[email protected])
36+
37+
## Links
38+
* [ROOT Project homepage](https://root.cern/)
39+
* [ROOT Project repository](https://github.com/root-project/root)
40+
* [JSROOT homepage](https://root.cern/js/)
41+
* [JSROOT repository](https://github.com/root-project/jsroot)
42+
* [Introduction to RNTuple](https://root.cern/blog/rntuple-update/)
43+
* [RNTuple architecture overview](https://github.com/root-project/root/blob/master/tree/ntuple/v7/doc/Architecture.md)
44+
* [RNTuple Binary Specification](https://github.com/root-project/root/blob/master/tree/ntuple/v7/doc/BinaryFormatSpecification.md)

gsoc/2025/mentors.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,6 @@ layout: plain
88
## Full Mentor List (Name, Email, Org)
99
* Andy Buckley [[email protected]](mailto:[email protected]) UofGlasgow
1010
* Chris Gutschow [[email protected]](mailto:[email protected]) UCLondon
11+
* Serguei Linev [[email protected]](mailto:[email protected]) GSI
12+
* Giacomo Parolini [[email protected]](mailto:[email protected]) CERN)
1113
* Valentin Volkl [[email protected]](mailto:[email protected]) CERN

0 commit comments

Comments
 (0)