• Stars
    star
    284
  • Rank 145,616 (Top 3 %)
  • Language
    C++
  • License
    GNU Lesser Genera...
  • Created over 8 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Visualizer for large-scale and interactive ray-tracing of neurons

Banner

DOI

Brayns is a large-scale scientific visualization platform. It is based on Intel OSPRAY to perform CPU Ray-tracing, which allows it to take full advantage of the underlying hardware where it runs.

It is based on a extension-plugin architecture. The core provides basic functionalities that can be reused and/or extended on plugins, which are independent and can be loaded or disabled at start-up. This simplifies the process of adding support for new scientific visualization use cases, without compromising the reliability of the rest of the software.

Brayns counts with a main application for its usage:

  • braynsService: A rendering backend which can be accessed over the internet and streams images to the connected clients.

Brayns also comes with some already-made plugins:

  • CircuitExplorer: The main plugin used at BBP. Allows for neuronal circuit visualization and simulation rendering.
  • DTI: A diffuse-tensor imaging visualization plugin.
  • AtlasExplorer: A plugin capable of interpreting and render NRRD volumes.
  • CylindricCamera: A plugin that adds a cylindric camera projection for inmersive environments.
  • MoleculeExplorer: A plugin that adds support for XYZ and PDB files.

Building

Brayns is developed, maintained and run on Linux-based operating systems, being tested mainly on RHEL and Ubuntu. The following platforms and build environments have been tested:

  • Linux: Ubuntu 16.04, Ubuntu 18.04, Ubuntu 20.04, Debian 9, RHEL 7 (Makefile, x64)

System dependencies

The following components must be installed on the system where Brayns will be built:

Optionally, to build the core plugins of Brayns, the following components are required.

  • HDF5 development files
  • Bzip2

Brayns uses further dependencies, but if they are not present on the system, it will download them by itself during build.

Build command

Once the given dependencies are installed, Brayns can be cloned and built as follows:

$ git clone https://github.com/BlueBrain/Brayns.git
$ cd Brayns && mkdir build && cd build
$ cmake .. -DCMAKE_BUILD_TYPE=Release \
  -DCMAKE_PREFIX_PATH=/path/to/OSPRay/cmake/config/folder
$ make -j

This will build the core of Brayns, the braynsService application, the CircuitExplorer plugin and the unit tests.

The following cmake options (shown with their default value) can be used during CMake build run to customize the components to build as -DVARIABLE=ON|OFF :

  • BRAYNS_TESTS_ENABLED (Default ON) - Activate unit tests
  • BRAYNS_SERVICE_ENABLED (Default ON) - Activate braynsService app
  • BRAYNS_CIRCUITEXPLORER_ENABLED (Default ON) - Activate CircuitExplorer plugin
  • BRAYNS_DTI_ENABLED (Default OFF) - Activate Diffusion-Tensor Imaging plugin
  • BRAYNS_ATLASEXPLORER_ENABLED - (Default OFF) Activate AtlasExplorer plugin
  • BRAYNS_CYLINDIRCCAMERA_ENABLED - (Default OFF) Activate Cylindric Camera projection plugin
  • BRAYNS_MOLECULEEXPLORER_ENABLED (Default ON) - Activate MoleculeExplorer plugin

Running

Important: All the libraries on which Brayns depends must be reachable through the LD_LIBRARY_PATH environmental variable, including plugin libraries.

braynsService application

To run the braynsService app, execute the following command (The command assumes braynsService executable is available on the system PATH):

$ braynsService --uri 0.0.0.0:5000

The --uri parameter allows to specify an address and a port to bind to. In the example, the service is binding to all available addresses and the port 5000.

This command will launch the braynsService app with only core functionality. To also add the functionality of any plugin, the --plugin option can be used to load plugins:

$ braynsService --uri 0.0.0.0:5000 --plugin braynsCircuitExplorer --plugin braynsMoleculeExplorer

The name that must be used when specifying a plugin will depend on the name of the library of the plugin (stripping the extension .so from it)

Using the Docker image

Brayns is available as a docker image at https://hub.docker.com/r/bluebrain/brayns. The image allows to launch the braynsService application.

It is built with every commit merged into the main repository branch (develop), and deployed into docker hub as brayns:latest. Furthermore, when a new release is made, and a new tag created, an additional image is built and deployed with the same tag.

To get Brayns docker image, you will need to have docker installed. Then execute the following command to download it:

$ docker pull bluebrain/brayns:latest

To run it, simply execute the following command:

$ docker run -ti --rm -p 5000:5000 bluebrain/brayns --uri 0.0.0.0:5000

Additional parameters, such as --plugin, can be specified in a similar fashion as in the braynsService application.

Python and JSON-RPC API

A running instance of braynsService can be monitored using brayns Python package or a websocket client and the JSON-RPC API.

For more details about the client APIs, see the python client doc.

Known Bugs

Please file a Bug Report if you find new issues which have not been reported already. If you find an already reported problem, please update the corresponding issue with your inputs and outputs.

