BrainBrowser requires the following HTML5 technologies which seem to be unavailable in your browser: Google Chrome or Mozilla Firefox are recommended for optimal viewing.

BrainBrowser is a set of web-based, 3D visualization tools primarily targetting neuroimaging. Using open web-standard technologies, such as WebGL and HTML5, it allows for real time manipulation and analysis of 3D imaging data. The BrainBrowser Surface Viewer allows users to explore cortical surface models in MNI object, Wavefront object or FreeSurfer ASCII surface file formats. Color maps can be applied to them, whether they're precalculated, such as the MACACC Dataset (Mapping Anatomical Correlations Across Cerebral Cortex), or maps provided by the user. The BrainBrowser Volume Viewer allows users to navigate 3D or 4D MINC structural or functional MRI volume data.

Please select one of the following demonstrations to see more:


BrainBrowser is a collection of several tools primarily targeting brain imaging research, though in some cases general enough to potentially be of use in other fields. The BrainBrowser toolset includes:

  • The Surface Viewer: a general-purpose 3D viewer capable of displaying 3D surfaces and mapping various sorts of data to them.
  • The Volume Viewer: a viewer allowing slice-by-slice traversal of MINC volume data.
The site includes demonstations of several aspects of the BrainBrowser toolset:
  • Surface Viewer: a demonstration of the Surface Viewer handling models of various types, formats and sizes.
  • MACACC Dataset Viewer: a demonstration of the Surface Viewer being used to visualize the MACACC Dataset.
  • Volume Viewer: a demonstration showing the Volume Viewer handling two structural MINC data volumes, and a blended overlay of their data.
  • fMRI Viewer: a demonstration showing the Volume Viewer handling two functional MINC data volumes.

Surface Viewer

The BrainBrowser Surface Viewer is a web-enabled 3D model viewer primarily used for realtime exploration of 3D brain maps, though capable of displaying any properly formatted 3D model. A typical brain map might be calculated using 3D statistical tools (e.g. SPM, fMRIstat) or surface-based statistical tools (e.g. Surfstat). It can then be texture-mapped onto either the default surface in stereotaxic space (Lyttelton O et al., 2007) or a surface provided by the user. The BrainBrowser Surface Viewer can be used in several ways. In the most straightforward usage, the user may choose to load a 3D model in MNI object, Wavefront object or FreeSurfer ASCII surface file formats, or use a sample model provided, and then apply a mapping of interest to the loaded model.

Samples provided include:

  • An exploration of correlation structure for cortical thickness, cortical area or cortical volume, previously calculated at the MNI on a vertex-wise basis from the ICBM152 MRI database. This database was built using the MACACC (see following paragraph) approach to define cortical correlation structure (Lerch J et al., 2006).
  • 3D fibre pathways derived from DTI.
  • Cortical amyloid deposition of a cohort of 18 month-old transgenic mice with Alzheimer's disease.
  • A basic cortical surface.
  • An aeroplane with with air density and flow mappings.
  • An automobile.

MACACC Dataset Viewer

The BrainBrowser Surface Viewer provides a means to explore the MACACC Dataset of structural correlations across the cortex, derived in database of 152 young normal subjects from the International Consortium for Brain Mapping (ICBM, Mazziotta J et al., 2001). Cortical thickness at each of 80K 3D locations were calculated using the CLASP algorithm (MacDonald D et al., 2000; Kim JS et al., 2005). This subject population is the same as used for the MNI152 stereotaxic voxelwise templates used, for instance, in SPM. Structural correlation maps are calculated according to the procedures in Lerch et al., (2005), wherein the correlation across subjects, between the cortical thickness at a seed vertex and at any other vertex, is measured. This yields a cortical thickness correlation map for that seed vertex. The MACACC Dataset contains maps for all cortical vertices for each of three vertexwise morphological variables (thickness, area, volume). Furthermore, since the blurring kernel used will profoundly alter the derived statistical map, the results are generated for 9 different surface-blurring kernels and for three different statistics. In total, the BrainBrowser database comprises ~6.3 Million maps for the following permutations: 80K vertices x 9 blurring kernels x 3 morphological indices x 3 statistical

Volume Viewer

