Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
16 commits
Select commit Hold shift + click to select a range
2b152f4
Office sample scene: round 15 (spy-HQ cool reframe + craft fixes)
claude Aug 16, 2026
975c9fd
Office sample scene: round 16 (shading detail/resolution) - t-59
claude Aug 16, 2026
fa2c8b0
Office sample scene: round 17 (hair, technique not quantity) - t-59
claude Aug 16, 2026
ae7f62a
Office sample scene: round 18 (hair silhouette lock count) - t-59
claude Aug 16, 2026
9f6fc2c
Office sample scene: round 19 (hair, shadow-lock contrast) - t-59
claude Aug 16, 2026
2e37633
Office sample scene: round 20 (extraction pivot) - t-59
claude Aug 16, 2026
9c897ec
Office sample scene: round 21 (light-direction fix + palette stabilit…
claude Aug 16, 2026
c488a58
Office sample scene: round 22 (fix compression-artifact noise) - t-59
claude Aug 16, 2026
b779eb4
Office sample scene: round 23 (rectifier foundation, boss re-scope) -…
claude Aug 16, 2026
74898f0
Office sample scene: round 24 (chroma-key + composition fixes) - t-59
claude Aug 16, 2026
4f849ad
Office sample scene: round 25 (accent-artifact root cause) - t-59
claude Aug 16, 2026
f702ff7
Office sample scene: round 26 (chair re-source, window re-crop, furni…
claude Aug 16, 2026
0253acb
Office sample scene: round 26 follow-up (baseline/depth alignment) - …
claude Aug 16, 2026
3071ab5
Office sample scene: round 27 (chroma-key hue-fringe, tool-level fix)…
claude Aug 16, 2026
0298b16
Office sample scene: round 28 (face/hair shading, palette-starvation …
claude Aug 17, 2026
528844e
Office sample: round 28 follow-up — disclose t-59's discard/re-scope …
claude Aug 17, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added hub/public/office-sample-assets/atlas.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
122 changes: 122 additions & 0 deletions hub/public/office-sample-assets/frames.json

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
{
"sheet": "props/sheet-desks-workstations-v2.jpg",
"background_key": [
255,
0,
255
],
"key_tolerance": 170,
"anchor_region": [
45,
10,
175,
455
],
"anchor_logical_height": 48,
"palette_size": 24,
"accent_saturation_min": 0.5,
"accent_max_area_frac": 0,
"regions": [
{
"name": "desk-tidy",
"x": 1035,
"y": 254,
"w": 350,
"h": 201,
"group": "desk"
},
{
"name": "chair",
"x": 55,
"y": 519,
"w": 159,
"h": 239,
"group": "chair",
"_round26": "Switched from the side-view chair (x515 y513, row 3) to the front-facing chair at the start of the same row, tight-cropped to its own connected component. See frames.json's round26Fixes.chair for why."
}
],
"_comment": "Sheet path is relative to projects/bureau/references/office/ in the brain (GET /api/knowledge?file=projects/bureau/references/office/<sheet>&raw=1) \u2014 download it there first, the reference sheets are not committed to git. Re-run: python3 hub/tools/rectify.py <this-file> --out-dir /tmp/check (after adjusting 'sheet' to your local download path) and diff the sha256 in the matching report-*.json against this atlas's own sprite hashes."
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
{
"sheet": "props/sheet-tiles-surfaces-v2.jpg",
"background_key": [
255,
0,
255
],
"key_tolerance": 170,
"anchor_region": [
50,
10,
165,
240
],
"anchor_logical_height": 48,
"palette_size": 32,
"accent_saturation_min": 0.15,
"accent_max_area_frac": 0,
"regions": [
{
"name": "floor-wood",
"x": 270,
"y": 20,
"w": 265,
"h": 220,
"group": "floor"
},
{
"name": "wall-cracked",
"x": 1130,
"y": 20,
"w": 255,
"h": 220,
"group": "wall"
}
],
"_comment": "Sheet path is relative to projects/bureau/references/office/ in the brain (GET /api/knowledge?file=projects/bureau/references/office/<sheet>&raw=1) \u2014 download it there first, the reference sheets are not committed to git. Re-run: python3 hub/tools/rectify.py <this-file> --out-dir /tmp/check (after adjusting 'sheet' to your local download path) and diff the sha256 in the matching report-*.json against this atlas's own sprite hashes."
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
{
"sheet": "cast/sheet-agent-undercut-typing.jpg",
"background_key": [
255,
0,
255
],
"key_tolerance": 170,
"anchor_region": [
24,
22,
150,
362
],
"anchor_logical_height": 48,
"palette_size": 128,
"_comment_palette_size": "Round 28: raised from 28. Root cause of the round-14..27 face/hair craft gap (moneta's round-26 23:54 lead) was NOT an inherent scale limit — raw cell-vote inspection (pre-palette-snap) showed a genuine multi-tone skin ramp (highlight ~(229,151,123) to deep shadow ~(40,4,1)) and hair variation present in the source votes. build_shared_palette's frequency-sorted 'base = base[:palette_size]' truncation was dropping every warm/skin bucket before the top-28 cut: skin/hair occupy a small fraction of total cell area next to the navy suit + cool background + monitor bezel that dominate all 5 frames in this shared-palette group, so their buckets always ranked below the cut regardless of how visually distinct they are. This is NOT the accent_max_area_frac=0 exemption's job (round 25's fix, left untouched here) — skin saturation measured ~0.38-0.46, under accent_saturation_min's 0.5 floor, so it was never accent-eligible and was never meant to be; the real fix is giving the base palette enough room to keep small-area-but-distinct material ramps instead of starving them. 128 chosen empirically: warm/skin candidates in the resulting palette go 0 (at 28) -> 1 (48) -> 2 (64) -> 6 (96) -> 12 (128) -> 12 (160) -> 13 (200) — diminishing returns clearly set in by 128, so it captures the real ramp without needlessly ballooning past the point of new information. Verified: does not touch accent_max_area_frac, does not touch cell_vote_grid/chroma-key logic at all — palette_size only changes how many BASE (already-outer_tol-cleared, non-accent) buckets survive truncation.",
"accent_saturation_min": 0.5,
"accent_max_area_frac": 0,
"regions": [
{
"name": "idle-anchor",
"x": 24,
"y": 22,
"w": 150,
"h": 362,
"group": "undercut-agent"
},
{
"name": "typing-0",
"x": 190,
"y": 22,
"w": 290,
"h": 362,
"group": "undercut-agent"
},
{
"name": "typing-1",
"x": 496,
"y": 22,
"w": 292,
"h": 362,
"group": "undercut-agent"
},
{
"name": "typing-2",
"x": 804,
"y": 22,
"w": 285,
"h": 362,
"group": "undercut-agent"
},
{
"name": "typing-3",
"x": 1105,
"y": 22,
"w": 284,
"h": 362,
"group": "undercut-agent"
}
],
"_comment": "Sheet path is relative to projects/bureau/references/office/ in the brain (GET /api/knowledge?file=projects/bureau/references/office/<sheet>&raw=1) \u2014 download it there first, the reference sheets are not committed to git. Re-run: python3 hub/tools/rectify.py <this-file> --out-dir /tmp/check (after adjusting 'sheet' to your local download path) and diff the sha256 in the matching report-*.json against this atlas's own sprite hashes."
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
{
"sheet": "scenes/scene-window-states.jpg",
"background_key": [
255,
0,
255
],
"key_tolerance": 170,
"anchor_region": [
0,
345,
210,
423
],
"anchor_logical_height": 48,
"palette_size": 24,
"accent_saturation_min": 0.5,
"accent_max_area_frac": 0,
"regions": [
{
"name": "window-blue-night",
"x": 207,
"y": 420,
"w": 257,
"h": 219,
"group": "window",
"_round26": "Re-cropped to the BLUE NIGHT cell's full tight connected-component bbox (was x215 y435 w273 h172, which clipped both the top and bottom frame rails). See frames.json's round26Fixes.window for why."
}
],
"anchor_source_px_height": 335,
"_comment": "Sheet path is relative to projects/bureau/references/office/ in the brain (GET /api/knowledge?file=projects/bureau/references/office/<sheet>&raw=1) \u2014 download it there first, the reference sheets are not committed to git. Re-run: python3 hub/tools/rectify.py <this-file> --out-dir /tmp/check (after adjusting 'sheet' to your local download path) and diff the sha256 in the matching report-*.json against this atlas's own sprite hashes."
}
Loading