From fd162f820bd4ab38164f2e2ebe008c53ea55d930 Mon Sep 17 00:00:00 2001 From: Pete Gordon Date: Wed, 1 Jul 2026 21:15:48 -0400 Subject: [PATCH] Don't reset camera view/zoom on gyro calibration (#94) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit startCalibration() called overlay.setCameraPreset(), which snaps the camera position (both angle AND zoom distance) back to a preset. So every recalibrate (L3+R3) stomped the user's manual zoom/pan, making it hard to use the full window. Calibration only needs to re-zero gyro bias + orientation (resetGyroState); it has no business moving the camera — and finishCalibration already doesn't. Removed the setCameraPreset call. The initial view is still set once at overlay init, and the preset selector still works on demand. Closes #94 Co-Authored-By: Claude Opus 4.8 (1M context) Claude-Session: https://claude.ai/code/session_01HwZjBdVgWqxqCoKkXsZnr4 --- apps/overlay/src/js/app.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/apps/overlay/src/js/app.js b/apps/overlay/src/js/app.js index e3dd28d..d7e1017 100644 --- a/apps/overlay/src/js/app.js +++ b/apps/overlay/src/js/app.js @@ -1795,8 +1795,10 @@ function startCalibration() { calibSamples = []; calibRetries = 0; resetGyroState(); - // Reset camera to selected preset on calibration - overlay.setCameraPreset(selectedCameraPreset); + // NB: calibration must NOT touch the camera. It only re-zeros gyro bias + + // orientation; snapping the view to a preset here stomped the user's manual + // zoom/pan every time they recalibrated (#94). The camera keeps its own + // preset controls; leave the current view alone. showCalibHint('Calibrating...', null); }