The BrainBrowser Volume Viewer allows the user to explore 3D MINC imaging data in a slice-by-slice manner. Sagittal, coronal and transverse slices are shown simultaneously representing a single point in 3D space, and users can navigate through the volume by manipulating a cursor with their mouse. Various color maps can be applied to the slice displays to enhance viewing, and slices from multiple volumes can be overlayed for comparision. The BrainBrowser Volume Viewer also supports 4 dimensional fMRI data, allowing the user to navigate through the time axis of the volume as well.

fMRI Viewer

The fMRI Viewer is simply a demonstration of the BrainBrowser Volume Viewer's use on a 4D functional MRI data set. The user can explore the volume in 3 spatial dimensions and 1 dimension of time.

Try out BrainBrowser:

BrainBrowser v1.5.4

Note that the BrainBrowser Surface Viewer requires three.js.

Please send any feedback to

Release Notes


  • Surface Viewer
    • Fixed bug in worker preloading.


  • Surface Viewer
    • Improved picking.
    • Now requires three.js r66.
  • Volume Viewer
    • display renamed to panel.
    • Added methods reset() and followCursor() to panel API.


  • Surface Viewer
    • Added support for Freesurfer ASCII thickness files.

Surface Viewer Web Service v0.3.2

Please note the Surface Viewer Web Service is still in its early stages of development. Performance is not guaranteed and the API may change rapidly. Please send any comments or feedback to Tarek Sherif at

Load a BrainBrowser Surface Viewer widget into your web page to view your own data! Simply make an HTTP request to the following URL:

and insert the renturned HTML into your page. The Web Service will automatically load all required library files and launch the viewer. Optionally, you can provide a callback function to programatically control the viewer.

Try out some of the basic web service functionality in the BrainBrowser Web Service Demo .


Load brain.obj MNI Object model into a 200 X 200 viewer:

    <div id="display"></div>
    <script src="jquery.min.js"></script>

Use a viewer callback to set up a UI for the viewer (see the viewer object API ):

    <div id="display"></div>
    Wireframe: <input id="wireframe" type="checkbox"/>
    <script src="jquery.min.js"></script>
      function init(viewer) {
        $("#wireframe").change(function() {


The loaded viewer can be customized by passing options to the web service as parameters in the URL. Supported options for the Surface Viewer Web Service include:

Version of the Surface Viewer to use. Set this explicitly to prevent future updates from breaking your widget. The web service must be used with version 1.5.1 or higher (default: latest)
Width of the loaded viewer in pixels (default: 400)
Height of the loaded viewer in pixels (default: 400)
URL of a model file to load
File format of the model file (mniobj, wavefrontobj or freesurferasc. Default: mniobj)
URL of an intensity data file to map onto the model (requires a color map)
URL of a color map file to use in mapping the intensity data
Initial zoom level on the model (default: 1.0)
A function defined in the client page that will be called once the viewer begins rendering, and to which a viewer object will be passed
ID of the HTML element that will be inserted into the page (default: "brainbrowser")
Load basic UI controls (default: false)
Load UI controls for inputting model, intensity and color map data from local files (default: false)

Release Notes


  • More cleanup of widget UI HTML


  • Cleanup of widget UI HTML


  • basic_controls option added
  • file_input_controls option added
  • nothreejs option removed
  • Widget now checks if three.js and BrainBrowser are already loaded, and if so, doesn't load them


  • version option added
  • viewer_callback option added

BrainBrowser API documentation

Examples of BrainBrowser usage can be found in the Surface Viewer and Volume Viewer demonstration code used for this site.


BrainBrowser was created by Nicolas Kassis and is currently developed and maintained by Tarek Sherif as part of the CBRAIN project at McGill University.

BrainBrowser uses three.js for 3D rendering. Development tasks are managed using Grunt.

This website uses jQuery for interface design and runs on a node.js server using the Express web application framework with the Handlebars templating engine.

For support or inquiries, please contact Tarek Sherif at

Lead Developer
Tarek Sherif
Original Author
Nicolas Kassis
Contributing Developer
Mia Petkova
Samir Das
CBRAIN System Architect
Marc Rousseau
CBRAIN Manager
Reza Adalat
Principal Investigator
Alan Evans

Fork me on GitHub