Funding & Acknowledgment

The development of this software was supported by funding to the Blue Brain Project, a research center of the École polytechnique fédérale de Lausanne (EPFL), from the Swiss government’s ETH Board of the Swiss Federal Institutes of Technology.

This project has received funding from the European Union’s FP7-ICT programme under Grant Agreement No. 604102 (Human Brain Project RUP).

This project has received funding from the European Union's Horizon 2020 Framework Programme for Research and Innovation under the Specific Grant Agreement No. 720270 (Human Brain Project SGA1).

License

Brayns is licensed under the LGPL, unless noted otherwise, e.g., for external dependencies. See file LICENSE.txt for the full license.

Copyright (c) 2008-2023 Blue Brain Project/EPFL

This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 3 as published by the Free Software Foundation.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA

More Repositories

1

HighFive

HighFive - Header-only C++ HDF5 interface
C++
675
star
2

nexus

Blue Brain Nexus - A knowledge graph for data-driven science
Scala
269
star
3

BluePyOpt

Blue Brain Python Optimisation Library
Python
196
star
4

CoreNeuron

Simulator optimized for large scale neural network simulations.
C++
135
star
5

NeuroMorphoVis

A lightweight, interactive, extensible and cross-platform framework for building, visualizing and analyzing digital reconstructions of neuronal morphology skeletons extracted from microscopy stacks.
Python
126
star
6

NeuroM

Neuronal Morphology Analysis Tool
Python
102
star
7

eFEL

Electrophys Feature Extraction Library
Python
63
star
8

BioExplorer

The Blue Brain BioExplorer (BBBE) is a tool for data visualization experts and scientists to extract and analyze scientific data from visualization and interactive exploration
C++
61
star
9

nmodl

Code Generation Framework For NEURON MODeling Language
C++
55
star
10

Tide

Tiled Interactive Display Environment
C++
47
star
11

MOOC-neurons-and-synapses-2017

Reference data for the "Simulation Neuroscience:Neurons and Synapses" Massive Online Open Course
Jupyter Notebook
43
star
12

Search

Blue Brain text mining toolbox for semantic search and structured information extraction
Python
40
star
13

Rockets

REST and websockets C++ library
C++
39
star
14

nexus-forge

Building and Using Knowledge Graphs made easy
Python
38
star
15

NeuroTS

Topological Neuron Synthesis
Python
36
star
16

VessMorphoVis

A lightweight, interactive, extensible and cross-platform framework for building, visualizing and analyzing vasculature (or blood vessels) morphologies.
Python
35
star
17

BlueGraph

Python framework for graph analytics and co-occurrence analysis
Python
31
star
18

Livre

Large-scale Interactive Volume Rendering Engine
C++
31
star
19

RTNeuron

Interactive visualization framework for geometrically detailed neuron simulations
C++
30
star
20

TMD

A python package for the topological analysis of neurons.
Python
28
star
21

MorphIO

A python and C++ library for reading and writing neuronal morphologies
C++
26
star
22

SimulationTutorials

Public tutorials around electrophysiological simulations
Jupyter Notebook
26
star
23

Ultraliser

Reconstruction of watertight meshes, annotated volumes and center line skeletons of neuroscience spatial structures from non-watertight inputs, segmented masks, skeletons of NGV morphologies and volumes.
C++
26
star
24

bluima

Natural Language Processing Toolkit for Neuroscience
Java
24
star
25

Brion

Blue Brain C++ File IO Library
C++
23
star
26

Deflect

C++ library for building applications to stream pixels to Tide
C++
21
star
27

bbp-nixpkgs

Blue Brain Project nixpkgs configuration - Build a brain with Nix
Nix
19
star
28

snap

The Blue Brain Pythonic Simulation and Network Analysis Productivity layer
Python
17
star
29

Atlas-Download-Tools

Search, download, and prepare brain atlas data.
Python
17
star
30

nexus-web

Nexus Web is the interface of Blue Brain Nexus
TypeScript
16
star
31

nexus-kg

Nexus KnowledgeGraph Service
Scala
16
star
32

neurocurator

Desktop application (GUI) to perform systematic and collaborative curation of neuroscientific literature.
Python
15
star
33

osgTransparency

OSG render bins for transparent geometry
C
14
star
34

BluePyEfe

BluePyEfe: Blue Brain Python E-feature extraction
Python
14
star
35

EModelRunner

Runs cells from stand-alone packages.
Python
14
star
36

BlueCelluLab

Biologically detailed neural network simulations and analysis API
Python
12
star
37

BluePyMM

Blue Brain Python Cell Model Management
Python
12
star
38

cyme

Framework to facilitate SIMD programming, without any tedious SIMD intrinsics.
C++
12
star
39

libsonata

A python and C++ interface to the SONATA format
C++
11
star
40

atlas-alignment

Blue Brain multi-modal registration and alignment toolbox
Python
11
star
41

dash

Data Access and Sharing
C++
10
star
42

Long-range-micro-connectome

