I’m happy to present you the SciJava Jupyter Kernel project.
As you may know, Scijava is the Java framework that power ImageJ and Fiji.
Jupyter is an open source project that “support interactive data science and scientific computing across all programming languages”. Interactive computing is allowed by the Jupyter Notebook. Find here some notebooks that will give you an idea of what we are talking about.
The Jupyter SciJava Kernel try to make the link between both projects by providing a Java kernel powered by the SciJava Scripting libraries.
A lot of effort is made to keep SciJava Jupyter Kernel independent of ImageJ/Fiji while keeping a smooth as possible out-of-the-box integration with it.
Thank to the SciJava Scripting libraries, SciJava Jupyter Kernel support 8 languages by default :
Here are some features of the kernel:
- 8 languages supported.
- Automatic standalone installation with conda.
- Auto-completion support for all languages.
Automatic output conversion :
Datasetare converted on-the-fly and displayed within the notebook as PNG/JPEG. Same conversion is done for JSON, table, HTML, Markdown, etc.
- Universal artifacts grabbing mechanism : use annotation parameters to grab Maven artifacts on-the-fly. Example:
#@dependency(group="org.springframework", module="spring-orm", version="3.2.5.RELEASE").
- Support many Jupyter clients: Jupyter Notebook, Jupyter Lab and Jupyter Console.
You can also browse the documentation notebooks.
Under The Hood
Under the hood, SciJava Jupyter Kernel uses the BeakerX base kernel. The BeakerX project is still young such as SciJava Jupyter Kernel and we are excited to grow together.
A big thanks to the BeakerX team for their project and the help.
SciJava Jupyter Kernel needs to be tested ! So feel free to try it an report any bug you may notice.