JSFiddle - React, Tailwind, and code Playground

HTML

<div id="container"></div>

    <script type="x-shader/x-vertex" id="vertexshader">

        attribute float size;
        attribute vec3 customColor;
        attribute vec3 hemiColor;
        varying vec3 vColor;

        void main() {
            vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );
            vColor = hemiColor;
            gl_PointSize = size * ( 300.0 / -mvPosition.z );
            gl_Position = projectionMatrix * mvPosition;
        }

    </script>

    <script type="x-shader/x-fragment" id="fragmentshader">

        uniform vec3 color;
            uniform sampler2D pointTexture;
            varying vec3 vColor;

            void main() {
                gl_FragColor = vec4( vColor, 1.0 );
                gl_FragColor = gl_FragColor * texture2D( pointTexture, gl_PointCoord );
                if ( gl_FragColor.a < 0.9 ) discard; // change to < 0.5 for shadows
            }

    </script>

    <script type="module">

        import * as THREE from 'https://threejs.org/build/three.module.js';
            import { OrbitControls } from 'https://threejs.org/examples/jsm/controls/OrbitControls.js';

        import { GLTFLoader } from 'https://threejs.org/examples/jsm/loaders/GLTFLoader.js';

        import Stats from 'https://threejs.org/examples/jsm/libs/stats.module.js';
        import { GUI } from 'https://threejs.org/examples/jsm/libs/dat.gui.module.js';

        let renderer, scene, camera, controls, stats;
        const raycaster = new THREE.Raycaster();
        const redMat = new THREE.MeshBasicMaterial({color: 'red'});
        const blueMat = new THREE.MeshBasicMaterial({color: 'blue'});

        init();
        animate();

        function init() {

            const container = document.getElementById( 'container' );

            scene = new THREE.Scene();
            scene.background = new THREE.Color('#ddd');

            camera = new THREE.PerspectiveCamera( 45, window.innerWidth / window.innerHeight, 1, 10000 );
           ...

CSS

body {
  margin: 0;
}