https://github.com/bluebrain/brayns

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

https://github.com/bluebrain/brayns

Science Score: 54.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: zenodo.org
  • Committers with academic emails
    15 of 30 committers (50.0%) from academic institutions
  • Institutional organization owner
    Organization bluebrain has institutional domain (portal.bluebrain.epfl.ch)
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.5%) to scientific vocabulary

Keywords

brain interactive json-rpc large-scale neurons neuroscience ospray pathtracing python raytracing visualization volume-rendering websockets

Keywords from Contributors

synapse morphology neuron glia mitochondria reticulum websocket-server websocket-library websocket-client rest-server
Last synced: 5 months ago · JSON representation

Repository

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

Basic Info
  • Host: GitHub
  • Owner: BlueBrain
  • License: lgpl-3.0
  • Language: C++
  • Default Branch: master
  • Homepage:
  • Size: 175 MB
Statistics
  • Stars: 301
  • Watchers: 21
  • Forks: 47
  • Open Issues: 0
  • Releases: 37
Topics
brain interactive json-rpc large-scale neurons neuroscience ospray pathtracing python raytracing visualization volume-rendering websockets
Created over 9 years ago · Last pushed about 1 year ago
Metadata Files
Readme Changelog License Authors

README.md

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 comes 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:

  • GCC 12.1 or higher (Requires C++ 20 support)
  • CMake 3.15 or higher
  • Make or Ninja build systems
  • Git
  • Package config
  • SSL Development files
  • Python 3.9 or higher
  • Custom OSPRay 2.10.5 (https://github.com/BlueBrain/ospray/tree/v2.10.5)
  • zlib

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.

  • Poco libraries 1.12.4 (https://github.com/pocoproject/poco/tree/poco-1.12.4-release)
  • spdlog 1.9.2 (https://github.com/gabime/spdlog/tree/v1.9.2)
  • stb (https://github.com/nothings/stb)
  • tinyexr (https://github.com/syoyo/tinyexr/tree/v1.0.1)
  • libsonata 0.1.22 (https://github.com/BlueBrain/libsonata/tree/v0.1.22)
  • MVDTool 2.4.4 (https://github.com/BlueBrain/MVDTool/tree/v2.4.4)
  • MorphIO 3.3.5 (https://github.com/BlueBrain/MorphIO/tree/v3.3.5)
  • Brion 3.3.14 (https://github.com/BlueBrain/Brion/tree/3.3.14)

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 :

  • BRAYNSTESTSENABLED (Default ON) - Activate unit tests
  • BRAYNSSERVICEENABLED (Default ON) - Activate braynsService app
  • BRAYNSCIRCUITEXPLORERENABLED (Default ON) - Activate CircuitExplorer plugin
  • BRAYNSDTIENABLED (Default OFF) - Activate Diffusion-Tensor Imaging plugin
  • BRAYNSATLASEXPLORERENABLED - (Default OFF) Activate AtlasExplorer plugin
  • BRAYNSCYLINDIRCCAMERAENABLED - (Default OFF) Activate Cylindric Camera projection plugin
  • BRAYNSMOLECULEEXPLORERENABLED (Default ON) - Activate MoleculeExplorer plugin

Running

Important: All the libraries on which Brayns depends must be reachable through the LDLIBRARYPATH 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

Owner

  • Name: The Blue Brain Project
  • Login: BlueBrain
  • Kind: organization
  • Email: bbp.opensource@epfl.ch
  • Location: Geneva, Switzerland

Open Source Software produced and used by the Blue Brain Project

GitHub Events

Total
  • Create event: 4
  • Release event: 1
  • Issues event: 2
  • Watch event: 11
  • Delete event: 3
  • Issue comment event: 3
  • Push event: 33
  • Pull request event: 10
  • Fork event: 1
Last Year
  • Create event: 4
  • Release event: 1
  • Issues event: 2
  • Watch event: 11
  • Delete event: 3
  • Issue comment event: 3
  • Push event: 33
  • Pull request event: 10
  • Fork event: 1

Committers

Last synced: 9 months ago

All Time
  • Total Commits: 1,354
  • Total Committers: 30
  • Avg Commits per committer: 45.133
  • Development Distribution Score (DDS): 0.699
Past Year
  • Commits: 17
  • Committers: 1
  • Avg Commits per committer: 17.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Daniel Nachbaur d****r@e****h 407
Cyrille Favreau c****u@e****h 287
Nadir Román Guerrero N****e 186
Adrien4193 3****3 171
Jonas Karlsson j****n@f****g 71
Roland Groza r****a@e****h 53
Juan Hernando Vieites j****o@e****h 50
Jonas Karlsson j****n@e****h 39
chevtche g****o@e****h 22
Raphael Dumusc r****c@e****h 19
ppodhajski p****i@g****m 13
Stefan Eilemann S****n@e****h 6
Devresse Adrien a****s 4
Matthias Wolf m****f@e****h 3
Sebastien Speierer s****s@g****m 3
Roland Groza r****u 3
Jafet Villafranca j****z@e****h 3
Judit j****c 2
++t t****e 1
tim t****t@e****h 1
Tristan Carel t****l@g****m 1
Tolokoban f****n@e****h 1
Sebastien Nicolas Speierer s****r@c****h 1
Cyrille Pierre Henri Favreau f****u@b****h 1
Ben Morrice b****e@e****h 1
Benoit Tassin 3****p 1
Jefferson Amstutz j****z@g****m 1
Stefan Eilemann e****n@g****m 1
Tolokoban c****t@t****g 1
luzpaz l****z 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 7 months ago

All Time
  • Total issues: 6
  • Total pull requests: 226
  • Average time to close issues: about 1 year
  • Average time to close pull requests: 1 day
  • Total issue authors: 5
  • Total pull request authors: 6
  • Average comments per issue: 3.5
  • Average comments per pull request: 0.06
  • Merged pull requests: 215
  • Bot issues: 0
  • Bot pull requests: 2
Past Year
  • Issues: 1
  • Pull requests: 18
  • Average time to close issues: 16 days
  • Average time to close pull requests: about 12 hours
  • Issue authors: 1
  • Pull request authors: 2
  • Average comments per issue: 2.0
  • Average comments per pull request: 0.06
  • Merged pull requests: 17
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • mahechine (1)
  • utkuoguzman (1)
  • straaljager (1)
  • MWolfR (1)
  • w815526955 (1)
Pull Request Authors
  • Adrien4193 (182)
  • NadirRoGue (70)
  • matz-e (4)
  • bbpgithubaudit (2)
  • dependabot[bot] (2)
  • mgeplf (1)
Top Labels
Issue Labels
nice to have (1)
Pull Request Labels
dependencies (2) python (2)

Packages

  • Total packages: 2
  • Total downloads:
    • npm 20 last-month
    • pypi 68 last-month
  • Total dependent packages: 1
    (may contain duplicates)
  • Total dependent repositories: 4
    (may contain duplicates)
  • Total versions: 35
  • Total maintainers: 2
npmjs.org: brayns

> A JavaScript/TypeScript interface for interacting with the [Brayns](https://github.com/BlueBrain/Brayns) rendering service.

  • Versions: 2
  • Dependent Packages: 1
  • Dependent Repositories: 3
  • Downloads: 20 Last month
Rankings
Stargazers count: 3.6%
Forks count: 4.1%
Dependent repos count: 6.3%
Average: 9.1%
Downloads: 10.6%
Dependent packages count: 20.9%
Maintainers (1)
Last synced: 5 months ago
pypi.org: brayns

Brayns Python API

  • Versions: 33
  • Dependent Packages: 0
  • Dependent Repositories: 1
  • Downloads: 68 Last month
Rankings
Stargazers count: 3.7%
Forks count: 6.0%
Dependent packages count: 10.1%
Average: 12.7%
Dependent repos count: 21.5%
Downloads: 21.9%
Maintainers (1)
Last synced: 6 months ago

Dependencies

.github/workflows/publish-python-client.yml actions
  • actions/checkout master composite
  • actions/setup-python v2 composite
  • pypa/gh-action-pypi-publish master composite
Dockerfile docker
  • ubuntu 22.04 build
python/requirements.txt pypi
  • Pillow *
  • PySimpleGUI *
  • black *
  • flake8 *
  • pyright *
  • sphinx *
  • sphinx-bluebrain-theme *
  • sphinx-jsonschema *
  • websockets *
python/setup.py pypi