Untitled

 avatar
unknown
javascript
4 years ago
47 kB
7
Indexable
// En[Cryptómapa]s

let url =
  "https://api.coingecko.com/api/v3/coins/markets?vs_currency=usd&order=market_cap_desc&per_page=100&page=1&sparkline=false";
let div;
let backColor;
let title;
let caller;
let container;
let camera;
let renderer;
let scene;
let mesh;
let controls;
let raycaster;
let mouse;
let canvas;
let coins = [];
let grid = [];
let font;
let displayFunctions = [];
let hideFunctions = [];

function Coin(data) {
  this.data = data;
  this.position;
  this.geometries = [];
  this.meshes = [];
  this.materials = [];
  this.speed;
  this.rank;
  this.price;
  this.low24;
  this.high24;
  this.supply;
  this.symbol;
  
  this.display = function (x, y) {
    this.rank = createElement("p", "Market Rank: " + this.data.market_cap_rank);
    this.rank.position(x, y);
    this.rank.style("color", "#FAEBD7");
    this.rank.style("font-family", font);
    this.price = createElement(
      "p",
      "Current Price: " + this.data.current_price
    );
    this.price.position(x, y + 30);
    this.price.style("color", "#FAEBD7");
    this.price.style("font-family", font);
    this.low24 = createElement("p", "Low 24hs: " + this.data.low_24h);
    this.low24.position(x, y + 60);
    this.low24.style("color", "#FAEBD7");
    this.low24.style("font-family", font);
    this.high24 = createElement("p", "High 24hs: " + this.data.high_24h);
    this.high24.position(x, y + 90);
    this.high24.style("color", "#FAEBD7");
    this.high24.style("font-family", font);
    this.supply = createElement(
      "p",
      "Price Change % 24hs: " + this.data.price_change_percentage_24h
    );
    this.supply.position(x, y + 120);
    this.supply.style("color", "#FAEBD7");
    this.supply.style("font-family", font);
  };
}

function preload() {
  load();
  for (var i = 0; i < 100; i++) {
    coins[i] = new Coin("data");
  }
  font = loadFont("fonts/Roboto-Regular.ttf");
}
function setup() {
  rectMode(CENTER);
  canvas = createCanvas(windowWidth, windowHeight);
  canvas.position(0, 0);
  canvas.style("z-index", "1");
  div = createElement("div");
  div.style("color", "white");
  div.style("font-size", "30px");
  title = select("#title");
  title.style("color", "grey");
  title.style("font-family", font);
  title.style("font-size", "77px");
  createGrid();
  for (var i = 0; i < 8; i++) {
    coins[i].symbol = createElement("p", coins[i].data.symbol);
    if (coins[i].data.market_cap_rank == 1) {
      coins[i].position = createVector(-8, 5.1, 0);
      coins[i].symbol.position(
        grid[0][1].x + windowWidth / 9.5,
        grid[0][1].y + windowHeight / 4
      );
      coins[i].symbol.style("font-size", "40px");
      coins[i].symbol.style("z-index", "1");
      coins[i].symbol.style("color", "grey");
    } else if (coins[i].data.market_cap_rank == 2) {
      coins[i].position = createVector(-6, 5.1, 0);
      coins[i].symbol.position(
        grid[1][1].x + windowWidth / 9.5,
        grid[1][1].y + windowHeight / 4
      );
      coins[i].symbol.style("font-size", "40px");
      coins[i].symbol.style("z-index", "1");
      coins[i].symbol.style("color", "grey");
    } else if (coins[i].data.market_cap_rank == 3) {
      coins[i].position = createVector(-4.05, 5.1, 0);
      coins[i].symbol.style("font-size", "40px");
      coins[i].symbol.style("z-index", "1");
      coins[i].symbol.style("color", "grey");
      coins[i].symbol.position(
        grid[2][1].x + windowWidth / 9.5,
        grid[2][1].y + windowHeight / 4
      );
    } else if (coins[i].data.market_cap_rank == 4) {
      coins[i].position = createVector(-2.1, 5.1, 0);
      coins[i].symbol.style("font-size", "40px");
      coins[i].symbol.style("z-index", "1");
      coins[i].symbol.style("color", "grey");
      coins[i].symbol.position(
        grid[3][1].x + windowWidth / 9.5,
        grid[3][1].y + windowHeight / 4
      );
    } else if (coins[i].data.market_cap_rank == 5) {
      coins[i].position = createVector(-8, 3.6, 0);
      coins[i].symbol.style("font-size", "40px");
      coins[i].symbol.style("z-index", "1");
      coins[i].symbol.style("color", "grey");
      coins[i].symbol.position(
        grid[0][2].x + windowWidth / 9.5,
        grid[0][2].y + windowHeight / 4
      );
    } else if (coins[i].data.market_cap_rank == 6) {
      coins[i].position = createVector(-6, 3.6, 0);
      coins[i].symbol.style("font-size", "40px");
      coins[i].symbol.style("z-index", "1");
      coins[i].symbol.style("color", "grey");
      coins[i].symbol.position(
        grid[1][2].x + windowWidth / 9.5,
        grid[1][2].y + windowHeight / 4
      );
    } else if (coins[i].data.market_cap_rank == 7) {
      coins[i].position = createVector(-4, 3.6, 0);
      coins[i].symbol.style("font-size", "40px");
      coins[i].symbol.style("z-index", "1");
      coins[i].symbol.style("color", "grey");
      coins[i].symbol.position(
        grid[2][2].x + windowWidth / 9.5,
        grid[2][2].y + windowHeight / 4
      );
    } else if (coins[i].data.market_cap_rank == 8) {
      coins[i].position = createVector(-2, 3.6, 0);
      coins[i].symbol.style("font-size", "40px");
      coins[i].symbol.style("z-index", "1");
      coins[i].symbol.style("color", "grey");
      coins[i].symbol.position(
        grid[3][2].x + windowWidth / 9.5,
        grid[3][2].y + windowHeight / 4
      );
    }
    coins[i].display(-1000, -1000);
  }

  for (var i = 0; i < 8; i++) {
    if (coins[i].data.symbol == "btc") {
      coins[i].symbol.mouseOver(displayFunctions[0]);
      coins[i].symbol.mouseOut(hideFunctions[0]);
    } else if (coins[i].data.symbol == "eth") {
      coins[i].symbol.mouseOver(displayFunctions[1]);
      coins[i].symbol.mouseOut(hideFunctions[1]);
    } else if (coins[i].data.symbol == "ada") {
      coins[i].symbol.mouseOver(displayFunctions[2]);
      coins[i].symbol.mouseOut(hideFunctions[2]);
    } else if (coins[i].data.symbol == "usdt") {
      coins[i].symbol.mouseOver(displayFunctions[3]);
      coins[i].symbol.mouseOut(hideFunctions[3]);
    } else if (coins[i].data.symbol == "bnb") {
      coins[i].symbol.mouseOver(displayFunctions[4]);
      coins[i].symbol.mouseOut(hideFunctions[4]);
    } else if (coins[i].data.symbol == "xrp") {
      coins[i].symbol.mouseOver(displayFunctions[5]);
      coins[i].symbol.mouseOut(hideFunctions[5]);
    } else if (coins[i].data.symbol == "doge") {
      coins[i].symbol.mouseOver(displayFunctions[6]);
      coins[i].symbol.mouseOut(hideFunctions[6]);
    } else if (coins[i].data.symbol == "dot") {
      coins[i].symbol.mouseOver(displayFunctions[7]);
      coins[i].symbol.mouseOut(hideFunctions[7]);
    }
  }
  caller = setInterval(load, 33000);
  init();
}

