cone = {
const phi = THREE.Math.randFloat(0, Math.PI * 2),
theta = THREE.Math.randFloat(0, Math.PI * 2),
normal = new THREE.Vector3().setFromSphericalCoords(sphere_radius, phi, theta).normalize()
const cone_radius = sphere_radius / 20,
cone_height = sphere_radius / 4,
cone_radial_segments = 20,
cone_height_segments = 20
const material = new THREE.MeshNormalMaterial()
const geometry = new THREE.ConeGeometry(cone_radius, cone_height, cone_radial_segments, cone_height_segments)
geometry.rotateX( THREE.Math.degToRad(90) )
const cone = new THREE.Mesh(geometry, material)
cone.lookAt(normal)
cone.position.copy(normal).multiplyScalar(sphere_radius + cone_height/2)
sphere.add(cone)
return cone
}