t-141: stage-1 sprite extraction (individual PNGs, no scene/page) - #49
Closed
mahoudeau wants to merge 1 commit into
Closed
t-141: stage-1 sprite extraction (individual PNGs, no scene/page)#49mahoudeau wants to merge 1 commit into
mahoudeau wants to merge 1 commit into
Conversation
t-59 (the old monolithic office-sample-scene loop) was discarded by the boss's re-scope and replaced by three stage-separated missions; this is t-141, stage 1 (sprites only). Its own Acceptance is explicit that the deliverable is "individual transparent, native-resolution PNGs... No scene, no animation, no page" — a different shape than what 28 rounds of t-59 work had been producing (a single composed atlas.png + an office-sample.html demo page). This commit is that stage-1 deliverable, built fresh off main (rectify.py never lived on main; t-59's branch was never merged) rather than carrying over t-59's scene/page files. Brings over from t-59's branch (discarded mission, reusable tool): - hub/tools/rectify.py at its round-28 state (commit 0298b16 on t-59-office-sample-scene): grid-fit + per-cell-vote + key-to-alpha + 48px-anchor scaling, plus round 27/28's fixes to build_shared_palette (a two-band hue+distance gate against key-color residue in palette candidates, not just edge cells). - The 4 rectify-manifests/ (typing4/desk/tiles/window) citing each sprite's exact source sheet + region + pitch, unchanged. New: hub/public/office-sample-assets/sprites/{agent,desk,tiles,window}/, 10 individual transparent PNGs (idle-anchor, typing-0..3, desk-tidy, chair, floor-wood, wall-cracked, window-blue-night) + each group's own rectify-report.json (the tool's own output — source sheet, exact region box, phase, pitch, sha256 — IS the citation manifest the Acceptance asks for, not hand-transcribed). sprites/MANIFEST.md indexes the set and states what's verified. Verified fresh on this branch, not assumed from t-59's own claims: - Re-ran all 4 manifests against the vendored tool + committed manifests; every one of the 10 output PNGs is sha256-identical to what's committed (byte-for-byte, not just visually). - Determinism: re-ran the typing4 manifest twice, byte-identical both times. - Zero key-adjacent opaque pixels: full pixel sweep (not sampled) over all 10 PNGs using the same distance+hue test build_shared_palette itself uses (color_dist < 60 OR magenta_hue_score > 40 on any fully-opaque pixel) — 0 hits. - Each rectify-report.json confirms every group (undercut-agent, desk's own group, tiles' own group, window's own group) built its palette from only its own region votes — THE PALETTE LAW's per-subject isolation, read directly off rectify.py's main(), not just asserted. Disclosed, not silently dropped (sprites/MANIFEST.md's own "NOT yet covered" section): - Two named prop sprites — CRT monitor, wall monitor — have no manifest yet; the 4 manifests here predate this mission. Next round. - A second, alternate round-28 tool fix exists on a side branch (bettik-t141-palette-law-handoff, commit 58ad5b9): restores accent_max_area_frac to its documented 0.01 default (the mechanism the mission's own Palette Law text names — "small saturated accents are exempted and preserved") plus a freshly-calibrated palette_hue_tolerance (25, margin-checked against every disclosed bad-pixel example and every real skin/hair/suit color in these sheets), instead of 0298b16's palette_size 28->128 bump + a reused (not recalibrated) hue tolerance. Both independently verified clean on every mechanical check; not merged here since 0298b16's version is what these committed sprites were actually rectified from — flagging the alternative for a future round to diff and potentially swap in, not silently picking a winner. - Face/hair precision still reads softer than the reference sheets at this native pixel count (both round-28 attempts disclose the same gap) — a critic judgment call per this mission's own Acceptance, not a palette-law violation. Gate stays critic; parking for review, not self-declared done.
Owner
Author
|
Closing as superseded by #50 — a concurrent
No quality issue with this PR's own work as far as it went — just redundant with the more complete delivery. Consolidating on one PR so the critic has a single thing to judge. Generated by Claude Code |
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.
Stage 1 of the t-59 re-scope (extraction / composition / animation now separate, frozen-output stages). Deliverable per t-141's own Acceptance: individual transparent, native-resolution PNGs + a manifest citing each sprite's exact source — no composed atlas, no scene, no page.
What's here
hub/tools/rectify.py— carried over from the (now-discarded) t-59 branch at its round-28 state, including round 27/28's palette-starvation and key-hue-residue fixes. Never lived onmainbefore (t-59's branch was never merged), so this is a fresh add, not a diff.hub/public/office-sample-assets/rectify-manifests/— the 4 manifests (typing4/desk/tiles/window) citing each sprite's source sheet + region + pitch.hub/public/office-sample-assets/sprites/{agent,desk,tiles,window}/— 10 individual transparent PNGs + each group's ownrectify-report.json(the tool's own output, which is the source citation the Acceptance asks for).sprites/MANIFEST.mdindexes the set.Verified fresh on this branch
rectify.py's own grouping logic.Disclosed, not silently dropped
bettik-t141-palette-law-handoff, commit58ad5b9) using the accent-exemption mechanism the mission's own Palette Law text names, instead of this branch's palette-size bump. Not merged here since these committed sprites were rectified from the version in this PR; flagged for a future round to diff/swap.Gate stays critic; parking for review, not self-declared done.
🤖 Generated with Claude Code
Generated by Claude Code