View bb.jsonp
f({
"tileSources": [
{
"width": 6572,
"tileSize": 256,
"getTileUrl": "function(level,x,y){ return \"ftp://bigbrain.loris.ca/BigBrainRelease.2015/2D_Final_Sections/Coronal/Dzi/pm2886o_files/\"+level+\"/\"+x+\"_\"+y+\".png\"}",
"tileOverlap": 0,
"height": 5711
}
],
View bigbrain_slice.jsonp
f()(return {
"pixelsPerMeter": 1000000,
"tileSources": [
"ftp://bigbrain.loris.ca/BigBrainRelease.2015/2D_Final_Sections/Coronal/Dzi/pm0001o.dzi"
]
};)
View plot_anat.py
def plot_anat(img,output_file=None,vmax=None):
sh=img.get_data().shape
midvox=[sh[0]/2,sh[1]/2,sh[2]/2,1]
worldmidvox=img.affine.dot(midvox)
if vmax is None:
data=img.get_data().ravel()
data=data[data>data.max()*0.2]
vmax=data[range(0,len(data),len(data)/1000)].max()
plotting.plot_anat(img,vmax=vmax,cut_coords=worldmidvox[:3],output_file=output_file)
View make-a-box.js
// the box geometry to initialise
var box=new THREE.Geometry();
// the trick to make all faces: vectors i, j and k have the coordinates of the triangles in the box
var i="011010111111100101000000001011110100".split('').map(c=>(c=='0')?0:1),
j="000000011010111111100101011010011010".split('').map(c=>(c=='0')?0:1),
k="001011001011001011001011000000111111".split('').map(c=>(c=='0')?0:1);
// this function multiplies each of the coordinates by a transformation matrix that turns them
// into an arbitrary box
View file.md

A programmatic gist

View hash.js
/*
Given the string str, produce a shorter random hash.
Different strings could produce the same hash, although
this is unlikely.
*/
function hash(str) {
var i,v0,v1,abc="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
v0=0;
for(i=0;i<str.length;i++) {
v1=str.charCodeAt(i);