FlyWire Codex Table animation
Gallery The fly Open Codex

Make your own. FlyWire FAFB v783 and BANC v888, meshes streamed from FlyWire

Play a table on the real cells

Give it a list of cells and a table with three columns, timestep, neuron ID, firing rate, and it plays the table on the cells in neuroglancer: each cell's colour and brightness follow its rate, and where FlyWire has a skeleton a pulse runs along the arbor each time the cell comes on. Model output, a recording, or a story you wrote by hand, the table does not care. Press Share and the link carries the cells and the table.

The meshes are FlyWire's own, streamed from the public buckets; nothing is downloaded or simplified here. Load an example, the whole path of The palm, or pick anything in the gallery.

The table

One CSV: timestep, neuron ID, firing rate

Comma, tab or space separated. With a header the columns are found by name, in any case and any order (anything like time, step or frame; neuron, root or id; rate, firing, activity or value). Without one they are read in this order. A row is one cell at one timestep; a cell with no row at a timestep is at rate 0; between two timesteps the rate is interpolated. Brightness is the rate over the table's largest rate, so units do not matter, and a rate of 0 leaves the cell dark in its own colour. Optional columns in the same file: label, colour (hex) and dataset (fafb783 or banc888).

timestep,neuron ID,firing rate
0,720575940617672226,0
50,720575940617672226,148.1
100,720575940617672226,148.1
0,720575940624452902,0
50,720575940624452902,0
100,720575940624452902,131.4

Download the example: palm.table.csv, The palm's whole path, 83 cells and 5,809 rows, with the label, colour and dataset columns filled in. Every gallery entry has the same file, and a cell list beside it.

The optional cell list

Only needed for cells the table never names, or to keep colours and labels in a second file. Root ids from FlyWire FAFB v783 or BANC v888, one per line; a CSV with a header may add a dataset, a colour (hex) and a label; cells sharing a label share a colour when none is given. A line that is not a root id is read as a Codex type query on FAFB v783: cell_type == LC4 or plain LC4.

neuron ID,dataset,colour,label
720575940617672226,fafb783,#4fd9bd,LPsP
720575940624452902,fafb783,#4fd9bd,LPsP
720575940619169518,fafb783,#2a78d6,Delta7

The pulse along the arbor is drawn for the first 40 cells that have a skeleton, and starts each time a cell's rate rises above half its own peak, travelling for as long as it stays above. It is a rendering of the table's onsets, not a measurement of conduction.

What this can and cannot say

The page shows whatever table it is given. It does not know whether the rates are a recording, a model's prediction or a story written by hand; say which when you share a link. The cells are drawn from FlyWire's public meshes for FAFB v783 and BANC v888, and a root id from another version of either dataset will not be found. FAFB and BANC are two different flies in two different coordinate frames, so a table that mixes them plays one dataset at a time.

Neuroglancer runs here as a library, version 2.41.2, built by scripts/build_neuroglancer.py into 1.8 MB of files under vendor/neuroglancer: only the precomputed data source and the segmentation, annotation and image layers are compiled in. A share link holds the whole table compressed when it fits; a large table needs to be hosted somewhere public and loaded by URL.

Data: FlyWire, Dorkenwald, Matsliah, Sterling, Schlegel, Yu, McKellar et al., Nature 2024, and Schlegel, Yin, Bates et al., Nature 2024, FAFB v783 public release; BANC v888 public meshes, Bates, Phelps, Kim, Yang et al., Nature 2026. Skeletons: the FlyWire 783 skeletons served by the flyem.mrc-lmb.cam.ac.uk mirror and the BANC public SWC files. Viewer: neuroglancer, Apache-2.0. Interface: scifi-ui.