This is the open-source repository for FluoRender, an interactive tool for fluorescence microscopy data visualization and analysis.
Download the installer package for your operating system (OS).
| đĽď¸ Windows (10 and 11, 64-bit, x86_64 CPUs) | đ Mac OS (13.3+, M1, M2, etc. CPUs) | đ Mac OS (13.3+, Intel CPUs) | đ§ Linux |
|---|---|---|---|
| Version 2.34 | Version 2.34 | Version 2.34 | Email me |
Support the maintenance and bug fixes by donnation: https://paypal.me/fluorender
FluoRenderâs new release comes from a year of rethinking the projectâs purpose and focusing entirely on what biologists actually need, leading to major upgrades in mesh speed, rendering quality, and overall usability. A new GPUâbased mesh generator, modernized lighting, a rebuilt framebuffer system, smarter multichannel intermixing, cleaner colorâmapping, clipping boxes for meshes, and a suite of new analysis tools all grew naturally from that shift in direction. The release also introduces a brandânew DICOM reader, rounding out a version shaped by experimentation, refinement, and a renewed sense of why FluoRender exists in the first place.-
Looking Glass Support
- FluoRender now supports both volume data and mesh objects on the latest Looking Glass holographic displays, expanding your visualization toolkit with intuitive controls and immersive clarity.
- The 16" Looking Glass displays can be purchased here: https://lookingglassfactory.com/looking-glass-16-lightfield
- The 27" Looking Glass displays can be purchased here: https://lookingglassfactory.com/looking-glass-27
- And a portable holographic display, the Looking Glass Go can be purchased here: https://lookingglassfactory.com/lkg-go
-
Mesh & Surface Improvements
- Much faster mesh generation using a new GPU based method.
- Cleaner, more modern mesh appearance with updated lighting and shadows.
- Clipping boxes now work for meshes, with options to sync across objects.
- New mesh analysis tools: volume, surface area, smoothing, simplification, welding.
- 4D mesh generation and playback for time series data.
- Real time mesh creation with paint and grow brushes.
- Color transfer from components to meshes for easier segmentation workflows.
-
Volume Rendering & Visualization
- Updated lighting for volumes (softer shadows, clearer structure).
- More reliable multichannel intermixing â all combinations now behave sensibly.
- Brush selected and unselected regions can use different color modes.
- New âno displayâ mode for hiding unselected regions.
- MIP now works with color maps and depth mixing.
-
Color Mapping Enhancements
- Two new color maps: radial and linear.
- Color maps now align with data, not just axes (PCA based by default).
- Color gradients can follow any measurement tool or viewing direction using the probe tool.
-
System & Performance Upgrades
- Major framebuffer redesign for more predictable rendering and faster effects.
- More intuitive shader system for both volumes and meshes.
- Smoother interaction when mixing render modes, effects, and color maps.
-
New Data Format Support
- DICOM reader.
User Manual: Version 2.33
Tutorials: Version 2.33
Video Tutorials: YouTube Playlist
Contact the developer for any questions or suggestions:
Email: yong.wan@utah.edu
Facebook Page: FluoRender on Facebook
FluoRender can run on most personal computers including desktops and laptops. The key component is a modern GPU (Graphic Processing Unit). A powerful GPU is helpful to process large data.
Code Contributors: Yong Wan, Brig Bagley, Takashi Kawase, Remaldeep Singh, etc.
If you use FluoRender in work that leads to published research, we humbly ask that you add the following to the 'Acknowledgments' section of your paper:
"This work was made possible in part by software funded by the NIH: Fluorender: Visualization-Based and Interactive Analysis for Multichannel Microscopy Data, R01EB023947."
If you would like to cite FluoRender, you may reference the following publication:
Wan, Y., et al. (2017). FluoRender: joint free-hand segmentation and visualization for many-channel fluorescence data analysis. BMC Bioinformatics, 18:280.
Some third-party dependencies are included in the FluoRender source code. Other dependencies need to be prepared before building FluoRender. This is especially true after recent reoganization of FluoRender source code, as many dependencies are moved out of the project. They need to be built or installed before building.
- Windows 10 and later : Visual Studio 2017 and later
- Or Mac OS 11 (Big Sur) and later : Updated Xcode and command line tools
- Or Ubuntu Linux 22.04 (tested to work)
- Or Mac OS 11 (Big Sur) and later : Updated Xcode and command line tools
- Git (https://git-scm.com/) for managing the source code
- CMake (http://www.cmake.org/) for generating building projects
- Boost (http://www.boost.org/users/download/#live) for computing using the graph library
- Needs building before FluoRender
- Dlib (http://dlib.net) for deep neural network calculations
- No need to build before FluoRender for the template library
- FFmpeg for reading and writing video files
- https://github.com/FFmpeg/FFmpeg.git
- x264 codec (https://code.videolan.org/videolan/x264.git)
- x265 codec (https://bitbucket.org/multicoreware/x265_git.git)
- May need MSYS2 to build on Windows
- Build codecs first and then FFmpeg
- FreeType for managing type fonts
- https://github.com/freetype/freetype.git
- Needs building before FluoRender
- GLEW (https://glew.sourceforge.net) for OpenGL extension management
- https://github.com/nigels-com/glew/releases/tag/glew-2.2.0
- Needs building before FluoRender
- GLM for mathematics like vectors, matrices, and quaternions
- https://github.com/g-truc/glm.git
- No need to build for header-only library
- HDF5 (https://www.hdfgroup.org/download-hdf5/) for managing HDF files
- https://github.com/HDFGroup/hdf5/releases/tag/hdf5_1.14.5
- Needs building before FluoRender
- JDK (https://www.oracle.com/java/technologies/downloads/) for linking to ImageJ functions
- Needs installation
- OpenBLAS for linear algebra computations
- https://github.com/OpenMathLib/OpenBLAS.git
- Needs building before FluoRender
- OpenCL SDK for cross-platform GPU computing
- There are multiple providers. On Windows, I use NVIDIA CUDA Toolkit:
- https://developer.nvidia.com/cuda-toolkit
- Needs installation
- OpenCV (https://opencv.org/) for computer vision calculations
- https://github.com/opencv/opencv.git
- Needs building before FluoRender
- OpenJPEG for reading DICOM files compressed with JPEG 2000
- https://github.com/uclouvain/openjpeg.git
- Needs building before FluoRender
- OpenVR (https://steamvr.com) for SteamVR headset support
- https://github.com/ValveSoftware/openvr.git
- Needs building before FluoRender
- OpenXR (https://www.khronos.org/openxr/) for OpenXR headset support
- https://github.com/KhronosGroup/OpenXR-SDK.git
- Needs building before FluoRender
- Python (https://www.python.org/downloads/) for linking to Python functions
- Needs installation
- Teem (https://teem.sourceforge.net/) for reading and writing Nrrd format files
- Needs building before FluoRender
- I maintain a repo here: https://github.com/basisunus/teem.git
- wxWidgets (https://github.com/wxWidgets/wxWidgets) for user-interface library
- I made some changes to the wxWidgets code. Use my custom branch
- I generally use the built-in libs in wxWidgets, including Jpeg, Png, Tiff, etc.
- Needs building before FluoRender
- Zlib (https://github.com/madler/zlib.git) for reading compressed data formats
- Needs building before FluoRender
Libraries that need building before FluoRender or included as head-only are placed at the same level of the FluoRender source code path so that they can be automatically found. See FluoRender's CMake file for more details. I usually prefer the source code of a released version instead of the master head.
-
Make sure OpenGL and OpenCL drivers are correctly installed and configured. This is OS and hardware dependent.
Libs needed: libOpenCL1, glu-devel; headers needed: opencl-headers.
-
Other dependencies include: gcc, g++, gtk3-devel, ffmpeg-4-libavcodec-devel, ffmpeg-4-libavformat-devel, ffmpeg-4-libavutil-devel, ffmpeg-4-libswscale-devel, ffmpeg-4-libswresample-devel, etc.
-
Clone and build boost.
-
git clone --recursive https://github.com/boostorg/boost.git -
cd boost -
./bootstrap.sh -
./b2
-
-
Clone and build wxWidgets.
-
git clone --branch wxwidgets-3.2.6 --recursive https://github.com/basisunus/wxWidgets.git -
cd wxwidgets -
mkdir mybuild -
cd mybuild -
../configure --disable-shared --enable-cxx11 --with-cxx=11 --enable-stl --enable-std_containers --enable-std_iostreams --with-libpng=builtin --with-libtiff=builtin --with-libjpeg=builtin --with-zlib=builtin --with-opengl -
make
-
-
Use CMake to generate FluoRender project.
-
Build FluoRender. An IDE such as CodeBlocks can be used.
-
Clone the latest wxWidgets using GIT (
git clone --branch wxwidgets-3.2.6 --recursive https://github.com/basisunus/wxWidgets.git).- The steps following will assume the wxWidgets root directory is at
/wxWidgets
- The steps following will assume the wxWidgets root directory is at
-
Build wxWidgets from the command line.
-
cd /wxWidgets/ -
mkdir mybuild -
cd mybuild -
../configure --disable-shared --with-cocoa --with-opengl --disable-mediactrl --with-macosx-version-min=13.3 --enable-cxx11 --enable-stl --enable-std_containers --enable-std_iostreams --with-libpng=builtin --with-libtiff=builtin --with-libjpeg=builtin --with-zlib=builtin -
make
-
-
Download and build boost.
-
Download boost (http://www.boost.org/users/download/#live) and extract onto your machine.
-
Build boost using
./bootstrap.shand./b2in the boost directory. -
The steps following will assume the boost root directory is at
/boost_1_xx_0(your version might differ).
-
-
Get homebrew, libtiff, and freetype
-
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" -
brew install libtiff -
brew install freetype
-
-
Get and build FluoRender
-
git clone git@github.com:SCIInstitute/fluorender.git -
cd fluorender -
mkdir build -
cd build -
cmake -G Xcode -DwxWidgets_CONFIG_EXECUTABLE="/wxWidgets/mybuild/wx-config" -DwxWidgets_wxrc_EXECUTABLE="/wxWidgets/mybuild/utils/wxrc/wxrc" -DwxWidgets_USE_DEBUG=ON -DwxWidgets_ROOT_DIR="/wxWidgets" -DBoost_INCLUDE_DIR="/Users/YourUserName/boost_1_xx_0" -DJAVA_AWT_INCLUDE_PATH="/Library/Java/JavaVirtualMachines/jdk-xx.x.x.jdk/Contents/Home/include" -DJAVA_INCLUDE_PATH="/Library/Java/JavaVirtualMachines/jdk-xx.x.x.jdk/Contents/Home/include" -DJAVA_INCLUDE_PATH2="/Library/Java/JavaVirtualMachines/jdk-xx.x.x.jdk/Contents/Home/include/darwin" -DCMAKE_BUILD_TYPE="Debug" ..(replace directories with your versions)
-
-
Open the Xcode file generated to build and run FluoRender.
- To avoid blurry user interface on high-resolution displays, add this setting to info.plist:
NSHighResolutionCapableand set it toYES.
- To avoid blurry user interface on high-resolution displays, add this setting to info.plist:
-
Clone the latest wxWidgets using GIT (
git clone git@github.com:wxWidgets/wxWidgets.git).- The steps following will assume the wxWidgets repository is at
C:\wxWidgets
- The steps following will assume the wxWidgets repository is at
-
Open a 64 bit Visual Studio command prompt to build wxWidgets. (make sure you use the prompt version you wish to build all dependencies, IE , MSVC 15.0 2017 x64)
-
Go to directory
C:\wxWidgets\build\msw -
Type
nmake /f makefile.vc TARGET_CPU=x64 BUILD=debugto build debug libraries. -
Type
nmake /f makefile.vc TARGET_CPU=x64 BUILD=releaseto build release libraries.
-
-
Download and build boost.
-
Download boost (http://www.boost.org/users/download/#live) and extract onto your machine.
-
Build boost using
bootstrap.exeandb2.exe --toolset=msvc-15.0 --build-type=complete architecture=x86 address-model=64 stagein the boost directory in a MSVC prompt. (change the toolset to the version of MSVC you are using, and omit address-model and architecture for 32-bit) -
The steps following will assume the boost root directory is at
C:\boost_1_xx_0(your version might differ).
-
-
You may need to add lines to
C:\Program Files (x86)\CMake X.X\share\cmake-x.x\Modules\FindwxWidgets.cmake(x's are your version) for wxWidgets 3.* if it still complains that you haven't installed wxWidgets.-
Starting about line 277, you will have listed a few sets of library versions to search for like
wxbase29${_UCD}${_DBG} -
In 4 places, you will need to add above each line with a "29" a new line that is exactly the same, but with a "31" instead, assuming your version of wxWidgets is 3.1.*).
-
-
Other dependencies: OpenCV, JDK, Python, HDF5.
-
Download FluoRender using Git
git clone git@github.com:SCIInstitute/fluorender.git -
Use the
C:\Program Files(x86)\CMake2.8\bin\cmake-gui.exeprogram to configure build properties and generate your Visual Studio Solution file. (Remember to keep your MSVC version consistent)- Select your FluoRender source and build directories (create a new folder for building), and add the locations of boost and wxWidgets.
-
Choose the FluoRender main folder for source and create a new folder for the build.
-
Click Configure. NOTE: You may need to display advanced options to set below options.
-
Choose the build type
CMAKE_BUILD_TYPEto be "Debug" or "Release" -
Be sure to set
wxWidgets_LIB_DIRtoC:\wxWidgets\lib\vc_x64_lib. (this will differ from 32 bit) -
Be sure to set
wxWidgets_ROOT_DIRtoC:\wxWidgets. -
Be sure to set
Boost_INCLUDE_DIRtoC:\boost_1_xx_0(x's are your version). -
Click Generate.
-
You may also generate using the command prompt, but you must explicitly type the paths for the cmake command.
-
Open Visual Studio Command Prompt. Go to the CMakeLists.txt directory.
-
Type
cmake -G "Visual Studio 15 2017 Win64" -DwxWidgets_LIB_DIR="C:\wxWidgets\lib\vc_x64_lib" -DwxWidgets_ROOT_DIR="C:\wxWidgets" -DBoost_INCLUDE_DIR="C:\boost_1_xx_0" -DCMAKE_BUILD_TYPE="Debug" ..in your build directory (again assuming these are your directory locations / Generator versions, and the build folder is in the FluoRender root directory).
-
-
Open the Visual Studio SLN file generated by CMake (found in your "build" directory).
-
Build the solution. Use CMake to generate both "Release" and "Debug" configurations if you wish to build both in Visual Studio.
Notes for Visual Studio- Visual Studio may not set the correct machine target when building 64 bit.
Check
Project Properties -> Configuration Properties -> Linker -> Command line. Make sure "Additional Options" is/machine:X64NOT/machine:X86. - You may need to right-click FluoRender project on the Solution Explorer to "Set as StartUp Project" for it to run.
- If you are building on Windows 8 or later, you will need to set a Visual Studio Graphics Option. This enables the application to build in higher definition.
Project Properties -> Manifest Tool -> Input and Output -> Enable DPI Awareness -> Yes
- Visual Studio may not set the correct machine target when building 64 bit.
Check
- Select your FluoRender source and build directories (create a new folder for building), and add the locations of boost and wxWidgets.
