neurosynth / nsviewer

Neurosynth viewer
28 stars 22 forks source link

Switch to ndarray and collapse layers #23

Closed tyarkoni closed 9 years ago

tyarkoni commented 9 years ago

This PR closes #21 and #22. We switch from representing volumes as arrays-of-arrays-of-arrays to using 3D ndarrays. This provides a modest performance boost and enables much more compact code via modular plugins like ndarray-ops.

We also now collapse all layers before painting--i.e., instead of painting each layer separately to canvas, we alpha composite all layers into a single rgb ndarray, then blit the result to canvas once. This takes us from O(n) to nearly O(1) time as a function of number of layers loaded.

Note: we're now drawing on node libraries (ndarray and ndarray-ops); this is probably a good time to switch the other dependencies out too and use a more general packaging solution (e.g., browserify).