VIMEO IS 1080P due to file size constraints the 4K video is available free for download || stay tuned for interactivity

DOWNLOAD MP4-4K SQUARE
2160×2160 829MB [4K VIDEO]

DOWNLOAD MP4-1080P SQUARE
1080×1080 408MB [iPhone 7 and less]

THE FUNCTIONS :

function ToFractionDoubleSixteenths(value) { // denominator is fixed var denominator = 16; //var denominator = 128; // integer part, can be signed: 1, 0, -3,... var integer = parseInt(value); // numerator: always unsigned (the sign belongs to the integer part) // + 0.5 – rounding, nearest one: 37.9 / 64 -> 38 / 64; 38.01 / 64 -> 38 / 64 var numerator = parseInt(((Math.abs(value) Math.abs(integer)) * denominator + 0.5)); // some fractions, e.g. 24 / 64 can be simplified: // both numerator and denominator can be divided by the same number // since 64 = 2 ** 6 we can try 2 powers only // 24/64 -> 12/32 -> 6/16 -> 3/8 // denominator /= factor; // numerator /= factor; while ((numerator % 2 == 0) && (denominator % 2 == 0)) { numerator /= 2; denominator /= 2; } // The longest part is formatting out // if we have an actual, not degenerated fraction (not, say, 4 0/1) if (denominator > 1) if (integer != 0) // all three: integer + numerator + denominator return (integer + " AND " + numerator + "/" + denominator); else if (value < 0) // negative numerator/denominator, e.g. -1/4 return ("-" + numerator + "/" + denominator); else // positive numerator/denominator, e.g. 3/8 return (numerator + "/" + denominator); else return integer; // just an integer value, e.g. 0, -3, 12… }

function gcd_two_numbers(x, y) { if ((typeof x !== 'number') || (typeof y !== 'number')) return false; x = Math.abs(x); y = Math.abs(y); while(y) { var t = y; y = x % y; x = t; } return x;}function ToFractionDoubleDouble(value) { // denominator is fixed var denominator = 9007199254740992; //64-bit double whole number max value + 1 represented in base10 //var denominator = 128; // integer part, can be signed: 1, 0, -3,... var integer = parseInt(value); // numerator: always unsigned (the sign belongs to the integer part) // + 0.5 – rounding, nearest one: 37.9 / 64 -> 38 / 64; 38.01 / 64 -> 38 / 64 var numerator = parseInt(((Math.abs(value) Math.abs(integer)) * denominator + 0.5)); // some fractions, e.g. 24 / 64 can be simplified: // both numerator and denominator can be divided by the same number // since 64 = 2 ** 6 we can try 2 powers only // 24/64 -> 12/32 -> 6/16 -> 3/8 var factor = gcd_two_numbers(denominator, numerator); // denominator /= factor; // numerator /= factor; while ((numerator % factor == 0) && (denominator % factor == 0)) { numerator /= factor; denominator /= factor; } // The longest part is formatting out // if we have an actual, not degenerated fraction (not, say, 4 0/1) if (denominator > 1) if (integer != 0) // all three: integer + numerator + denominator return (integer + " AND " + numerator + "/" + denominator); else if (value < 0) // negative numerator/denominator, e.g. -1/4 return ("-" + numerator + "/" + denominator); else // positive numerator/denominator, e.g. 3/8 return (numerator + "/" + denominator); else return integer; // just an integer value, e.g. 0, -3, 12… }

THE SOLVES – Perspective depths

console.log('RIGHT: ' + ToFractionDoubleSixteenths(6.44117647058824 * 0.5) + ' INCHES'); console.log('LEFT: ' + ToFractionDoubleSixteenths(6.117647058823534 * 0.5) + ' INCHES'); console.log('CENTER: ' + ToFractionDoubleSixteenths(1.73529411764706 * 0.5) + ' INCHES');

THE SOLVES – The constant calculator

console.log('π: ' + ToFractionDoubleDouble(3.1415926535897932384626433832795028841971693993751)); console.log('e: ' + ToFractionDoubleDouble(2.71828182845904523536028747135266249775724709369995)); console.log('i: ' + ToFractionDoubleDouble(1.41421356237309504880168872420969807856967187537694807317667973799)); console.log('g: ' + ToFractionDoubleDouble(3.577215664901532860606512090082)); //3 is added so above 1.0 REMOVE LATER! console.log('φ: ' + ToFractionDoubleDouble(1.6180339887498948482045868343656381177203091798057628621354486227));