JSFiddle - React, Tailwind, and code Playground

HTML

<script src="http://github.com/mrdoob/three.js/raw/master/build/three.min.js"></script>

CSS

body {
    margin: 0px;
    overflow: hidden;
    background-color: #f0f0f0;
}

JavaScript

// Hello World1 from https://github.com/mrdoob/three.js

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

    init();
    animate();

    function init() {

        camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 1, 10000 );
        camera.position.z = 1000;

        scene = new THREE.Scene();

        geometry = new THREE.CubeGeometry( 200, 200, 200 );
        
        var material = new THREE.ShaderMaterial(
        {
        fragmentShader: ["void main( void )",
        "{",
                "vec2 dSTdx = dFdx( vec2(1.0, 1.0) );",
                "gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0);",
        "}"].join("\n"),
        vertexShader: 
        ["#extension GL_OES_standard_derivatives : enable;void main()",
        "{",
                "vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );",
                "gl_Position = projectionMatrix * mvPosition;",
        "}"].join("\n")
        });

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

        renderer = new THREE.WebGLRenderer();
        renderer.setSize( window.innerWidth, window.innerHeight );

        document.body.appendChild( renderer.domElement );

    }

    function animate() {

        // note: three.js includes requestAnimationFrame shim
        requestAnimationFrame( animate );

        mesh.rotation.x += 0.01;
        mesh.rotation.y += 0.02;

        renderer.render( scene, camera );

    }