Track the two crowd rolls as _sheet_crowd3/3b — _refcheck is scratch and they are the only copy of the art

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
wuwiandClaude Opus 5 committed 2026-08-21 13:31:29 +02:00
1 parent 5f53a686c8
commit 1ad2898530
4 files changed
+12 -6

No files matched your search

+8 -3
View File
@@ -1,9 +1,12 @@
# _crowdroll.py — roll the crowd sheet itself: the SEATED master, and the arms-up frame of it.
#
# uv run --with pillow --with requests python assets/_crowdroll.py seat # -> _refcheck/crowd_seat.png
# uv run --with pillow --with requests python assets/_crowdroll.py clap # from the seated master
# uv run --with pillow --with requests python assets/_crowdroll.py clap # from that seated roll
#
# Then `_crowdpass.py` turns the two into an honest pair and grades them into the three courts.
# _refcheck is SCRATCH. A roll you decide to keep is copied to `assets/_sheet_crowd3.png` (seated)
# and `_sheet_crowd3b.png` (arms up) — those two are the tracked art, they are what `_crowdpass.py`
# reads, and they are the only copy there is. Then `_crowdpass.py` turns them into an honest pair
# and grades them into the three courts.
#
# WHY A SECOND SCRIPT. `_regen.py` cuts SPRITES out of a magenta field — every line of its canvas
# block is about isolating figures on a key colour. The crowd is the opposite job: one continuous
@@ -117,7 +120,9 @@ if __name__ == '__main__':
os.makedirs(OUT, exist_ok=True)
what = sys.argv[1] if len(sys.argv) > 1 else 'seat'
if what == 'seat':
ref = sys.argv[2] if len(sys.argv) > 2 else os.path.join(OUT, 'crowd_layout.png')
# the layout reference defaults to the seated master in the repo, so a re-roll keeps the
# stand's geometry rather than inventing a new one every time
ref = sys.argv[2] if len(sys.argv) > 2 else os.path.join(HERE, '_sheet_crowd3.png')
roll(SEAT, ref, os.path.join(OUT, 'crowd_seat.png'))
elif what == 'clap':
roll(CLAP, os.path.join(OUT, 'crowd_seat.png'), os.path.join(OUT, 'crowd_clap.png'))