Repository navigation
Home
ClearVolume is a real-time live 3D visualization library designed for high-end volumetric microscopes such as SPIM and DLSM microscopes. With ClearVolume you can see live on your screen the stacks acquired by your microscope instead of waiting for offline post-processing to give view an intuitive and comprehensive view on your data. The biologists can immediately decide whether a sample is worth imaging.
ClearVolume can easily be integrated into existing Java, C/C++, or LabVIEW based microscope software. Moreover, it has a dedicated interface to MicroManager/OpenSpim/OpenSpin control software. In addition, it offers the possibility of remote viewing of volume data
- Java JDK or JRE version 8 (1.8)
- Gradle 2.1 (get it here)
- NVidia graphics card
- CUDA SDK 6.5 (get it here)
- On windows you need VisualStudio installed (get it here) If you use an 'express' version of VisualStudio, you need to copy and rename the file 'vcvarsx86_amd64.bat' located in folder 'Microsoft Visual Studio 12.0\VC\bin\x86_amd64' to 'vcvars64.bat' that should be placed at the root of the VisualStudio folder e.g. 'C:\Program Files (x86)\Microsoft Visual Studio 12.0'. run gradle test an check for messages that suggest that that file could not be found.
- OpenCL 1.2 capable graphics card with preferably at least 1G of GPU RAM.
####Prerequisites for LabVIEW bindings:
- LabVIEW 2012 64 bit.
Note: LabVIEW users can regenerate the LabVIEW bindings from almost any LabVIEW 64bit version using the LabVIEW wizard for interfacing with native C/C++ libraries. Unfortunately 32 bit is out of the questions in the 21st century - and makes little sense when handling volume data anyway...
Checkout the project using Git
git clone git@bitbucket.org:clearvolume/clearvolume.git
or go to the download page and download the whole repository.
This download will only provide you with the source code. To obtain usable binaries, you need to follow the instructions below or have a look at the other downloads provided (for C/C++ and LabVIEW users).
-
Get Gradle here
-
Go to the project folder root and run:
./build.sh
This will generate a jar executable here:
./build/executable/ClearVolume.exe.jar
(It uses the magic Capsule plugin for Gradle for that)
Start the demo server (Linux or OSX):
./build/executable/ClearVolume.exe.jar -demoserver > log.txt &
Start the network client (Linux or OSX):
./build/executable/ClearVolume.exe.jar
In windows you might have to type instead:
java -jar ClearVolume.exe.jar
You can also simply double click on the ClearVolume.exe.jar file (OSX, Linux)
Connect to the server on localhost. Et Voila! You should see a volume rendering of a 3D Volume stream (changing 3D data).
The ClearVolume network client allows you to connect to your ClearVolume enabled microscope software from anywhere in the planet where your internet connection is fast enough. In the worst case scenario it just takes a bit of time to download the data... Since the rendering is happening on the client, once you have a stack/volume on your client computer you can rotate and zoom virtually all you want. The ClearVolume network client (ClearVolume.exe.jar) is also available for download here

You need to provide a network address, decide on a window size. Importantly you need to specify the type of data: typically 16 bit and 1 color. If you provide the wrong information the client will return an error. We will try to improve this in a future version. If you want to use the time-shift and channel filter features just tick the mark. Note: remote time-shift only works with stacks received by the client.
One of ClearVolume key feature is to make it easy and painless to integrate into different systems. For this purpose we have made sure that both the APIs are simple and elegant as well as to provide bindings for all languages that we know are used for microscope control, and in particular light-sheet microscopes.
ClearVolume comes with bindings with al major languages used for developing microscope control software: Python, Java, C/C++, LabVIEW. There are two types possibilities for integration:
- Network : ClearVolume receives data over the network via streaming
- In-Process: ClearVolume lives in the same process and thus data can be transferred at maximal speed.
It is possible to have both: in-process with ClearVolume server listening for incoming connections, this mode offers the possibility to monitor long-term time-lapses remotely.
Different integration guides can be found here:
- Java integration guide IntegrationJava
- C/C++ integration guide IntegrationCCPP
- LabVIEW integration guide IntegrationLabVIEW
- Python integration guide IntegrationPython
OpenSPIM has democratized light-sheet microscopy and has made it possible for many labs around the world to build high-quality and cheap light-sheet microscopes. To support this effort we integrated ClearVolume into the OpenSPIM plugin for μManager. Go to this page IntegrationOpenSPIM for details on how this was done, the advantages and how to get the plugin and use it.
ClearVolume is an open project and we welcome contributions, collaborations and integration with other projects. The entry-point for more advanced informations and guides is here: SystemInternals
- torture of animals with the exception of bugs is prohibited
- exhibit openness of mind towards idiosyncratic ideas
- be nice
- Loic Royer (royer -at- mpi-cbg -point- de)
- Martin Weigert (mweigert -at- mpi-cbg -point- de)
- Ulrik Guenther (guenther -at- mpi-cbg -point- de)
