// Initialize all managers const sceneManager = new SceneManager(); const cameraManager = new CameraManager(); const rendererManager = new RendererManager(); const controlsManager = new ControlsManager( cameraManager.getCamera(), rendererManager.getRenderer() ); // Get instances const scene = sceneManager.getScene(); const camera = cameraManager.getCamera(); const renderer = rendererManager.getRenderer(); const controls = controlsManager.getControls(); const gridHelper = sceneManager.getGridHelper(); // GLB Loader const loader = new THREE.GLTFLoader(); // Initialize Debug UI const debugUI = new DebugUI(scene, camera, controls, gridHelper, loader); // Animation loop const clock = new THREE.Clock(); function animate() { requestAnimationFrame(animate); const delta = clock.getDelta(); // Update controls controlsManager.update(); // Update animations debugUI.updateAnimationMixer(delta); // Render scene rendererManager.render(scene, camera); } // Start animation animate();