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);