displayFunctions[0] = function displayData0() {
  for (var i = 0; i < coins.length; i++) {
    if (coins[i].data.symbol == "btc") {
      coins[i].rank.position(
        coins[i].symbol.x + windowWidth / 12,
        coins[i].symbol.y - windowHeight / 6.6
      );
      coins[i].rank.style("color", "grey");
      coins[i].price.position(
        coins[i].symbol.x + windowWidth / 12,
        coins[i].symbol.y - windowHeight / 6.6 + 30
      );
      coins[i].price.style("color", "grey");
      coins[i].low24.position(
        coins[i].symbol.x + windowWidth / 12,
        coins[i].symbol.y - windowHeight / 6.6 + 60
      );
      coins[i].low24.style("color", "grey");
      coins[i].high24.position(
        coins[i].symbol.x + windowWidth / 12,
        coins[i].symbol.y - windowHeight / 6.6 + 90
      );
      coins[i].high24.style("color", "grey");
      coins[i].supply.position(
        coins[i].symbol.x + windowWidth / 12,
        coins[i].symbol.y - windowHeight / 6.6 + 120
      );
      coins[i].supply.style("color", "grey");
    }
  }
};
displayFunctions[1] = function displayData1() {
  for (var i = 0; i < coins.length; i++) {
    if (coins[i].data.symbol == "eth") {
      coins[i].rank.position(
        coins[i].symbol.x + windowWidth / 12,
        coins[i].symbol.y - windowHeight / 6.6
      );
      coins[i].rank.style("color", "grey");
      coins[i].price.position(
        coins[i].symbol.x + windowWidth / 12,
        coins[i].symbol.y - windowHeight / 6.6 + 30
      );
      coins[i].price.style("color", "grey");
      coins[i].low24.position(
        coins[i].symbol.x + windowWidth / 12,
        coins[i].symbol.y - windowHeight / 6.6 + 60
      );
      coins[i].low24.style("color", "grey");
      coins[i].high24.position(
        coins[i].symbol.x + windowWidth / 12,
        coins[i].symbol.y - windowHeight / 6.6 + 90
      );
      coins[i].high24.style("color", "grey");
      coins[i].supply.position(
        coins[i].symbol.x + windowWidth / 12,
        coins[i].symbol.y - windowHeight / 6.6 + 120
      );
      coins[i].supply.style("color", "grey");
    }
  }
};
displayFunctions[2] = function displayData2() {
  for (var i = 0; i < coins.length; i++) {
    if (coins[i].data.symbol == "ada") {
      coins[i].rank.position(
        coins[i].symbol.x + windowWidth / 12,
        coins[i].symbol.y - windowHeight / 6.6
      );
      coins[i].rank.style("color", "grey");
      coins[i].price.position(
        coins[i].symbol.x + windowWidth / 12,
        coins[i].symbol.y - windowHeight / 6.6 + 30
      );
      coins[i].price.style("color", "grey");
      coins[i].low24.position(
        coins[i].symbol.x + windowWidth / 12,
        coins[i].symbol.y - windowHeight / 6.6 + 60
      );
      coins[i].low24.style("color", "grey");
      coins[i].high24.position(
        coins[i].symbol.x + windowWidth / 12,
        coins[i].symbol.y - windowHeight / 6.6 + 90
      );
      coins[i].high24.style("color", "grey");
      coins[i].supply.position(
        coins[i].symbol.x + windowWidth / 12,
        coins[i].symbol.y - windowHeight / 6.6 + 120
      );
      coins[i].supply.style("color", "grey");
    }
  }
};
displayFunctions[3] = function displayData3() {
  for (var i = 0; i < coins.length; i++) {
    if (coins[i].data.symbol == "usdt") {
      coins[i].rank.position(
        coins[i].symbol.x + windowWidth / 12,
        coins[i].symbol.y - windowHeight / 6.6
      );
      coins[i].rank.style("color", "grey");
      coins[i].price.position(
        coins[i].symbol.x + windowWidth / 12,
        coins[i].symbol.y - windowHeight / 6.6 + 30
      );
      coins[i].price.style("color", "grey");
      coins[i].low24.position(
        coins[i].symbol.x + windowWidth / 12,
        coins[i].symbol.y - windowHeight / 6.6 + 60
      );
      coins[i].low24.style("color", "grey");
      coins[i].high24.position(
        coins[i].symbol.x + windowWidth / 12,
        coins[i].symbol.y - windowHeight / 6.6 + 90
      );
      coins[i].high24.style("color", "grey");
      coins[i].supply.position(
        coins[i].symbol.x + windowWidth / 12,
        coins[i].symbol.y - windowHeight / 6.6 + 120
      );
      coins[i].supply.style("color", "grey");
    }
  }
};
displayFunctions[4] = function displayData4() {
  for (var i = 0; i < coins.length; i++) {
    if (coins[i].data.symbol == "bnb") {
      coins[i].rank.position(
        coins[i].symbol.x + windowWidth / 12,
        coins[i].symbol.y - windowHeight / 6.6
      );
      coins[i].rank.style("color", "grey");
      coins[i].price.position(
        coins[i].symbol.x + windowWidth / 12,
        coins[i].symbol.y - windowHeight / 6.6 + 30
      );
      coins[i].price.style("color", "grey");
      coins[i].low24.position(
        coins[i].symbol.x + windowWidth / 12,
        coins[i].symbol.y - windowHeight / 6.6 + 60
      );
      coins[i].low24.style("color", "grey");
      coins[i].high24.position(
        coins[i].symbol.x + windowWidth / 12,
        coins[i].symbol.y - windowHeight / 6.6 + 90
      );
      coins[i].high24.style("color", "grey");
      coins[i].supply.position(
        coins[i].symbol.x + windowWidth / 12,
        coins[i].symbol.y - windowHeight / 6.6 + 120
      );
      coins[i].supply.style("color", "grey");
    }
  }
};
displayFunctions[5] = function displayData5() {
  for (var i = 0; i < coins.length; i++) {
    if (coins[i].data.symbol == "xrp") {
      coins[i].rank.position(
        coins[i].symbol.x + windowWidth / 12,
        coins[i].symbol.y - windowHeight / 6.6
      );
      coins[i].rank.style("color", "grey");
      coins[i].price.position(
        coins[i].symbol.x + windowWidth / 12,
        coins[i].symbol.y - windowHeight / 6.6 + 30
      );
      coins[i].price.style("color", "grey");
      coins[i].low24.position(
        coins[i].symbol.x + windowWidth / 12,
        coins[i].symbol.y - windowHeight / 6.6 + 60
      );
      coins[i].low24.style("color", "grey");
      coins[i].high24.position(
        coins[i].symbol.x + windowWidth / 12,
        coins[i].symbol.y - windowHeight / 6.6 + 90
      );
      coins[i].high24.style("color", "grey");
      coins[i].supply.position(
        coins[i].symbol.x + windowWidth / 12,
        coins[i].symbol.y - windowHeight / 6.6 + 120
      );
      coins[i].supply.style("color", "grey");
    }
  }
};
displayFunctions[6] = function displayData6() {
  for (var i = 0; i < coins.length; i++) {
    if (coins[i].data.symbol == "doge") {
      coins[i].rank.position(
        coins[i].symbol.x + windowWidth / 12,
        coins[i].symbol.y - windowHeight / 6.6
      );
      coins[i].rank.style("color", "grey");
      coins[i].price.position(
        coins[i].symbol.x + windowWidth / 12,
        coins[i].symbol.y - windowHeight / 6.6 + 30
      );
      coins[i].price.style("color", "grey");
      coins[i].low24.position(
        coins[i].symbol.x + windowWidth / 12,
        coins[i].symbol.y - windowHeight / 6.6 + 60
      );
      coins[i].low24.style("color", "grey");
      coins[i].high24.position(
        coins[i].symbol.x + windowWidth / 12,
        coins[i].symbol.y - windowHeight / 6.6 + 90
      );
      coins[i].high24.style("color", "grey");
      coins[i].supply.position(
        coins[i].symbol.x + windowWidth / 12,
        coins[i].symbol.y - windowHeight / 6.6 + 120
      );
      coins[i].supply.style("color", "grey");
    }
  }
};
displayFunctions[7] = function displayData7() {
  for (var i = 0; i < coins.length; i++) {
    if (coins[i].data.symbol == "dot") {
      coins[i].rank.position(
        coins[i].symbol.x + windowWidth / 12,
        coins[i].symbol.y - windowHeight / 6.6
      );
      coins[i].rank.style("color", "grey");
      coins[i].price.position(
        coins[i].symbol.x + windowWidth / 12,
        coins[i].symbol.y - windowHeight / 6.6 + 30
      );
      coins[i].price.style("color", "grey");
      coins[i].low24.position(
        coins[i].symbol.x + windowWidth / 12,
        coins[i].symbol.y - windowHeight / 6.6 + 60
      );
      coins[i].low24.style("color", "grey");
      coins[i].high24.position(
        coins[i].symbol.x + windowWidth / 12,
        coins[i].symbol.y - windowHeight / 6.6 + 90
      );
      coins[i].high24.style("color", "grey");
      coins[i].supply.position(
        coins[i].symbol.x + windowWidth / 12,
        coins[i].symbol.y - windowHeight / 6.6 + 120
      );
      coins[i].supply.style("color", "grey");
    }
  }
};
hideFunctions[0] = function hideData0() {
  for (var i = 0; i < coins.length; i++) {
    if (coins[i].data.symbol == "btc") {
      coins[i].rank.style("color", "#FAEBD7");
      coins[i].rank.position(-1000, 1000);
      coins[i].price.style("color", "#FAEBD7");
      coins[i].price.position(-1000, 1000);
      coins[i].low24.style("color", "#FAEBD7");
      coins[i].low24.position(-1000, 1000);
      coins[i].high24.style("color", "#FAEBD7");
      coins[i].high24.position(-1000, 1000);
      coins[i].supply.style("color", "#FAEBD7");
      coins[i].supply.position(-1000, 1000);
    }
  }
};
hideFunctions[1] = function hideData1() {
  for (var i = 0; i < coins.length; i++) {
    if (coins[i].data.symbol == "eth") {
      coins[i].rank.style("color", "#FAEBD7");
      coins[i].rank.position(-1000, 1000);
      coins[i].price.style("color", "#FAEBD7");
      coins[i].price.position(-1000, 1000);
      coins[i].low24.style("color", "#FAEBD7");
      coins[i].low24.position(-1000, 1000);
      coins[i].high24.style("color", "#FAEBD7");
      coins[i].high24.position(-1000, 1000);
      coins[i].supply.style("color", "#FAEBD7");
      coins[i].supply.position(-1000, 1000);
    }
  }
};
hideFunctions[2] = function hideData2() {
  for (var i = 0; i < coins.length; i++) {
    if (coins[i].data.symbol == "ada") {
      coins[i].rank.style("color", "#FAEBD7");
      coins[i].rank.position(-1000, 1000);
      coins[i].price.style("color", "#FAEBD7");
      coins[i].price.position(-1000, 1000);
      coins[i].low24.style("color", "#FAEBD7");
      coins[i].low24.position(-1000, 1000);
      coins[i].high24.style("color", "#FAEBD7");
      coins[i].high24.position(-1000, 1000);
      coins[i].supply.style("color", "#FAEBD7");
      coins[i].supply.position(-1000, 1000);
    }
  }
};
hideFunctions[3] = function hideData3() {
  for (var i = 0; i < coins.length; i++) {
    if (coins[i].data.symbol == "usdt") {
      coins[i].rank.style("color", "#FAEBD7");
      coins[i].rank.position(-1000, 1000);
      coins[i].price.style("color", "#FAEBD7");
      coins[i].price.position(-1000, 1000);
      coins[i].low24.style("color", "#FAEBD7");
      coins[i].low24.position(-1000, 1000);
      coins[i].high24.style("color", "#FAEBD7");
      coins[i].high24.position(-1000, 1000);
      coins[i].supply.style("color", "#FAEBD7");
      coins[i].supply.position(-1000, 1000);
    }
  }
};
hideFunctions[4] = function hideData4() {
  for (var i = 0; i < coins.length; i++) {
    if (coins[i].data.symbol == "bnb") {
      coins[i].rank.style("color", "#FAEBD7");
      coins[i].rank.position(-1000, 1000);
      coins[i].price.style("color", "#FAEBD7");
      coins[i].price.position(-1000, 1000);
      coins[i].low24.style("color", "#FAEBD7");
      coins[i].low24.position(-1000, 1000);
      coins[i].high24.style("color", "#FAEBD7");
      coins[i].high24.position(-1000, 1000);
      coins[i].supply.style("color", "#FAEBD7");
      coins[i].supply.position(-1000, 1000);
    }
  }
};
hideFunctions[5] = function hideData5() {
  for (var i = 0; i < coins.length; i++) {
    if (coins[i].data.symbol == "xrp") {
      coins[i].rank.style("color", "#FAEBD7");
      coins[i].rank.position(-1000, 1000);
      coins[i].price.style("color", "#FAEBD7");
      coins[i].price.position(-1000, 1000);
      coins[i].low24.style("color", "#FAEBD7");
      coins[i].low24.position(-1000, 1000);
      coins[i].high24.style("color", "#FAEBD7");
      coins[i].high24.position(-1000, 1000);
      coins[i].supply.style("color", "#FAEBD7");
      coins[i].supply.position(-1000, 1000);
    }
  }
};
hideFunctions[6] = function hideData6() {
  for (var i = 0; i < coins.length; i++) {
    if (coins[i].data.symbol == "doge") {
      coins[i].rank.style("color", "#FAEBD7");
      coins[i].rank.position(-1000, 1000);
      coins[i].price.style("color", "#FAEBD7");
      coins[i].price.position(-1000, 1000);
      coins[i].low24.style("color", "#FAEBD7");
      coins[i].low24.position(-1000, 1000);
      coins[i].high24.style("color", "#FAEBD7");
      coins[i].high24.position(-1000, 1000);
      coins[i].supply.style("color", "#FAEBD7");
      coins[i].supply.position(-1000, 1000);
    }
  }
};
hideFunctions[7] = function hideData7() {
  for (var i = 0; i < coins.length; i++) {
    if (coins[i].data.symbol == "dot") {
      coins[i].rank.style("color", "#FAEBD7");
      coins[i].rank.position(-1000, 1000);
      coins[i].price.style("color", "#FAEBD7");
      coins[i].price.position(-1000, 1000);
      coins[i].low24.style("color", "#FAEBD7");
      coins[i].low24.position(-1000, 1000);
      coins[i].high24.style("color", "#FAEBD7");
      coins[i].high24.position(-1000, 1000);
      coins[i].supply.style("color", "#FAEBD7");
      coins[i].supply.position(-1000, 1000);
    }
  }
};

