Skip to main content

Neuroglancer: Web-based volumetric data visualization

License PyPI Build DOI

Neuroglancer is a WebGL-based viewer for volumetric data. It is capable of displaying arbitrary (non axis-aligned) cross-sectional views of volumetric data, as well as 3-D meshes and line-segment based models (skeletons).

Refer to the documentation website at https://neuroglancer-docs.web.app for more details.

This is not an official Google product.

Examples

A live demo is hosted at https://neuroglancer-demo.appspot.com. (The prior link opens the viewer without any preloaded dataset.) Use the viewer links below to open the viewer preloaded with an example dataset.

The four-pane view consists of 3 orthogonal cross-sectional views as well as a 3-D view (with independent orientation) that displays 3-D models (if available) for the selected objects. All four views maintain the same center position. The orientation of the 3 cross-sectional views can also be adjusted, although they maintain a fixed orientation relative to each other. (Try holding the shift key and either dragging with the left mouse button or pressing an arrow key.)

Supported data sources

Neuroglancer itself is purely a client-side program, but it depends on data being accessible via HTTP in a suitable format. It is designed to easily support many different data sources, and there is existing support for the following data APIs/formats:

Supported browsers

  • Chrome >= 51
  • Firefox >= 46
  • Safari >= 15.0

Keyboard and mouse bindings

For the complete set of bindings, see src/ui/default_input_event_bindings.ts, or within Neuroglancer, press h or click on the button labeled ? in the upper right corner.

  • Click on a layer name to toggle its visibility.

  • Double-click on a layer name to edit its properties.

  • Hover over a segmentation layer name to see the current list of objects shown and to access the opacity sliders.

  • Hover over an image layer name to access the opacity slider and the text editor for modifying the rendering code.

Troubleshooting

  • Neuroglancer doesn't appear to load properly.

    Neuroglancer requires WebGL (2.0) and the EXT_color_buffer_float extension.

    To troubleshoot, check the developer console, which is accessed by the keyboard shortcut control-shift-i in Firefox and Chrome. If there is a message regarding failure to initialize WebGL, you can take the following steps:

    • Chrome

      Check chrome://gpu to see if your GPU is blacklisted. There may be a flag you can enable to make it work.

    • Firefox

      Check about:support. There may be webgl-related properties in about:config that you can change to make it work. Possible settings:

      • webgl.disable-fail-if-major-performance-caveat = true
      • webgl.force-enabled = true
      • webgl.msaa-force = true
  • Failure to access a data source.

    As a security measure, browsers will in many prevent a webpage from accessing the true error code associated with a failed HTTP request. It is therefore often necessary to check the developer tools to see the true cause of any HTTP request error.

    There are several likely causes:

    • Cross-origin resource sharing (CORS)

      Neuroglancer relies on cross-origin requests to retrieve data from third-party servers. As a security measure, if an appropriate Access-Control-Allow-Origin response header is not sent by the server, browsers prevent webpages from accessing any information about the response from a cross-origin request. In order to make the data accessible to Neuroglancer, you may need to change the cross-origin request sharing (CORS) configuration of the HTTP server.

    • Accessing an http:// resource from a Neuroglancer client hosted at an https:// URL

      As a security measure, recent versions of Chrome and Firefox prohibit webpages hosted at https:// URLs from issuing requests to http:// URLs. As a workaround, you can use a Neuroglancer client hosted at a http:// URL, e.g. the demo client running at http://neuroglancer-demo.appspot.com, or one running on localhost. Alternatively, you can start Chrome with the --disable-web-security flag, but that should be done only with extreme caution. (Make sure to use a separate profile, and do not access any untrusted webpages when running with that flag enabled.)

Multi-threaded architecture

In order to maintain a responsive UI and data display even during rapid navigation, work is split between the main UI thread (referred to as the "frontend") and a separate WebWorker thread (referred to as the "backend"). This introduces some complexity due to the fact that current browsers:

  • do not support any form of shared memory or standard synchronization mechanism (although they do support relatively efficient transfers of typed arrays between threads);
  • require that all manipulation of the DOM and the WebGL context happens on the main UI thread.

The "frontend" UI thread handles user actions and rendering, while the "backend" WebWorker thread handle all queuing, downloading, and preprocessing of data needed for rendering.

Documentation Index

Building

node.js is required to build the viewer.

  1. First install NVM (node version manager) per the instructions here:

https://github.com/creationix/nvm

  1. Install a recent version of Node.js if you haven't already done so:

    nvm install stable

  2. Install the dependencies required by this project:

    (From within this directory)

    npm i

    Also re-run this any time the dependencies listed in package.json may have changed, such as after checking out a different revision or pulling changes.

  3. To run a local server for development purposes:

    npm run dev-server

    This will start a server on http://localhost:8080.

  4. To run the unit test suite on Chrome:

    npm test

  5. See package.json for other commands available.

Discussion Group

There is a Google Group/mailing list for discussion related to Neuroglancer: https://groups.google.com/forum/#!forum/neuroglancer.

Related Projects

Contributing

Want to contribute? Great! First, read CONTRIBUTING.md.

License

