diff --git a/src/components/ThreeCanvas.tsx b/src/components/ThreeCanvas.tsx index 08fab4a..15c75bf 100644 --- a/src/components/ThreeCanvas.tsx +++ b/src/components/ThreeCanvas.tsx @@ -1035,6 +1035,10 @@ export default function ThreeCanvas({ }, [onSceneReady]); // 5. Re-build Avatar ONLY when layout, geometry, or appearance configurations change + // NOTE: Do NOT call fitCameraToAvatar here - that resets the user's + // OrbitControls zoom/pan position every time a slider changes (feather, + // crop, colors, etc). Camera framing is handled separately by the + // cameraPreset/cameraFov effect above. useEffect(() => { if (!sceneRef.current) return; @@ -1049,15 +1053,6 @@ export default function ThreeCanvas({ sceneRef.current.add(avatarGroup); avatarGroupRef.current = avatarGroup; - if (cameraRef.current) { - fitCameraToAvatar( - cameraRef.current, - controlsRef.current, - avatarGroup, - config.cameraPreset - ); - } - if (onSceneReadyRef.current) { onSceneReadyRef.current(avatarGroup); }