fruitflybrain / neu3d

A javascript 3D visualization engine for neural data in SWC format
7 stars 8 forks source link

Neu3D SWC visualization for fruitfly

Installation

npm install
npm run build

Test

Serve a HTML site from root of folder.

If using python3, in project root

python -m http.server

Usage

The module can be imported according to ES6 syntax as follows:

import Neu3D from 'neu3d';

Instantiate the visualization object by passing a HTMLDivElement with class vis-3d to it along with other optional configurations:

var ffbomesh = new Neu3D(
    parentDiv,  // parent div object with class `vis-3d`
    undefined,  // optionally add initalization JSON data
    { "globalCenter": { 'x': 0, 'y': -250, 'z': 0 } },  // optional metadata
    false);  // display stats panel on top left

window.ffbomesh = ffbomesh; // exposing to global namespace if desired

$.getJSON("./data/data.json", (json) => {
    ffbomesh.addJson({
        ffbo_json: json,
        showAfterLoadAll: true
    });
});

Consumption Example

  1. Global The class Neu3D is available if script is loaded as script tag. See index.html.
  2. ES6 See Usage section.
  3. TypeScript import Neu3D = require('neu3d');

Expected Formats

There are two ways to visualize: upload a file, or call ffbomesh.addJson with a json.

neu3D takes files of the following format:

Mesh:

A json file with the following dict items example

Neuron:

An SWC file with columns in the following order example1 example2:

In addition to SWC files, a neuron mesh in GLTF format, with '.gltf' extension, can also be visualized example.

Synapse:

A .syn file defined as a csv file with the columns in the following order example:

The last four columns are optional.

To call ffbomesh.addJson, the json input should be of the following format:

Mesh: a dict with the following fields:

Neuron: a dict with the following fields:

Synapse: a dict with the following fields:

Authors

This library is developed and maintained by:

Developer Emeriti:

Acknowledgements

A part of this library is inspired by the Sharkviewer project, developed at the Janelia Research Campus.