From 54d241e184ece8b20a29fee09d050122f87207ee Mon Sep 17 00:00:00 2001 From: Teddy Warner Date: Mon, 6 Jul 2026 16:53:12 -0700 Subject: [PATCH] [FEAT] collage: empty nest illustration when no birds have been heard (#25) --- avian/frontend/apt.js | 7 ++++++- avian/frontend/nest.webp | Bin 0 -> 90784 bytes avian/frontend/styles.css | 12 ++++++++++++ frame/display.py | 20 ++------------------ frame/shoot.py | 25 +++++++++++++++++++------ 5 files changed, 39 insertions(+), 25 deletions(-) create mode 100644 avian/frontend/nest.webp diff --git a/avian/frontend/apt.js b/avian/frontend/apt.js index 63c83b4..5acf486 100644 --- a/avian/frontend/apt.js +++ b/avian/frontend/apt.js @@ -413,7 +413,12 @@ function renderCollage(items, animate) { collage.innerHTML = ''; if (!items.length) { - collage.innerHTML = '

no birds heard in this window.

'; + // No birds heard yet: show an empty nest where the collage would be, with + // the status line beneath it. The frame (shoot.py) overrides the .empty + // text for the e-ink panel; the nest illustration is shared by both. + collage.innerHTML = '
' + + 'an empty nest' + + '

no birds heard in this window.

'; return; } var W = collage.clientWidth, H = collage.clientHeight; diff --git a/avian/frontend/nest.webp b/avian/frontend/nest.webp new file mode 100644 index 0000000000000000000000000000000000000000..efc4c34646b5b08c34b45cf086666e2205d6a12e GIT binary patch literal 90784 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"XI9koe~d@ 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�Rip8tS6(o)#OFvn*xp4 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 .static-head - see top of CSS. */ /* Stats grid: charts stack on the LEFT, text sections on the RIGHT. Each chart is a full-bleed card; each text section is a list with diff --git a/frame/display.py b/frame/display.py index 9a4cd99..a4e9b4d 100644 --- a/frame/display.py +++ b/frame/display.py @@ -177,7 +177,7 @@ def _centroid_x(img, paper): TITLE_H_FRAC, COLLAGE_FRAC, GAP_FRAC = 0.065, 0.66, 0.1 -def mat_and_center(img, mat, empty=False): +def mat_and_center(img, mat): """Crop the title and collage, size each to a fraction of the A5 opening, stack with a gap, and centre on the panel.""" img = img.convert("RGB") @@ -204,22 +204,6 @@ def mat_and_center(img, mat, empty=False): tb = _region_bbox(img, paper, top, split[0]) if split else None cb = _region_bbox(img, paper, split[1], bot + 1) if split else None box_w, box_h = A5_W * (1 - mat), A5_H * (1 - mat) - # No birds yet: hold the title where a full collage would put it and float - # the one-line note where the birds would be, so a birdless frame reads like - # a full one with the collage removed, not a title card drifted to the middle. - if empty and tb and cb: - title = _scale_h(img.crop(tb), box_h * TITLE_H_FRAC) - note = _scale_w(img.crop(cb), box_w * 0.30) - gap = round(box_h * GAP_FRAC) - region = box_w * COLLAGE_FRAC # stand in for a usual-size collage - cw = max(title.width, note.width) - comp = Image.new("RGB", (cw, round(title.height + gap + region)), paper) - comp.paste(title, ((cw - title.width) // 2, 0)) - ny = title.height + gap + max(0, (round(region) - note.height) // 2) - comp.paste(note, ((cw - note.width) // 2, ny)) - canvas = Image.new("RGB", (PANEL_W, PANEL_H), paper) - canvas.paste(comp, ((PANEL_W - comp.width) // 2, (PANEL_H - comp.height) // 2)) - return canvas if not (tb and cb): return _place(img.crop(full), paper, mat) title = _scale_h(img.crop(tb), box_h * TITLE_H_FRAC) @@ -367,7 +351,7 @@ def run(cfg, preview=None, force=False, use_signature=True, mat_box=False): except Exception as e: print(f"could not get image: {e}", file=sys.stderr) # keep last panel image return - img = mat_and_center(img, cfg["mat"], empty=(species == [])) + img = mat_and_center(img, cfg["mat"]) if preview: out = quantize_spectra6(img) if mat_box: diff --git a/frame/shoot.py b/frame/shoot.py index 6785504..3a76138 100644 --- a/frame/shoot.py +++ b/frame/shoot.py @@ -167,7 +167,7 @@ def shoot(url, out, *, title=None, subtitle=None, vw=600, vh=800, dsf=2, mat=0.04, collage_vh=52, cluster_xbias=1.0, cluster_ybias=1.2, count_exp=0.4, cluster_pad=1, small_floor=0.04, window_hours=None, timeout_ms=45000, user=None, password=None, species=None, cutout_base=None, - cutout_local=None): + cutout_local=None, empty_text="listening for birds…"): pad_side, pad_top, pad_bottom = int(vw * mat), int(vh * mat * 0.92), int(vh * mat) auth = "Basic " + base64.b64encode(f"{user}:{password or ''}".encode()).decode() if user else None @@ -206,6 +206,16 @@ def shoot(url, out, *, title=None, subtitle=None, vw=600, vh=800, dsf=2, timeout=timeout_ms) except PWTimeout: print("some illustrations did not finish loading; capturing anyway", file=sys.stderr) + elif page.query_selector(".nest-img") is not None: + # Birdless empty state: wait for the nest illustration to load so + # the frame never captures a blank collage area. + try: + page.wait_for_function( + "() => { const n=document.querySelector('.nest-img');" + " return n && n.complete && n.naturalWidth>0; }", + timeout=timeout_ms) + except PWTimeout: + print("nest illustration did not finish loading; capturing anyway", file=sys.stderr) if misses: raise RuntimeError(f"apt.js tunables not found ({len(misses)}); refusing to ship a half-tuned frame") @@ -213,10 +223,11 @@ def shoot(url, out, *, title=None, subtitle=None, vw=600, vh=800, dsf=2, page.evaluate("t=>{const e=document.querySelector('.static-head .pre'); if(e)e.textContent=t;}", title) if subtitle is not None: page.evaluate("s=>{const e=document.querySelector('.static-head h1'); if(e)e.textContent=s;}", subtitle) - # Soften the empty-state line for a fresh frame whose mic hasn't - # heard a bird yet, and darken it so it survives the e-ink dither and - # the matting step's ink detection (a no-op once there are birds). - page.evaluate("() => { const e = document.querySelector('.empty'); if (e) { e.textContent = 'listening for birds…'; e.style.color = '#555'; } }") + # Set the empty-state line for a birdless frame (the mic hasn't heard + # anything yet, or BirdWeather has no recent detections nearby) and + # darken it so it survives the e-ink dither and the matting step's ink + # detection (a no-op once there are birds). + page.evaluate("(t) => { const e = document.querySelector('.empty'); if (e) { e.textContent = t; e.style.color = '#555'; } }", empty_text) page.wait_for_timeout(250) # clip is CSS px; device_scale_factor scales the PNG to vw*dsf by vh*dsf = 1200x1600 page.screenshot(path=out, clip={"x": 0, "y": 0, "width": vw, "height": vh}) @@ -241,7 +252,9 @@ def shoot_birdweather(out, species, *, title=None, subtitle=None, timeout_ms=450 cutout_local = os.path.join(here, "..", "avian", "assets", "illustrations") # BirdWeather's flat 7-day counts need a steeper exponent for the same hero # hierarchy; the slightly smaller titles match the mic frame's optical weight. - for k, v in (("count_exp", 1.0), ("headline_px", 39), ("eyebrow_px", 17)): + # A birdless BirdWeather frame says "no recent detections nearby", not "listening". + for k, v in (("count_exp", 1.0), ("headline_px", 39), ("eyebrow_px", 17), + ("empty_text", "no recent detections nearby")): look.setdefault(k, v) return shoot(f"http://127.0.0.1:{port}/", out, title=title or "Avian Visitors", subtitle=subtitle or "Heard Today",