feat(touch): refresh Home artwork and smooth deck dismissal - #21
Merged
Merged
Conversation
doodlewind
marked this pull request as ready for review
September 18, 2026 01:09
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.
The E7 Home wallpaper had coarse edges and a dither grid, and dismissing a browsed app deck exposed overlapping window contents while sweeping offscreen apps through Home. Rebuild the Home artwork, pin the RGB888 surface fix, and preserve opaque card occlusion during dismissal. pocket-stack/pocketjs#447 must merge before this PR. Both PRs remain open for review.
All sixteen Home-screen icons use original Blender-authored relief artwork baked to 128×128 RGBA textures. The tiles retain the original 56-pixel footprint and 16-pixel circular corners. Transparent black around the earlier bakes became a dark fringe under GLES bilinear sampling. Blender now renders an opaque plane beyond the boundary; the baker area-averages the color, applies the corner coverage mask once, and preserves RGB under zero alpha with the raw PNG encoder.
Books uses curved paper meshes with a gutter and page thickness. Music is moved down and centered, with note heads scaled around their own centers. Calendar keeps the large date and a red accent; Calculator uses four large arithmetic keys; Settings uses one eight-tooth satin gear. All icons retain their interior materials and shadows.
The recipes are maintained in
shells/touch/art/. Normal builds consume committed PNGs without Blender. The two Home pages and dock share the same textures, one image node per icon. All seventeen textures total 2 MiB of RGBA texels. E7 builds request 60 Hz and retain the standalone mock-app catalog without Clear/Voxel navigation.Deck dismissal now withdraws the visible group through the left edge while a shared wallpaper layer covers it. Cards parked beyond the right edge stay outside the viewport; card contents remain opaque until covered. A new gesture can catch or reverse the transition without resetting the visible pose. Retained windows and app recency survive dismissal. Conservative clipping skips the part of each rear card covered by an opaque front card, including a guard around rounded corners.
Validation for the dismissal fix:
PATH="$HOME/.cargo/bin:$PATH" bun run check: 224 tests pass, including 50 touch-shell tests, all type checks and the asset audit. Linux and macOS CI pass atf7f4087; the following69fb786commit adds the replay input-integrity check and passes its focused validation and type check.OpenGL ES 2.0,VideoCore III HW, framebuffer8 8 8 0, and zero inactive frames. Touch presence matches the fixture through both measured exits; later extra contacts are outside the reported intervals. A separate repeat with extra input at 133 ms is rejected by the new analyzer check.The first dismissal's 30-frame interval falls from 684 to 598 ms of wall time; its p95 frame duration falls from 48 to 40 ms. The second dismissal shows no measured improvement. Complex deck views remain below 60 fps. These are native host submission/presentation timings, not GPU execution, physical touch latency or panel-scanout measurements. Mounted frame captures reproduce the original ghosting and verify the revised composition.
Device/build status:
0c9e02f7; profile 0.3.25 SIS SHA-256794ccfb6f17f6e7ad17506f4b65fdce982c94b331215d9c68e85639fb0f12197.67c99151b2640f78698e640c41bc532a3ae55b23fd9700669257ab8bf3a0b621and PAK SHA-2565bd50dd4034990aad3fa5035f7b7e291dcd2e000cfe697f445f7117669719ecbmatch the measured profile build. Navigation is empty and Clear/Voxel are not bundled.0c54c44c4d16f65993b950e5ad1a7fb1dbe933fd92bc2e8a3cb9811ac0531aebwas transferred to the E7 and read back byte-for-byte. USB disconnected before final installation; normal-install confirmation and helper cleanup are pending reconnection. The last confirmed installed build is the 0.3.25 profiler.2b67012was installed on both devices; its iPod buildc7ba288bb80d763ac794ce817ad48f2epassed 15 injected journeys. That prior hardware result does not certify this dismissal change on iPod.Artwork validation at
2b67012: all sixteen Blender scenes were rendered at 512×512; both physical Home pages and 56/112px edge sampling were reviewed. Maximum sampling-edge darkening fell from 33.11 to 0.42 channel levels at 56px and from 38.32 to 0.19 at 112px. Both PAKs contained byte-exact icon entries including RGB beneath zero alpha and the linear-sampling flag.Reproduce:
shells/touch/art/README.md.bun run touch:e7 buildfor the normal SIS or append--perf-tracefor measurement; deployment instructions are inshells/touch/README.md.bun shells/touch/scripts/e7-perf.ts make <input.tsv> 360 640 deck-dismiss.bun shells/touch/scripts/e7-perf.ts analyze <trace.tsv> 360 640 deck-dismiss. Leave the screen untouched through the measured exits.bun run touch deploy,bun run touch launch, thenbun run --cwd shells/touch test:devicewithbun run touch tunnelrunning.Current traces, intermediate captures, SIS files and build/install receipts stay in ignored
.pocket-build/validation/touch-deck-dismiss/20260918/. Prior artwork evidence stays in.pocket-build/validation/touch-clean-icons/20260918/; Blender scenes/render sheets stay in.pocket-build/touch-clean-art/. No per-run artifacts are committed.