3D fitted rendered still (declared poster slot) - #6032
Draft
lukemelia wants to merge 6 commits into
Draft
Conversation
ThreeDModelDef (GLB, glTF, STL, 3MF inherit it) declares a poster screenshot slot whose capture-only component loads the model with the same pinned three.js CDN builds the live orbit viewer uses, frames it with the viewer's default camera direction and bounds-derived distance, lights it with the viewer's fixed rig, and renders exactly one frame — no controls, no damping, no animation mixers, so unchanged bytes byte-hash to the same still across reindexes. Readiness flows through the data-screenshot-pending contract; an unparsable model resolves readiness and leaves the cube-glyph fallback in place. keyBy 'file-content' + useAsThumbnail route the still to the fitted cell through the view model's thumbnail seam. Part of CS-12574. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…-12574-3d-fitted-rendered-still-poster-slot
Contributor
Host Test Results 1 files ±0 1 suites ±0 2h 6m 18s ⏱️ + 4m 1s Results for commit eed4d8b. ± Comparison against earlier commit 4612ee9. Realm Server Test Results 1 files ±0 202 suites ±0 1h 12m 48s ⏱️ + 2m 11s Results for commit eed4d8b. ± Comparison against earlier commit 4612ee9. For more details on these errors, see this check. |
…-12574-3d-fitted-rendered-still-poster-slot
…-12574-3d-fitted-rendered-still-poster-slot
…-12574-3d-fitted-rendered-still-poster-slot
…-12574-3d-fitted-rendered-still-poster-slot
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this does
Stacked on #6031 (video poster frame).
ThreeDModelDef(GLB / glTF / STL / 3MF families inherit it) declares aposterscreenshot slot (170×250 @ dsf 2,keyBy: 'file-content',useAsThumbnail). The capture-only component (file-formats/model3d-captures) loads the model, frames it, and renders one WebGL frame:three@0.160.0via esm.sh) and per-format loaders the live orbit viewer already uses — loaded only inside the capture render.render()call, then thedata-screenshot-pendingreadiness signal drops. Unchanged bytes byte-hash to the same still across reindexes.Test plan
Realm-server e2e (extends the file-capture suite): writes the licensed
glb-simple.glbfixture, asserts the poster manifest entry and that the prerendered fitted HTML embeds the durable still URL. CI-validated (the cached-fixture suite doesn't run locally); the capture render fetching three.js from esm.sh inside prerender Chrome is the piece to watch on CI.🤖 Generated with Claude Code