Clone or download
coalsont do a remove before writing a new file to improve symlink behavior, im…
…prove description of -volume-create arguments
Latest commit 4b139f7 Oct 20, 2018


Connectome Workbench requires QT5 to compile.  Recommended is version 5.6 or later (due to an issue with the toolbar size on earlier versions).

It is highly recommended to compile with OSMesa, which allow the -show-scene command and the "render pixmap" image capture method to work.  Use it by setting the *cmake* variable WORKBENCH_MESA_DIR, such that ${WORKBENCH_MESA_DIR}/include/GL/osmesa.h exists.

It is compiled using cmake, for example, on linux you can do:

mkdir build
cd build
nice make -j8

For other OSes, see

Note the -j flag of "make" is used in the example to speed up the build by compiling multiple source files at the same time.  If you have a different number of cores/hardware threads or want to reduce the load, adjust it accordingly.  The "nice" command is not needed, it is used to make the compilation have less priority than other processes.

This produces 3 executables, 2 of which are useful to the end user (Desktop/wb_view, CommandLine/wb_command), and one for running internal tests (Tests/test_driver).

To run the (few) tests available:

make test

To install wb_view, wb_command, wb_shortcuts, and the bash completion script to the default locations:

make install

It should be noted that wb_import, provided in the HCP binary releases of Connectome Workbench, is actually part of caret5 (

Connectome Workbench itself is licensed under GPLv2 or later, copyright 2014-2018 Washington University School of Medicine, see LICENSE file

Some source files are licensed under an MIT license (Expat), for easier code reuse in non-GPL projects:
Copyright (C) 2014-2018 Washington University School of Medicine

Some included code/files are from third party sources, with the following licenses:

Copyright (c) 2012-2017 Kristian Loewe, Christian Borgelt
licensed under MIT (Expat), see kloewe/dot/LICENSE and kloewe/cpuinfo/LICENSE

QuaZIP 0.6,
Copyright (C) 2005-2012 Sergey A. Tachenov
Copyright (C) 1998-2010 Gilles Vollant
Copyright (C) 2009-2010 Mathias Svensson
Copyright (C) 2007-2008 Even Rouault
Copyright (c) 1990-2000 Info-ZIP
licensed under LGPLv2 and zlib, see Quazip/COPYING, Quazip/quazip.h, Quazip/zip.h and Quazip/unzip.c

Copyright (C) 1997   Josef Wilgen
Copyright (C) 2002   Uwe Rathmann
Qwt 6.0.1,
licensed under Qwt license v1.0 (LGPLv2.1, with exceptions), see src/Qwt/COPYING
some unneeded files removed

FTGL library
Copyright (C) 2001-2004 Henry Maddocks <>
Copyright (C) 2008 Daniel Remenak <>
Copyright (C) 2008 Éric Beets <>
Copyright (C) 2008 Sam Hocevar <>
Copyright (C) 2008 Sean Morrison <>
licensed under Expat, see FtglFont/COPYING

Common/Base64.*, Common/DataCompressZLib.*, Common/MathFunctions.*, Nifti/Matrix4x4.cxx:
use code from VTK, or
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
originally licensed under BSD 3-clause, see or

GuiQt/WuQDialog.cxx, Brain/FtglFontTextRenderer.cxx:
copied some code from from QT4,
Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
originally licensed LGPLv2.1 (or GPLv3, or a commercial license)
modified to change some UI behaviors otherwise hardcoded into QT classes

Files/SignedDistanceHelper.cxx, Files/RibbonMappingHelper.cxx:
make use of PNPOLY,
Copyright (c) 1970-2003, Wm. Randolph Franklin
originally licensed with 3-clause BSD/MIT license, see files in question
rewritten for different argument types, modified

Copyright (c) 2003 Bitstream, Inc.
licensed under Bitstream-Vera (basically, modification of fonts requires calling them something else), see debian/copyright file

copied some palette definitions from matplotlib and its original sources
Copyright (c) 2012-2016 Matplotlib Development Team
Copyright (c) 2002 Cynthia Brewer, Mark Harrower, and The Pennsylvania State University
licensed apache-2 and MDT (bsd-like)