JSFiddle - React, Tailwind, and code Playground

HTML

<script src="//cdn.rawgit.com/mrdoob/three.js/master/build/three.js"></script>
<script src="https://threejs.org/examples/js/controls/OrbitControls.js"></script>

CSS

body {
	  margin: 0;
    overflow: hidden;
}

JavaScript

let camera, cameraOrtho, scene, sceneOrtho, renderer, mesh, sprite, lineGeometry;

const spriteWorldCoords = new THREE.Vector3();
const spriteDimensions = new THREE.Vector2( 128, 128 );

init();
animate();

function init() {

	const width = window.innerWidth;
	const height = window.innerHeight;

  camera = new THREE.PerspectiveCamera( 70, width / height, 0.01, 10 );
  camera.position.z = 1;
  
  cameraOrtho = new THREE.OrthographicCamera( - width / 2, width / 2, height / 2, - height / 2, 0.01, 10 );
	cameraOrtho.position.z = 1;

  scene = new THREE.Scene();
  sceneOrtho = new THREE.Scene();
  
  // mesh

  const geometry = new THREE.BoxBufferGeometry( 0.2, 0.2, 0.2 );
  const material = new THREE.MeshNormalMaterial();

  mesh = new THREE.Mesh( geometry, material );
  scene.add( mesh );
  
  // sprite
  
  const textureLoader = new THREE.TextureLoader();
  const texture = textureLoader.load( 'https://threejs.org/examples/textures/sprite0.png' );
  const spriteMaterial = new THREE.SpriteMaterial( { map: texture } );
  sprite = new THREE.Sprite( spriteMaterial );
  
  sprite.scale.set( spriteDimensions.x, spriteDimensions.y, 1 );
  sceneOrtho.add( sprite );
  
 	updateSprite();
  
  // line
  
  lineGeometry = new THREE.BufferGeometry();
  lineGeometry.setFromPoints( [ mesh.position.clone(), sprite.position.clone() ] );
  lineGeometry.attributes.position.dynamic = true;
  const lineMaterial = new THREE.LineBasicMaterial( { color: 0xffffff } );
  const line = new THREE.Line( lineGeometry, lineMaterial );
  scene.add( line );
  
  //

  renderer = new THREE.WebGLRenderer( { antialias: true } );
  renderer.setPixelRatio( window.devicePixelRatio );
  renderer.setSize( window.innerWidth, window.innerHeight );
  renderer.autoClear = false;
  document.body.appendChild( renderer.domElement );

  window.addEventListener( 'resize', onWindowResize, false );
  
  const controls = new THREE.OrbitControls( camera, renderer.domElement );

}

function onWindowResize() {

	const...