function load() {
  loadJSON(url, search);
}
function search(data) {
  for (var i = 0; i < data.length; i++) {
    coins[i].data = data[i];
    coins[i].speed = random(
      coins[i].data.market_cap_change_percentage_24h / 100
    );
  }
  return coins;
}
function createGrid() {
  for (var i = 0; i < 4; i++) {
    grid[i] = [];
    for (var j = 0; j < 300; j++) {
      grid[i][j] = createVector((i * windowWidth) / 4, (j * windowHeight) / 3);
      noFill();
      stroke(0);
      //rect(grid[i][j].x+windowWidth/8,grid[i][j].y-windowHeight/6,windowWidth/4,windowHeight/3);
    }
  }
}
function mousePressed() {
  print(coins);
}
function draw() {
  createGrid();
}
////////////////////////////////////////////////////////////////////////////////////////////////////////
function init() {
  container = document.querySelector("#scene-container");
  scene = new THREE.Scene();
  scene.background = new THREE.Color(0xfaebd7);
  raycaster = new THREE.Raycaster();
  mouse = new THREE.Vector2();
  createCamera1();
  createLights();
  createMeshes();
  createRenderer();
  createGrid();
  renderer.setAnimationLoop(() => {
    update();
    render();
  });
}
function createCamera1() {
  camera = new THREE.PerspectiveCamera(
    35, // FOV
    container.clientWidth / container.clientHeight, // aspect
    0.1, // near clipping plane
    100 // far clipping plane
  );
  camera.position.set(-5, 5, 7);
}
function createLights() {
  // Create a directional light
  const mainLight = new THREE.DirectionalLight(0xff0000, 5.0);
  mainLight.position.set(0, 4, 0);
  const ambientLight = new THREE.HemisphereLight(
    0xffffff, // bright sky color
    0xffffff, // dim ground color
    1 // intensity
  );
  scene.add(mainLight, ambientLight);
}
function createGeometries() {
  for (var i = 0; i < 8; i++) {
    if (coins[i].data.symbol == "btc") {
      coins[i].geometries[0] = new THREE.TetrahedronBufferGeometry(0.16, 0);
      coins[i].geometries[1] = new THREE.TetrahedronBufferGeometry(
        0.3,
        int(coins[i].data.current_price / 45000)
      );
      coins[i].geometries[2] = new THREE.TorusKnotGeometry(
        0.06,
        0.3,
        16,
        16,
        int(coins[i].data.price_change_percentage_24h),
        int(coins[0].data.price_change_percentage_24h)
      );
      coins[i].geometries[3] = new THREE.SphereGeometry(
        0.44,
        22,
        22,
        0,
        coins[i].data.price_change_percentage_24h,
        0,
        6.3
      );
    } else if (coins[i].data.symbol == "eth") {
      coins[i].geometries[0] = new THREE.OctahedronBufferGeometry(0.16, 0);
      coins[i].geometries[1] = new THREE.OctahedronBufferGeometry(
        0.28,
        int(coins[i].data.current_price / 2000)
      );
      coins[i].geometries[2] = new THREE.OctahedronBufferGeometry(
        0.39,
        int(coins[i].data.current_price / 1000)
      );
      coins[i].geometries[3] = new THREE.OctahedronBufferGeometry(
        0.6,
        int(coins[i].data.current_price / 4000)
      );
    } else if (coins[i].data.symbol == "usdt") {
      coins[i].geometries[0] = new THREE.ConeBufferGeometry(
        0.16,
        coins[i].data.atl,
        3,
        7
      );
      coins[i].geometries[1] = new THREE.CylinderBufferGeometry(
        0.2,
        0.2,
        0.6,
        coins[i].data.atl.market_cap_change_percentage / 2,
        7
      );
      coins[i].geometries[2] = new THREE.DodecahedronBufferGeometry(
        0.4,
        coins[i].data.market_cap_rank
      );
      coins[i].geometries[3] = new THREE.IcosahedronBufferGeometry(0.5, 1);
    } else if (coins[i].data.symbol == "ada") {
      coins[i].geometries[0] = new THREE.CylinderBufferGeometry(
        0.16,
        0.16,
        0.05,
        33,
        33
      );
      coins[i].geometries[1] = new THREE.SphereBufferGeometry(0.28, 16, 4);
      coins[i].geometries[2] = new THREE.TorusKnotGeometry(
        0.2,
        0.2,
        175,
        15,
        2,
        3
      );
      coins[i].geometries[3] = new THREE.SphereGeometry(
        0.5,
        64,
        6,
        0,
        6.3,
        coins[i].data.price_change_percentage_24h,
        0.9
      );
    } else if (coins[i].data.symbol == "bnb") {
      coins[i].geometries[0] = new THREE.BoxBufferGeometry(0.1, 0.1, 0.1);
      coins[i].geometries[1] = new THREE.DodecahedronBufferGeometry(0.3, 0);
      coins[i].geometries[2] = new THREE.DodecahedronBufferGeometry(0.4, 1);
      coins[i].geometries[3] = new THREE.CircleBufferGeometry(0.7, 0);
    } else if (coins[i].data.symbol == "xrp") {
      coins[i].geometries[0] = new THREE.SphereBufferGeometry(
        0.1,
        13,
        4,
        6,
        6.3,
        1,
        6.3
      );
      coins[i].geometries[1] = new THREE.SphereBufferGeometry(0.3, 16, 16);
      coins[i].geometries[2] = new THREE.SphereBufferGeometry(
        0.45,
        3,
        6,
        6,
        6.3,
        0,
        6.3
      );
      coins[i].geometries[3] = new THREE.SphereBufferGeometry(
        0.55,
        3,
        6,
        0,
        coins[i].data.current_price,
        6,
        6.3
      );
    } else if (coins[i].data.symbol == "doge") {
      coins[i].geometries[0] = new THREE.CylinderBufferGeometry(
        0.1,
        0.1,
        0.05,
        33,
        33
      );
      coins[i].geometries[1] = new THREE.IcosahedronBufferGeometry(0.2, 2);
      coins[i].geometries[2] = new THREE.TorusKnotGeometry(
        0.2,
        0.09,
        90,
        11,
        1,
        3
      );
      coins[i].geometries[3] = new THREE.TorusBufferGeometry(
        0.66,
        0.1,
        3,
        3,
        6.3
      );
    } else if (coins[i].data.symbol == "dot") {
      coins[i].geometries[0] = new THREE.OctahedronBufferGeometry(0.1, 1);
      coins[i].geometries[1] = new THREE.OctahedronBufferGeometry(0.1, 1);
      coins[i].geometries[2] = new THREE.TorusKnotGeometry(
        0.3,
        0.05,
        64,
        8,
        6,
        3
      );
      coins[i].geometries[3] = new THREE.SphereBufferGeometry(
        0.65,
        5,
        19,
        0,
        6.3,
        6.3,
        6.3
      );
      coins[i].geometries[4] = new THREE.SphereBufferGeometry(
        0.65,
        5,
        19,
        0,
        6.3,
        6.3,
        6.3
      );
    }
  }
  return {
    coins,
  };
}
function createMaterials() {
  for (var i = 0; i < 8; i++) {
    if (coins[i].data.symbol == "btc") {
      coins[i].materials[0] = new THREE.MeshBasicMaterial({
        color: 0xf2a900,
      });
      coins[i].materials[0].color.convertSRGBToLinear();
      coins[i].materials[0].wireframe = false;
      coins[i].materials[0].transparent = true;
      coins[i].materials[0].opacity = coins[i].data.ath / 10000;

      coins[i].materials[1] = new THREE.MeshBasicMaterial({
        color: 0x4d4d4e,
      });

      coins[i].materials[1].color.convertSRGBToLinear();
      coins[i].materials[1].wireframe = true;

      coins[i].materials[2] = new THREE.MeshBasicMaterial({
        color: 0x000000,
      });
      coins[i].materials[2].color.convertSRGBToLinear();
      coins[i].materials[2].wireframe = true;
      coins[i].materials[2].transparent = true;
      coins[i].materials[2].opacity = 0.05;

      coins[i].materials[3] = new THREE.MeshBasicMaterial({
        color: 0xdaa520,
      });
      coins[i].materials[3].color.convertSRGBToLinear();
      coins[i].materials[3].wireframe = true;
      coins[i].materials[3].transparent = true;
      coins[i].materials[3].opacity = 0.3;
    } else if (coins[i].data.symbol == "eth") {
      coins[i].materials[0] = new THREE.MeshBasicMaterial({
        color: 0x716b94,
      });
      coins[i].materials[0].color.convertSRGBToLinear();
      coins[i].materials[0].wireframe = false;
      coins[i].materials[0].transparent = true;
      coins[i].materials[0].opacity = coins[i].data.ath / 10000;

      coins[i].materials[1] = new THREE.MeshBasicMaterial({
        color: 0x14044d,
      });
      coins[i].materials[1].color.convertSRGBToLinear();
      coins[i].materials[1].wireframe = true;
      coins[i].materials[1].transparent = true;
      coins[i].materials[1].opacity = 0.5;

      coins[i].materials[2] = new THREE.MeshBasicMaterial({
        color: 0xc6c5d4,
      });
      coins[i].materials[2].color.convertSRGBToLinear();
      coins[i].materials[2].wireframe = true;
      coins[i].materials[2].transparent = true;
      coins[i].materials[2].opacity = 0.3;

      coins[i].materials[3] = new THREE.MeshBasicMaterial({
        color: 0x48cbd9,
      });
      coins[i].materials[3].color.convertSRGBToLinear();
      coins[i].materials[3].wireframe = true;
      coins[i].materials[3].transparent = true;
      coins[i].materials[3].opacity = coins[i].data.ath / 1000;
    } else if (coins[i].data.symbol == "usdt") {
      const texture2 = new THREE.TextureLoader().load("assets/dollar.jpg");

      coins[i].materials[0] = new THREE.MeshBasicMaterial({
        color: 0x50af95,
        map: texture2,
      });
      coins[i].materials[0].color.convertSRGBToLinear();

      coins[i].materials[1] = new THREE.MeshBasicMaterial({
        color: 0x5c5b5e,
      });
      coins[i].materials[1].color.convertSRGBToLinear();
      coins[i].materials[1].wireframe = true;

      coins[i].materials[2] = new THREE.MeshBasicMaterial({
        color: 0xffffff,
      });
      coins[i].materials[2].color.convertSRGBToLinear();
      coins[i].materials[2].wireframe = true;
      coins[i].materials[2].transparent = true;
      coins[i].materials[2].opacity = 0.3;

      coins[i].materials[3] = new THREE.MeshBasicMaterial({
        color: 0x85bb65,
      });
      coins[i].materials[3].color.convertSRGBToLinear();
      coins[i].materials[3].wireframe = true;
      coins[i].materials[3].transparent = true;
      coins[i].materials[3].opacity = coins[i].data.low_24h;
    } else if (coins[i].data.symbol == "ada") {
      const texture1 = new THREE.TextureLoader().load("assets/ada.png");

      coins[i].materials[0] = new THREE.MeshBasicMaterial({
        map: texture1,
      });
      coins[i].materials[0].wireframe = false;
      coins[i].materials[0].transparent = true;
      coins[i].materials[0].opacity = coins[i].data.ath / 3;

      coins[i].materials[1] = new THREE.MeshBasicMaterial({
        color: 0x001975,
      });
      coins[i].materials[1].color.convertSRGBToLinear();
      coins[i].materials[1].wireframe = true;
      coins[i].materials[1].transparent = true;
      coins[i].materials[1].opacity = coins[i].data.ath / 3;

      coins[i].materials[2] = new THREE.MeshBasicMaterial({
        color: 0x00879b,
      });
      coins[i].materials[2].color.convertSRGBToLinear();
      coins[i].materials[2].wireframe = true;
      coins[i].materials[2].transparent = true;
      coins[i].materials[2].opacity = coins[i].data.ath / 20;

      coins[i].materials[3] = new THREE.MeshBasicMaterial({
        color: 0x00abad,
      });
      coins[i].materials[3].color.convertSRGBToLinear();
      coins[i].materials[3].wireframe = false;
      coins[i].materials[3].transparent = true;
      coins[i].materials[3].opacity = coins[i].data.ath / 4;
    } else if (coins[i].data.symbol == "bnb") {
      coins[i].materials[0] = new THREE.MeshBasicMaterial({
        color: 0xf3ba2f,
      });
      coins[i].materials[0].color.convertSRGBToLinear();

      coins[i].materials[1] = new THREE.MeshBasicMaterial({
        color: 0x000000,
      });
      coins[i].materials[1].color.convertSRGBToLinear();
      coins[i].materials[1].wireframe = true;
      coins[i].materials[1].transparent = true;
      coins[i].materials[1].opacity = coins[i].data.atl * 6;

      coins[i].materials[2] = new THREE.MeshBasicMaterial({
        color: 0xffffff,
      });
      coins[i].materials[2].wireframe = true;

      coins[i].materials[3] = new THREE.MeshBasicMaterial({
        color: 0xf3ba2f,
      });
      coins[i].materials[3].color.convertSRGBToLinear();
      coins[i].materials[3].wireframe = false;
      coins[i].materials[3].transparent = true;
      coins[i].materials[3].opacity = coins[i].data.atl * 6;
    } else if (coins[i].data.symbol == "xrp") {
      coins[i].materials[0] = new THREE.MeshBasicMaterial({
        color: 0x00aae4,
      });
      coins[i].materials[0].color.convertSRGBToLinear();
      coins[i].materials[0].wireframe = false;

      coins[i].materials[1] = new THREE.MeshBasicMaterial({
        color: 0x006097,
      });
      coins[i].materials[1].color.convertSRGBToLinear();
      coins[i].materials[1].wireframe = true;
      coins[i].materials[1].transparent = true;
      coins[i].materials[1].opacity = 0.5;

      coins[i].materials[2] = new THREE.MeshBasicMaterial({
        color: 0x434c54,
      });
      coins[i].materials[2].color.convertSRGBToLinear();
      coins[i].materials[2].wireframe = true;
      coins[i].materials[2].transparent = true;
      coins[i].materials[2].opacity = 0.5;

      coins[i].materials[3] = new THREE.MeshBasicMaterial({
        color: 0x00aae4,
      });
      coins[i].materials[3].color.convertSRGBToLinear();
      coins[i].materials[3].wireframe = true;
      coins[i].materials[3].transparent = true;
      coins[i].materials[3].opacity = 0.5;
    } else if (coins[i].data.symbol == "doge") {
      const texture2 = new THREE.TextureLoader().load("assets/doge.png");

      coins[i].materials[0] = new THREE.MeshBasicMaterial({
        map: texture2,
      });

      coins[i].materials[1] = new THREE.MeshBasicMaterial({
        color: 0x000000,
      });
      coins[i].materials[1].color.convertSRGBToLinear();
      coins[i].materials[1].wireframe = true;
      coins[i].materials[1].transparent = true;
      coins[i].materials[1].opacity = coins[i].data.low_24h;

      coins[i].materials[2] = new THREE.MeshBasicMaterial({
        color: 0xe1b303,
      });
      coins[i].materials[2].color.convertSRGBToLinear();
      coins[i].materials[2].wireframe = true;
      coins[i].materials[2].transparent = true;
      coins[i].materials[2].opacity = coins[i].data.low_24h;

      coins[i].materials[3] = new THREE.MeshBasicMaterial({
        color: 0xcb9800,
      });
      coins[i].materials[3].color.convertSRGBToLinear();
      coins[i].materials[3].wireframe = false;
      coins[i].materials[3].transparent = true;
      coins[i].materials[3].opacity = coins[i].data.low_24h;
    } else if (coins[i].data.symbol == "dot") {
      coins[i].materials[0] = new THREE.MeshBasicMaterial({
        color: 0x000000,
      });
      coins[i].materials[0].color.convertSRGBToLinear();
      coins[i].materials[0].wireframe = false;
      coins[i].materials[0].transparent = true;
      coins[i].materials[0].opacity = 0.5;

      coins[i].materials[1] = new THREE.MeshBasicMaterial({
        color: 0x000000,
      });
      coins[i].materials[1].color.convertSRGBToLinear();
      coins[i].materials[1].wireframe = true;
      coins[i].materials[1].transparent = false;

      coins[i].materials[2] = new THREE.MeshBasicMaterial({
        color: 0xe6007a,
      });
      coins[i].materials[2].color.convertSRGBToLinear();
      coins[i].materials[2].wireframe = true;
      coins[i].materials[2].transparent = false;
      //coins[i].materials[2].opacity = 0.5;

      coins[i].materials[3] = new THREE.MeshBasicMaterial({
        color: 0xf0f0f0,
      });
      coins[i].materials[3].color.convertSRGBToLinear();
      coins[i].materials[3].wireframe = false;
      coins[i].materials[3].transparent = true;
      coins[i].materials[3].opacity = 0.5;

      coins[i].materials[4] = new THREE.MeshBasicMaterial({
        color: 0xffffff,
      });
      coins[i].materials[4].color.convertSRGBToLinear();
      coins[i].materials[4].wireframe = true;
      coins[i].materials[4].transparent = false;
      //coins[i].materials[4].opacity = 0.5;
    }
  }
  return {
    coins,
  };
}
function createMeshes() {
  const map = new THREE.Group();
  scene.add(map);
  const materials = createMaterials();
  const geometries = createGeometries();
  for (var i = 0; i < 8; i++) {
    if (coins[i].data.symbol == "btc") {
      coins[i].meshes[0] = new THREE.Mesh(
        geometries.coins[i].geometries[0],
        coins[i].materials[0]
      );
      coins[i].meshes[0].position.set(
        coins[i].position.x,
        coins[i].position.y,
        coins[i].position.z
      );
      coins[i].meshes[1] = new THREE.Mesh(
        geometries.coins[i].geometries[1],
        coins[i].materials[1]
      );
      coins[i].meshes[1].position.set(
        coins[i].position.x,
        coins[i].position.y,
        coins[i].position.z
      );
      coins[i].meshes[2] = new THREE.Mesh(
        geometries.coins[i].geometries[2],
        coins[i].materials[2]
      );
      coins[i].meshes[2].position.set(
        coins[i].position.x,
        coins[i].position.y,
        coins[i].position.z
      );
      coins[i].meshes[3] = new THREE.Mesh(
        geometries.coins[i].geometries[3],
        coins[i].materials[3]
      );
      coins[i].meshes[3].position.set(
        coins[i].position.x,
        coins[i].position.y,
        coins[i].position.z
      );
    } else if (coins[i].data.symbol == "eth") {
      coins[i].meshes[0] = new THREE.Mesh(
        geometries.coins[i].geometries[0],
        coins[i].materials[0]
      );
      coins[i].meshes[0].position.set(
        coins[i].position.x,
        coins[i].position.y,
        coins[i].position.z
      );
      coins[i].meshes[1] = new THREE.Mesh(
        geometries.coins[i].geometries[1],
        coins[i].materials[1]
      );
      coins[i].meshes[1].position.set(
        coins[i].position.x,
        coins[i].position.y,
        coins[i].position.z
      );
      coins[i].meshes[2] = new THREE.Mesh(
        geometries.coins[i].geometries[2],
        coins[i].materials[2]
      );
      coins[i].meshes[2].position.set(
        coins[i].position.x,
        coins[i].position.y,
        coins[i].position.z
      );
      coins[i].meshes[3] = new THREE.Mesh(
        geometries.coins[i].geometries[3],
        coins[i].materials[3]
      );
      coins[i].meshes[3].position.set(
        coins[i].position.x,
        coins[i].position.y,
        coins[i].position.z
      );
    } else if (coins[i].data.symbol == "ada") {
      coins[i].meshes[0] = new THREE.Mesh(
        geometries.coins[i].geometries[0],
        coins[i].materials[0]
      );
      coins[i].meshes[0].position.set(
        coins[i].position.x,
        coins[i].position.y,
        coins[i].position.z
      );
      coins[i].meshes[1] = new THREE.Mesh(
        geometries.coins[i].geometries[1],
        coins[i].materials[1]
      );
      coins[i].meshes[1].position.set(
        coins[i].position.x,
        coins[i].position.y,
        coins[i].position.z
      );
      coins[i].meshes[2] = new THREE.Mesh(
        geometries.coins[i].geometries[2],
        coins[i].materials[2]
      );
      coins[i].meshes[2].position.set(
        coins[i].position.x,
        coins[i].position.y,
        coins[i].position.z
      );
      coins[i].meshes[3] = new THREE.Mesh(
        geometries.coins[i].geometries[3],
        coins[i].materials[3]
      );
      coins[i].meshes[3].position.set(
        coins[i].position.x,
        coins[i].position.y,
        coins[i].position.z
      );
    } else if (coins[i].data.symbol == "usdt") {
      coins[i].meshes[0] = new THREE.Mesh(
        geometries.coins[i].geometries[0],
        coins[i].materials[0]
      );
      coins[i].meshes[0].position.set(
        coins[i].position.x,
        coins[i].position.y,
        coins[i].position.z
      );
      coins[i].meshes[1] = new THREE.Mesh(
        geometries.coins[i].geometries[1],
        coins[i].materials[1]
      );
      coins[i].meshes[1].position.set(
        coins[i].position.x,
        coins[i].position.y,
        coins[i].position.z
      );
      coins[i].meshes[2] = new THREE.Mesh(
        geometries.coins[i].geometries[2],
        coins[i].materials[2]
      );
      coins[i].meshes[2].position.set(
        coins[i].position.x,
        coins[i].position.y,
        coins[i].position.z
      );
      coins[i].meshes[3] = new THREE.Mesh(
        geometries.coins[i].geometries[3],
        coins[i].materials[3]
      );
      coins[i].meshes[3].position.set(
        coins[i].position.x,
        coins[i].position.y,
        coins[i].position.z
      );
    } else if (coins[i].data.symbol == "bnb") {
      coins[i].meshes[0] = new THREE.Mesh(
        geometries.coins[i].geometries[0],
        coins[i].materials[0]
      );
      coins[i].meshes[0].position.set(
        coins[i].position.x,
        coins[i].position.y,
        coins[i].position.z
      );
      coins[i].meshes[1] = new THREE.Mesh(
        geometries.coins[i].geometries[1],
        coins[i].materials[1]
      );
      coins[i].meshes[1].position.set(
        coins[i].position.x,
        coins[i].position.y,
        coins[i].position.z
      );
      coins[i].meshes[2] = new THREE.Mesh(
        geometries.coins[i].geometries[2],
        coins[i].materials[2]
      );
      coins[i].meshes[2].position.set(
        coins[i].position.x,
        coins[i].position.y,
        coins[i].position.z
      );
      coins[i].meshes[3] = new THREE.Mesh(
        geometries.coins[i].geometries[3],
        coins[i].materials[3]
      );
      coins[i].meshes[3].position.set(
        coins[i].position.x,
        coins[i].position.y,
        coins[i].position.z
      );
    } else if (coins[i].data.symbol == "xrp") {
      coins[i].meshes[0] = new THREE.Mesh(
        geometries.coins[i].geometries[0],
        coins[i].materials[0]
      );
      coins[i].meshes[0].position.set(
        coins[i].position.x,
        coins[i].position.y,
        coins[i].position.z
      );
      coins[i].meshes[1] = new THREE.Mesh(
        geometries.coins[i].geometries[1],
        coins[i].materials[1]
      );
      coins[i].meshes[1].position.set(
        coins[i].position.x,
        coins[i].position.y,
        coins[i].position.z
      );
      coins[i].meshes[2] = new THREE.Mesh(
        geometries.coins[i].geometries[2],
        coins[i].materials[2]
      );
      coins[i].meshes[2].position.set(
        coins[i].position.x,
        coins[i].position.y,
        coins[i].position.z
      );
      coins[i].meshes[3] = new THREE.Mesh(
        geometries.coins[i].geometries[3],
        coins[i].materials[3]
      );
      coins[i].meshes[3].position.set(
        coins[i].position.x,
        coins[i].position.y,
        coins[i].position.z
      );
    } else if (coins[i].data.symbol == "doge") {
      coins[i].meshes[0] = new THREE.Mesh(
        geometries.coins[i].geometries[0],
        coins[i].materials[0]
      );
      coins[i].meshes[0].position.set(
        coins[i].position.x,
        coins[i].position.y,
        coins[i].position.z
      );
      coins[i].meshes[1] = new THREE.Mesh(
        geometries.coins[i].geometries[1],
        coins[i].materials[1]
      );
      coins[i].meshes[1].position.set(
        coins[i].position.x,
        coins[i].position.y,
        coins[i].position.z
      );
      coins[i].meshes[2] = new THREE.Mesh(
        geometries.coins[i].geometries[2],
        coins[i].materials[2]
      );
      coins[i].meshes[2].position.set(
        coins[i].position.x,
        coins[i].position.y,
        coins[i].position.z
      );
      coins[i].meshes[3] = new THREE.Mesh(
        geometries.coins[i].geometries[3],
        coins[i].materials[3]
      );
      coins[i].meshes[3].position.set(
        coins[i].position.x,
        coins[i].position.y,
        coins[i].position.z
      );
    } else if (coins[i].data.symbol == "dot") {
      coins[i].meshes[0] = new THREE.Mesh(
        geometries.coins[i].geometries[0],
        coins[i].materials[0]
      );
      coins[i].meshes[0].position.set(
        coins[i].position.x,
        coins[i].position.y,
        coins[i].position.z
      );
      coins[i].meshes[1] = new THREE.Mesh(
        geometries.coins[i].geometries[1],
        coins[i].materials[1]
      );
      coins[i].meshes[1].position.set(
        coins[i].position.x,
        coins[i].position.y,
        coins[i].position.z
      );
      coins[i].meshes[2] = new THREE.Mesh(
        geometries.coins[i].geometries[2],
        coins[i].materials[2]
      );
      coins[i].meshes[2].position.set(
        coins[i].position.x,
        coins[i].position.y,
        coins[i].position.z
      );
      coins[i].meshes[3] = new THREE.Mesh(
        geometries.coins[i].geometries[3],
        coins[i].materials[3]
      );
      coins[i].meshes[3].position.set(
        coins[i].position.x,
        coins[i].position.y,
        coins[i].position.z
      );
      coins[i].meshes[4] = new THREE.Mesh(
        geometries.coins[i].geometries[4],
        coins[i].materials[4]
      );
      coins[i].meshes[4].position.set(
        coins[i].position.x,
        coins[i].position.y,
        coins[i].position.z
      );
    }
  }

  map.add(
    coins[0].meshes[0],
    coins[0].meshes[1],
    coins[0].meshes[2],
    coins[0].meshes[3],
    coins[1].meshes[0],
    coins[1].meshes[1],
    coins[1].meshes[2],
    coins[1].meshes[3],
    coins[2].meshes[0],
    coins[2].meshes[1],
    coins[2].meshes[2],
    coins[2].meshes[3],
    coins[3].meshes[0],
    coins[3].meshes[1],
    coins[3].meshes[2],
    coins[3].meshes[3],
    coins[4].meshes[0],
    coins[4].meshes[1],
    coins[4].meshes[2],
    coins[4].meshes[3],
    coins[5].meshes[0],
    coins[5].meshes[1],
    coins[5].meshes[2],
    coins[5].meshes[3],
    coins[6].meshes[0],
    coins[6].meshes[1],
    coins[6].meshes[2],
    coins[6].meshes[3],
    coins[7].meshes[0],
    coins[7].meshes[1],
    coins[7].meshes[2],
    coins[7].meshes[3],
    coins[7].meshes[4]
  );
}
function createRenderer() {
  renderer = new THREE.WebGLRenderer({ antialias: true });
  renderer.setSize(container.clientWidth, container.clientHeight);

  renderer.setPixelRatio(window.devicePixelRatio);

  renderer.gammaFactor = 2.2;
  renderer.gammaOutput = true;

  renderer.physicallyCorrectLights = true;

  container.appendChild(renderer.domElement);
}
function update() {
  for (var i = 0; i < coins.length; i++) {
    for (var j = 0; j < coins[i].meshes.length; j++) {
      coins[i].meshes[j].rotation.x += coins[i].speed;
      coins[i].meshes[j].rotation.y += coins[i].speed;
      coins[i].meshes[j].rotation.z += coins[i].speed;
    }
  }
}
function render() {
  renderer.render(scene, camera);
}
function onWindowResize() {
  camera.aspect = container.clientWidth / container.clientHeight;
  camera.updateProjectionMatrix();
  renderer.setSize(container.clientWidth, container.clientHeight);
}
//window.addEventListener( 'resize', onWindowResize );
//window.addEventListener( 'mousemove', onMouseMove, false );
Editor is loading...