Copyright 2016 Google Inc.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this software except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Metadata

Release files for neuroglancer 2.41.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for neuroglancer 2.41.2
File Size Uploaded
neuroglancer-2.41.2.tar.gz 4.8 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for neuroglancer 2.41.2
File
neuroglancer-2.41.2-cp310-abi3-win_amd64.whl CPython 3.10 abi3 Windows x86-64 Details
neuroglancer-2.41.2-cp310-abi3-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.10 abi3 Linux glibc 2.24+ x86-64, Linux glibc 2.28+ x86-64 Details
neuroglancer-2.41.2-cp310-abi3-macosx_11_0_arm64.whl CPython 3.10 abi3 macOS 11.0+ ARM64 Details
neuroglancer-2.41.2-cp310-abi3-macosx_10_9_x86_64.whl CPython 3.10 abi3 macOS 10.9+ x86-64 Details

Total release size: 24.2 MB

Release files / neuroglancer-2.41.2.tar.gz

Download URL neuroglancer-2.41.2.tar.gz
Size 4.8 MB
Tags Source
SHA-256 checksum
How to use checksums
2c519da54169d141053e14940115f4b4cbdf88d24a9114cd3ae236ea62f16216
BLAKE2b-256 checksum
How to use checksums
3d8f0d592fe1f0433c4c6428c5023b38c96b398c9f605091c096dcd92f8198c9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.8.20

Release files / neuroglancer-2.41.2-cp310-abi3-win_amd64.whl

Download URL neuroglancer-2.41.2-cp310-abi3-win_amd64.whl
Size 4.4 MB
Tags CPython 3.10 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
7d26c83429b753969fc19b52ec49da34cd14369ec7aeba49d104b3e0514e5cd1
BLAKE2b-256 checksum
How to use checksums
d19ca80447cd627af8cec3263ddb5591aa58dd85ec73b4cfd051eeea2fe2f883
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.8.20

Release files / neuroglancer-2.41.2-cp310-abi3-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL neuroglancer-2.41.2-cp310-abi3-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 6.0 MB
Tags CPython 3.10 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64 abi3
SHA-256 checksum
How to use checksums
fbfab095d4e11c103c6beb4109aaa6f6bd910cf187e406bc181e53a66721a08b
BLAKE2b-256 checksum
How to use checksums
aa058a699e19dc5f3549042cac25aa378240c9850ef453ff63609a91d256748b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.8.20

Release files / neuroglancer-2.41.2-cp310-abi3-macosx_11_0_arm64.whl

Download URL neuroglancer-2.41.2-cp310-abi3-macosx_11_0_arm64.whl
Size 4.5 MB
Tags CPython 3.10 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
ef17138bc2b53556ed5026049127eb1b607c7d6ad7e6b8700d7ef7deab36938e
BLAKE2b-256 checksum
How to use checksums
fd31aeeb597e920204d970f0b304a0bff6cd1d37a60919466ddd21aae4fb7a71
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.8.20

Release files / neuroglancer-2.41.2-cp310-abi3-macosx_10_9_x86_64.whl

Download URL neuroglancer-2.41.2-cp310-abi3-macosx_10_9_x86_64.whl
Size 4.5 MB
Tags CPython 3.10 abi3 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
39602ba0c3146384c9c4ff78e36c2154c5fb72f07ffefaec24946e64aea5c5b9
BLAKE2b-256 checksum
How to use checksums
7904f0669059db552d2e99d2e56f19260088822baf578e1172b055ac2ea5b227
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.8.20

Release history Release notifications | RSS feed

This release

2.41.2 This release

5 release files

2.40.1

5 release files

2.39.2

5 release files

2.39.1

5 release files

2.39

17 release files

2.38

17 release files

2.37

17 release files

2.36

25 release files

2.35

25 release files

2.34

25 release files

2.33

25 release files

2.32

25 release files

2.31

25 release files

2.30

25 release files

2.29

17 release files

2.28

17 release files

2.27

17 release files

2.22

16 release files

2.21

16 release files

2.20

16 release files

2.19

16 release files

2.18

16 release files

2.17

1 release file

2.16

1 release file

2.15

1 release file

2.14

1 release file

2.13

1 release file

2.12

1 release file

2.11

1 release file

2.10

1 release file

2.9

1 release file

2.8

1 release file

2.7

1 release file

2.6

1 release file

2.5

1 release file

2.4

1 release file

2.3

1 release file

2.2

1 release file

2.1

1 release file

2.0

1 release file

1.1.6

1 release file

1.1.4

1 release file

1.1.3

1 release file

1.1.2

1 release file

1.1.1

1 release file

1.1.0

1 release file

1.0.15

1 release file

1.0.14

1 release file

1.0.13

1 release file

1.0.12

1 release file

1.0.11

1 release file

1.0.10

1 release file

1.0.9

1 release file

1.0.8

1 release file

1.0.7

1 release file

1.0.6

1 release file

1.0.5

1 release file

1.0.4

1 release file

1.0.3

1 release file

1.0.2

1 release file

1.0.1

1 release file

0.0.8

1 release file

0.0.7

1 release file

0.0.6

1 release file

0.0.5

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page