Version 0.10.0

  • Added an option to smooth to nearest vertex in Brain.add_data() using smoothing_steps='nearest'

  • Added options for using offscreen mode

  • Improved integration with Jupyter notebook

  • Avoided view changes when using Brain.add_foci()

Version 0.9

  • Fixed transparency issues with colormaps with Brain.scale_data_colormap()

  • Added an example of using custom colors

  • Added options for choosing units for Brain (m or mm)

Version 0.8

  • The surface geometry that is displayed can now be changed after initializing a Brain instance with e.g. brain.set_surf("smoothwm").

  • Allowed PySurfer to use custom matplotlib colormap objects or the names of custom colormaps that have been registered with matplotlib.

  • Added four new colormaps from seaborn: rocket, mako, icefire, and vlag.

  • Terrain interaction is now possible via the interaction keyword argument.

  • An API reference page is now available.

  • Support is now provided for visualizing vector-valued (3 values per vertex) data.

Version 0.7

  • Support for Python 3.3 and up.

  • A new alpha keyword to the Brain constructor now controls opacity of the rendered brain surface.

  • The curv keyword to the Brain constructor has been deprecated. To replicate previous behavior when curv was set to True simply omit the curv keyword. To replicate previous behavior when curv was set to False, simply set the cortex keyword to None. To ease transition the curv argument will still be caught and processed, but it will be removed in a future release.

  • The cortex keyword to the Brain constructor now also accepts a valid color specification (such as a 3-tuple with RGB values or a color name) to render the cortical surface in that color without rendering binary curvature values. Additionally it now also accepts a dictionary with keyword arguments that are passed on to the call to mlab.pipeline.surface.

  • Brain.save_movie now uses the imageio library, eliminating the need to manually install ffmpeg. imageio has been added as an optional dependency which can be installed with $ pip install pysurfer[save_movie].

  • Brain.save_image now has the option to save with alpha channel and antialiasing.

Version 0.6

  • Values that were previously selected using a config_opts dictionary in the Brain constructor are now keyword arguments. This should make it easier to use tab-completion in IPython, and will generally simplify your scripts. To ease transition, a config_opts argument will still be caught, and its entries will be used (overriding the keyword arguments), but it will be removed in a future release.

  • The ability to set default values in a config file has been removed. While convenient, this approach encourages code that is not fully reproducible. While existing code that was written expecting a config file will still run, the visualization will fall back to default values. These should be updated directly in your plotting scripts.

  • Figure size is now specified only through the size keyword argument of Brain. To make a rectangular window, pass a (width, height) tuple. Passing a single value to size will still make a square window.

  • The cortex keyword argument can now be a mayavi colormap name or a (colormap, min, max, reverse) tuple for full control.

  • Morphometry plotting was made more flexible with the ability to pass a specific colormap and anchor points for that colormap. Additionally, the default anchor points now use robust statistics to give better values.

  • Contour overlay plotting was made more flexible by adding keyword arguments to control whether a colorbar should be shown and whether existing contour overlays should be removed before plotting.

Version 0.5

  • Added control over the width of outlines when plotting the borders of annotations or labels.

  • The visual display of the surfaces was improved by using surface normals.

  • Made colormap specification in Brain.add_data and Brain.add_contour_overlay more flexible, with better defaults.

  • Brain.save_montage() can now produce 2d grids of views in addition to horizontal and vertical arrangements.

  • Fixed some installation issues and added explicit checks for dependencies on install.

  • Updated the installation docs with information about getting PySurfer running on OSX, and changed the official environment recommendation to Anaconda.

Version 0.4


  • Display data from both hemispheres simultaneously

  • Display multiple views simultaneously

  • Toggling Mayavi toolbars

  • Use nibabel for IO functions

Version 0.3.1


  • Reverted change in that broke Python 2.6 compatibility

  • Updated traitsui import while keeping backgrounds compatibility

Version 0.3


  • TimeViewer GUI to control data exploration in the time dimension

  • Support for reading and visualizing MEG data from MNE

  • Function to project volume-based data using mri_vol2surf

  • Label routines can read scalar data and threshold visualization

  • Utility function to smooth overlay data along the cortical manifold

  • Example for displaying parcellation-based ROI analysis results

  • Example for displaying ROI labels

  • Example for plotting probabilistic labels

  • Improved color flexibility using matplotlib for many visualization modes

  • Exposed alpha channel for many visualization modes


  • Big-endian overlay data should now display properly on 64-bit systems.

  • Colorbar text displays properly on light backgrounds

  • Lights are oriented depending on hemisphere so surfaces are equally lit