Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News BrainBrowser: v2.0 of JavaScript Library for Neuroimaging Released

BrainBrowser: v2.0 of JavaScript Library for Neuroimaging Released

This item in japanese

BrainBrowser has released version 2.0 of its JavaScript library for neuroimaging within web browsers.

The library, which was open sourced in March this year, consists of the Surface Viewer, a real-time 3D rendering tool for visualising surface data, and the Volume Viewer, a slice-by-slice volumetric data analysis tool.

BrainBrowser was originally developed by Nicolas Kassis in 2010 at the McGill Center for Integrative Neuroscience. The library was intended to act as a visualisation layer for two web-based research platforms developed there. The platforms both involved large amounts of distributed data, and users reported that having to download their data in order to visualise it using locally installed software added friction to workflows. BrainBrowser was created to address this, and has since undergone changes to both the codebase and API.

Major improvements to BrainBrowser in the 2.0 release include simplified configuration through BrainBrowser.config object, General-purpose tree storage mechanism through BrainBrowser.createTreeStore(), as well as specific improvements to both the Surface Viewer and Volume viewer.

Talking to InfoQ about the new release, Tarek Sherif, who develops and maintains the library, said a major push for this release was to make both BrainBrowser apps more usable on mobile devices. He said:

There has been feedback from our users, in particular users of the LORIS platform, that they'd like the ability to use tablets to interact with our platforms. That, and the fact that WebGL is finally coming to iOS, lead to us making BrainBrowser more mobile-friendly. The ability to load Surface Viewer models directly from JSON has also made it much easier to load models from other software. For example, the sample JSON model in the Surface Viewer demo on the website was exported from MATLAB.

According to BrainBrower's release notes, some of the recent changes in the latest release of BrainBrowser include, for the Surface viewer:

  • Models can be parsed from JSON.
  • Parsed model data now managed by viewer.model_data object.
  • setTransparency() and setWireframe() no longer require a shape name (both default to applying to entire model).

And for the Volume Viewer:

  • Mouse and touch positions on each panel now tracked in panel.mouse and panel.touches, respectively.
  • Time position for functional data can now be controlled with the keyboard (forward: space, back: shift-space)..
  • minc2volume-viewer.js now extracts direction cosines.

Sherif says BrainBrowser has been designed to be lightweight and to keep external dependencies at a minimum. Not requring any external libraries or plugins, other than the three.js JavaScript 3D library for Surface Viewer, BrainBrowser is at an advantage over any software that runs in a Java or Flash plugin.

Sherif also says that BrainBrowser has been built to dynamically load data as needed, which distinguishes it from tools that visualise data in a pre-configured manner, such as BrainGL. BrainBrowser is a fully a front-end application, which differentiates from tools like ParaViewWeb or TissueStack, which both require a back-end server.

Reactions to BrainBrowser have been positive. In the neurology community, Sherif says people been "excited by the idea of sharing their data in a dynamic, visually striking way" and among developers there has been interest to see BrainBrowser as an example of what's possible with WebGL and HTML5.

However, Sherif says that further building the community is high on his list of priorities, and he says that as development for BrainBrowser is tied to the evolving needs of its users, expanding the community would benefit the project and in turn the community itself:

Neurology data is notoriously difficult to deal with from a software perspective as different research groups use different data formats, and one even sees variations within a single format. Data format support in BrainBrowser uses a plugin architecture, so if developers simply write parsers for whichever data formats they use, BrainBrowser would be able to visualise them.

InfoQ readers interested to contribute to the BrainBrowser project should check out the BrainBrowser website and GitHub repo.

Rate this Article