<script>

var scene = new THREE.Scene();
var camera = new THREE.PerspectiveCamera ( 40,( window.innerWidth)/(window.innerHeight), 0.1, 1000 );

var renderer1 = new THREE.WebGLRenderer();
renderer1.setSize( window.innerWidth, window.innerHeight );
document.body.appendChild( renderer1.domElement );

var geometry = new THREE.SphereGeometry(0.5, 32, 32);
var materialGreen = new THREE.MeshBasicMaterial( { color: 0x0ad818, wireframe: true, wireframeLinewidth: 3 } );
var materialRed = new THREE.MeshBasicMaterial( { color: 0xff0000, wireframe: true, wireframeLinewidth: 3 } );

var ball01 = new THREE.Mesh(geometry, materialGreen);
scene.add(ball01);
ball01.position.set( -0.75,0, 0 )

var ball02 = new THREE.Mesh(geometry, materialRed);
scene.add(ball02);
ball02.position.set( 0.75,0, 0 )

var timer = 0;

var render = function () {
requestAnimationFrame( render );

timer = timer + 0.004;
camera.position.x = math.cos( timer ) * 2;
camera.position.z = math.sin( timer ) * 2;
ball02.rotation.y += 0.001;
ball01.rotation.x += 0.001;
camera.lookAt( scene.position );

renderer1.render(scene, camera);
};
render();

</script>

Three.js Torus Knot