JSFiddle - React, Tailwind, and code Playground

by gianlucaguarini

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r74/three.js"></script>

CSS

canvas {
  width: 100vw;
  height: 100vh;
}

JavaScript

var camera, scene, renderer, geometry, material, mesh;

init();
animate();

function init() {

    scene = new THREE.Scene();

    camera = new THREE.PerspectiveCamera(50, window.innerWidth / window.innerHeight, 1, 10000);
    camera.position.z = 500;
    scene.add(camera);

    geometry = new THREE.CubeGeometry(200, 200, 200);
    material = new THREE.MeshNormalMaterial();

    mesh = new THREE.Mesh(geometry, material);
    scene.add(mesh);

    renderer = new THREE.WebGLRenderer({
      antialias: true
    });
    renderer.setSize(window.innerWidth, window.innerHeight);

    document.body.appendChild(renderer.domElement);

}

function animate() {

    requestAnimationFrame(animate);
    render();

}

var frames = 0

function render(time) {

    mesh.rotation.x += 0.01;
    mesh.rotation.y += 0.02;
    
    if (frames % 100 === 0) {
    	renderer.setPixelRatio(Math.random());
    }
    renderer.render(scene, camera);
    
    frames ++;

}