Skip to content

feat(viewer): walkthrough FOV 60° + refresh ceiling-fan model#445

Merged
wass08 merged 2 commits into
fix/bake-door-window-animsfrom
polish/viewer-baking
Jun 26, 2026
Merged

feat(viewer): walkthrough FOV 60° + refresh ceiling-fan model#445
wass08 merged 2 commits into
fix/bake-door-window-animsfrom
polish/viewer-baking

Conversation

@wass08

@wass08 wass08 commented Jun 26, 2026

Copy link
Copy Markdown
Collaborator

Two small viewer/asset polish changes. Stacked on #444 (fix/bake-door-window-anims) because private-editor currently pins that SHA; retarget to main once #444 merges.

Walkthrough FOV → 60°

The first-person walkthrough rode the default 50° orbit camera, which feels cramped on foot. Both controllers — the baked GlbWalkthroughController and the parametric WalkthroughControls fallback — now apply a shared WALKTHROUGH_FOV = 60 on enter and restore the prior FOV on exit (cleanup-based), so orbit framing is untouched.

Ceiling-fan model refresh

The bundled apps/editor/public/items/ceiling-fan/model.glb was stale (no animation clip, two slots). Replaced with the variant matching production storage — On clip + a third slot_base paint slot. Same dimensions/offset, no catalog change.

🤖 Generated with Claude Code


Note

Low Risk
Localized viewer camera FOV toggles with cleanup restore; no security, data, or API surface changes.

Overview
First-person walkthrough felt cramped on the default 50° orbit camera. This introduces a shared WALKTHROUGH_FOV = 60 in walkthrough-controls and applies it in both WalkthroughControls (when walkthroughMode is on) and GlbWalkthroughController (for baked GLB walkthrough).

Each path saves the current perspective fov, sets 60°, calls updateProjectionMatrix(), and restores the previous FOV in effect cleanup so orbit framing is unchanged after exit. The GLB controller keys the effect on camera so FOV re-applies if the camera instance changes (e.g. orthographic→perspective switch already in that component).

Reviewed by Cursor Bugbot for commit 70acf89. Bugbot is set up for automated code reviews on this repo. Configure here.

wass08 and others added 2 commits June 26, 2026 15:51
The bundled ceiling-fan model.glb was stale (no animation clip, two slots).
Replace it with the variant matching production storage: an `On` animation
clip and a third `slot_base` paint slot. Same dimensions/offset, so no catalog
metadata change.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The walkthrough rode the default 50° orbit camera, which feels cramped on
foot. Both walkthrough controllers (baked GlbWalkthroughController and the
parametric WalkthroughControls fallback) now set a shared WALKTHROUGH_FOV = 60
on enter and restore the prior FOV on exit, leaving orbit framing untouched.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 70acf89. Configure here.

cam.fov = prevFov
cam.updateProjectionMatrix()
}
}, [camera])

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stacked FOV restores wrong value

Medium Severity

When WalkthroughControls and GlbWalkthroughController are both in the canvas, each FOV effect saves whatever cam.fov is at run time. If the GLB effect runs after the parametric one, its cleanup restores 60° instead of the original orbit FOV, leaving wide-angle framing after walkthrough ends.

Additional Locations (1)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 70acf89. Configure here.

@wass08 wass08 merged commit 61f3921 into fix/bake-door-window-anims Jun 26, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant