JSFiddle - React, Tailwind, and code Playground
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r71/three.js"></script>
JavaScript
var sw = window.innerWidth, sh = window.innerHeight;
var scene = new THREE.Scene();
var camera = new THREE.PerspectiveCamera( 100, sw / sh, 1, 10000 );
scene.add( camera );
var renderer = new THREE.WebGLRenderer({antialias: true});
renderer.setSize( sw, sh );
var material = new THREE.MeshBasicMaterial({ wireframe: true });
var geometry = new THREE.BoxGeometry(100, 100, 100);
var axis1 = new THREE.Object3D();
axis1.position.x = -100;
scene.add(axis1);
axis1.add(new THREE.AxisHelper(50));
var axis2 = new THREE.Object3D();
axis2.position.x = 100;
scene.add(axis2);
axis2.add(new THREE.AxisHelper(50));
var object = new THREE.Mesh(geometry, material);
object.position.x = 100;
scene.add(object);
object.add( new THREE.AxisHelper(20) );
document.body.appendChild(renderer.domElement);
camera.position.set(0, 0, 300);
camera.lookAt(scene.position);
var r = 0, t = 0, a = 0, axis = axis1;
axis.add(object);
setInterval(function(){
t ++;
if (t%100 == 0) {
a++;
a %= 2;
axis = a == 1 ? axis2 : axis1;
axis.add(object);
}
r += 0.01;
axis.rotation.y = r;
renderer.render(scene, camera);
}, 10);