// Make the geometry (of "distance" length) var geometry = new THREE.CylinderGeometry( 0.6, 0.6, distance, 8, 1, true ); // shift it so one end rests on the origin geometry.applyMatrix( new THREE.Matrix4().makeTranslation( 0, distance / 2, 0 ) ); // rotate it the right way for lookAt to work geometry.applyMatrix( new THREE.Matrix4().makeRotationX( THREE.Math.degToRad( 90 ) ) ); // Make a mesh with the geometry var mesh = new THREE.Mesh( geometry, material ); // Position it where we want mesh.position.copy( from.sceneObject.position ); // And make it point to where we want mesh.lookAt( to.sceneObject.position ); see https://github.com/mrdoob/three.js/issues/1606