get bounding sphere of a scene

by jscastro76

HTML

<script src="https://threejs.org/build/three.js"></script>
	<script src="https://threejs.org/examples/js/controls/OrbitControls.js"></script>
  
  <canvas id="myCanvas"/>

CSS

body {
			background-color: #fff;
			margin: 0px;
			overflow: hidden;
		}

JavaScript

var mesh, renderer,
			scene,
			controls,
			camera,
			container = document.getElementById('myCanvas');

		//RENDERER
		renderer = new THREE.WebGLRenderer({
			canvas: container,
			antialias: true
		});
		//renderer.setClearColor(0x000000);
		renderer.setPixelRatio(window.devicePixelRatio); //device pixel ratio
		renderer.setSize(window.innerWidth, window.innerHeight); //canvas size

		init();

		function init() {


			scene = new THREE.Scene();
			scene.background = new THREE.Color(0x999999);
			var light = new THREE.AmbientLight(0xffffff, 1);

			light.position.set(0.5, 1.0, 0.5).normalize();
			scene.add(light);
			camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
			camera.position.fromArray([-20, 10, -140]);
			scene.add(camera);

			controls = new THREE.OrbitControls(camera, container);
			let g = new THREE.Group();
			scene.add(g);
			for (let i = 0; i < 5; i++) {

				// geometry
				var geometry = new THREE.BoxGeometry(20, 20, 20);

				// material
				var material = new THREE.MeshToonMaterial({
					color: 0xff0000,
					opacity: 0.7,
				});

				// mesh
				mesh = new THREE.Mesh(geometry, material);
				mesh.position.set(100 * Math.random(), 100 * Math.random(), 100 * Math.random());
				g.add(mesh);
			}

			//g.updateWorldMatrix(true);
			var gridHelper = new THREE.GridHelper(400, 40, 0x0000ff, 0x808080);
			gridHelper.position.y = 0;
			gridHelper.position.x = 0;
			scene.add(gridHelper);

			let bbox = new THREE.Box3().setFromObject(g);
			let helper = new THREE.Box3Helper(bbox, new THREE.Color(0, 255, 0));
			scene.add(helper);

			const center = new THREE.Vector3();
			bbox.getCenter(center);

			let bsphere = bbox.getBoundingSphere(new THREE.Sphere(center));
			let m = new THREE.MeshStandardMaterial({
				color: 0xffffff,
				opacity: 0.3,
				transparent: true
			});
			var geometry = new THREE.SphereGeometry(bsphere.radius, 32, 32);
			let sMesh = new THREE.Mesh(geometry,...