diff --git a/src/core/view/InteractiveCameraHandler.cpp b/src/core/view/InteractiveCameraHandler.cpp
index bf81d015c493e0c613ad0d34b5fa18ff2b5e42bd..dbb3cca14aadde3e583e1cd6ac8bbc54e444c074 100755
--- a/src/core/view/InteractiveCameraHandler.cpp
+++ b/src/core/view/InteractiveCameraHandler.cpp
@@ -92,6 +92,7 @@ namespace sibr {
 	{
 		_raycaster = raycaster;
 		_viewport = viewport;
+		_radius = areaOfInterest.diagonal().norm();
 		// Use the trackball to compute an initial camera.
 		_trackball.fromBoundingBox(areaOfInterest, viewport);
 		fromCamera(_trackball.getCamera(), false);
@@ -104,6 +105,20 @@ namespace sibr {
 			setupInterpolationPath(cams);
 		}
 		// Update the near and far planes.
+
+		sibr::Vector3f center(0, 0, 0);
+		for (const auto& cam : cams) {
+			center += cam->transform().position();
+		}
+		center /= cams.size();
+
+		float avgDist = 0;
+		for (const auto& cam : cams) {
+			avgDist += (cam->transform().position() - center).norm();
+		}
+		avgDist /= cams.size();
+		_radius = avgDist;
+
 		sibr::InputCamera idealCam = *cams[0];
 		if(clippingPlanes[0] < 0.0f || clippingPlanes[1] < 0.0f) {
 			float zFar = -1.0f, zNear = -1.0f;
diff --git a/src/projects/gaussianviewer/apps/gaussianViewer/main.cpp b/src/projects/gaussianviewer/apps/gaussianViewer/main.cpp
index 75cf3041af29cccb69b5f50961da9213bf28af82..9e8b9116ddb979054a08ecd31c91e19e7f42ca0b 100644
--- a/src/projects/gaussianviewer/apps/gaussianViewer/main.cpp
+++ b/src/projects/gaussianviewer/apps/gaussianViewer/main.cpp
@@ -177,7 +177,7 @@ int main(int ac, char** av)
 
 	// Camera handler for main view.
 	sibr::InteractiveCameraHandler::Ptr generalCamera(new InteractiveCameraHandler());
-	generalCamera->setup(scene->cameras()->inputCameras(), Viewport(0, 0, (float)usedResolution.x(), (float)usedResolution.y()), raycaster);
+	generalCamera->setup(scene->cameras()->inputCameras(), Viewport(0, 0, (float)usedResolution.x(), (float)usedResolution.y()), nullptr);
 
 	// Add views to mvm.
 	MultiViewManager        multiViewManager(window, false);
diff --git a/src/projects/remote/apps/remoteGaussianUI/main.cpp b/src/projects/remote/apps/remoteGaussianUI/main.cpp
index b6f741949ee063db3691ef9f888b8c4bce36e0e2..1791e3f33a198f05657b9a8fb35c5ce42c187206 100644
--- a/src/projects/remote/apps/remoteGaussianUI/main.cpp
+++ b/src/projects/remote/apps/remoteGaussianUI/main.cpp
@@ -94,7 +94,7 @@ void resetScene(RemoteAppArgs myArgs,
 
 	// Camera handler for main view.
 	sibr::InteractiveCameraHandler::Ptr generalCamera(new InteractiveCameraHandler());
-	generalCamera->setup(scene->cameras()->inputCameras(), Viewport(0, 0, (float)usedResolution.x(), (float)usedResolution.y()), raycaster);
+	generalCamera->setup(scene->cameras()->inputCameras(), Viewport(0, 0, (float)usedResolution.x(), (float)usedResolution.y()), nullptr);
 
 	// Top view
 	topView.reset(new sibr::SceneDebugView(scene, generalCamera, myArgs));