docs: function orthoProj(pos, cam){
      var cp = cam.pos;
      var vx = pos.x - cp.x;
      var vy = pos.y - cp.y;
      var vz = pos.z - cp.z;
      var cr = cam.rot;
      var crx = cr.x;
      var cry = cr.y;
      var crz = cr.z;
      var crw = cr.w;
      var caxx = crw * crw - crx * -crx + crz * - crz + cry * - cry;
      var caxy = crz * crw - crx * -cry - cry * - crx - crw * - crz;
      var caxz = -cry * crw - crx * -crz + crw * - cry - crz * - crx;
      var cayx = -crz * crw - cry * -crx + crw * - crz - crx * - cry;
      var cayy = crw * crw - cry * -cry + crx * - crx + crz * - crz;
      var cayz = crx * crw - cry * -crz - crz * - cry - crw * - crx;
      var cazx = cry * crw - crz * -crx - crx * - crz - crw * - cry;
      var cazy = -crx * crw - crz * -cry + crw * - crx - cry * - crz;
      var cazz = crw * crw - crz * -crz + cry * - cry + crx * - crx;
      var nd = vx * cayx + vy * cayy + vz * cayz;
      var nx = nd * cayx;
      var ny = nd * cayy;
      var nz = nd * cayz;
      var ppx = vx - nx;
      var ppy = vy - ny;
      var ppz = vz - nz;
      var x = ppx * caxx + ppy * caxy + ppz * caxz;
      var y = ppx * cazx + ppy * cazy + ppz * cazz;
      return V3(x, y, nd);
    }