JSFiddle - React, Tailwind, and code Playground

by Javier Cruz

HTML

<script src="https://threejs.org/build/three.js"></script>
<script src="https://threejs.org/examples/jsm/controls/OrbitControls.js"></script>
<!DOCTYPE html>
<html>
    <head>
        <title>Three.js Network</title>
        <style>
            body { margin: 0; }
            canvas { display: block; }
            #tooltip {
                position: absolute;
                pointer-events: none;
                visibility: hidden;
                background-color: white;
                color: black;
                border: solid 1px black;
                padding: 5px;
            }
        </style>
    </head>
    <body>
        <div id="tooltip"></div>
        <script src="https://threejs.org/build/three.js"></script>
        <script src="https://threejs.org/examples/jsm/controls/OrbitControls.js"></script>
        <script>
            var numNodes = 1000;
            
            var scene = new THREE.Scene();
            var camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
            var renderer = new THREE.WebGLRenderer();
            renderer.setSize(window.innerWidth, window.innerHeight);
            document.body.appendChild(renderer.domElement);
            
            var positions = [];
            for (var i = 0; i < numNodes; i++) {
                var x = Math.random() * 40 - 20;
                var y = Math.random() * 40 - 20;
                var z = Math.random() * 40 - 20;
                positions.push(x, y, z);
            }
            
            var geometry = new THREE.BufferGeometry();
            geometry.setAttribute('position', new THREE.Float32BufferAttribute(positions, 3));
            
            var material = new THREE.PointsMaterial({size: 1.5, color: 0xffffff});
            
            var points = new THREE.Points(geometry, material);
            scene.add(points);
            
            camera.position.z = 50;
            
            var controls = new...