BlueBrain's recipe writer to parameterize structure and logic of a mouse whole-neocortex connectome
Python
10
star
43

nexus-js

A set of JavaScript libraries built on top of Nexus
TypeScript
10
star
44

bluebrain.github.com

API documentation for BlueBrain projects:
HTML
10
star
45

nexus-bbp-domains

BBP domains specification (schemas, vocabularies)
Scala
9
star
46

NeuroR

A collection of tools to repair morphologies
Python
9
star
47

neurodamus

A BBP Simulation Control application for NEURON
Python
8
star
48

singlecell-emodel-suite

8
star
49

luigi-tools

Extra tools to work with the Luigi library
Python
8
star
50

learning_musculoskeletal_arm_control

This repository contains the source code of the paper titled "Optimum trajectory learning in musculoskeletal systems with model predictive control and deep reinforcement learning".
Python
8
star
51

AstroVascPy

Vasculature blood flow computation and impact of astrocytic endfeet on vessels
Python
8
star
52

MOOC-hippocampus-network-simulation-2019

Jupyter Notebook
8
star
53

morphoclass

Neuronal morphology preparation and classification using Machine Learning.
Python
7
star
54

nat

Python module to use the annotations created with NeuroCurator, for example in a Jupyter notebook.
Jupyter Notebook
7
star
55

morph-tool

Python
7
star
56

spack-packages

Repository of spack external packages
Python
7
star
57

hpc-coding-conventions

Python
7
star
58

Pydoxine

Python docstring generation for C++ projects using boost::python
Python
7
star
59

data-validation-framework

Simple framework to create data validation workflows.
Python
7
star
60

SSCxEModelExamples

Jupyter Notebook
7
star
61

nexus-prov

SHACL shapes for W3C PROV-O
Scala
7
star
62

Currentscape

Currentscape is a Python tool enabling scientists to easily plot the currents in electrical neuron models. The code is based on the paper Alonso and Marder, 2019.
Python
7
star
63

nexus-search-webapp

The Searchable Knowledge-Graph Application
JavaScript
6
star
64

nexus-python-sdk

A Python API to interface with Nexus REST API
Python
6
star
65

voxcell

Tools to work with voxel based brain atlases.
Python
5
star
66

bluepyentity

Manage entities within the knowledge graph
Jupyter Notebook
5
star
67

blueetl

Multiple simulations analysis tool
Python
5
star
68

nexus-iam

Nexus IAM Service
Scala
5
star
69

Deep-Atlas

Python
5
star
70

dir-content-diff

Simple tool to compare directory contents and get differences using smart comparators.
Python
5
star
71

ConnectomeUtilities

Connectome Utilities
Python
5
star
72

me-features-to-mo-ID-mapping

Python
4
star
73

Monsteer

Interactive Supercomputing Tools and Library
C++
4
star
74

BluePyEModel

Blue Brain Python Electrical Modeling Pipeline
Python
4
star
75

hippocampus-workshop

Jupyter Notebook
4
star
76

morphology-suite

4
star
77

BlueNaaS-Subcellular

A web environment for the simulation of brain molecular networks.
Vue
4
star
78

atlas-annotation

Align and improve brain annotation atlases
Python
4
star
79

morphology-workflows

Workflows used for morphology processing.
Python
4
star
80

basalt

C++11 Graph Storage library
C++
4
star
81

sphinx-bluebrain-theme

The Blue Brain Project's documentation theme.
HTML
4
star
82

codash

Collage-based distribution of DASH entities
C++
4
star
83

neuromapp

The neuromapp library reproduces the algorithms of the main software of the BBP as a collection of mini-apps
C++
4
star
84

EMSim

EMSim is a library that compute different electro-magnetic effects like LPF and VSD.
C++
3
star
85

atlas-direction-vectors

Tools to compute direction vectors in the context of brain atlases.
Python
3
star
86

nexus-service

Building blocks commonly used in Nexus services
Scala
3
star
87

emodel-generalisation

Generalisation of electrical models of neurons with MCMC
Python
3
star
88

morphology-documentation

Morphology Specifications used at BBP
Makefile
3
star
89

RenderingResourceManager

A Python based service managing rendering resources for visualization web services
Python
3
star
90

nexus-cli

A Command Line Interface (CLI) for Nexus
Python
3
star
91

sbt-nexus

An SBT Plugin for building Nexus Scala based projects
Scala
3
star
92

DMT

Python
3
star
93

atlas-densities

Tools to compute densities in the context of brain atlases.
Python
3
star
94

git-cmake-format

CMake
3
star
95

diameter-synthesis

Synthesize diameters of neuronal morphologies
Python
3
star
96

mod2c

Converter for mod files to C code
C
3
star
97

neurox

A parallel & distributed asynchronous simulator of extended Hodgkin-Huxley neuron models
C++
3
star
98

neuroagent

LLM agent made to communicate with different neuroscience related tools
Python
3
star
99

me-types-mapper

Python
2
star
100

bluima_resources

Resource files for bluima
2
star