Repository navigation
Hunter bird: two merged eyes, with lids and blinks inside each eye - #160
Merged
Merged
Conversation
One centred eye read oddly. The bird now looks through two overlapping elliptical eyes whose openings merge into one view, like wraparound sunglasses, meeting in a notch at the bridge. - Each eye owns its side of the centre line. There, its own ellipse is exactly the merged view, so the shader only needs the eye on a pixel's side. That costs no more than the single eye did. - The screen-wide lids are gone. Each eye has its own top and bottom lid, clipped to the eye, with its outer rim drawn over them. Mood still sets their openness. - Blinks shut both eyes' lids over BLINK_S, replacing the sweeping nictitating membrane. Buffer B is unchanged. - Lock shrinks the eyes' radius and separation to 0.8x, so the view narrows toward the centre. Strike dilation keeps its old ratio. - Tests: the lid and blink tests sample inside an eye, and the membrane test is now test_lids_shut_during_blink. The canopy and iris tests were tightened: they passed on the eye's own rim ink and on the edge of the locked opening. - The spec is updated. The tuning mockup is docs/superpowers/specs/2026-11-05-hunter-bird-two-eyes-mockup.html. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Nov 6, 2026
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.
Summary
One centred eye read oddly, so the bird now has two. Their openings merge into one view, like wraparound sunglasses, and meet in a notch at the bridge. The lids moved into the eyes, and blinks are now the lids snapping shut. They replace the screen-wide lids and the sweeping membrane.
The two eyes are mirror images. On either side of the centre line, the merged view is exactly that side's own ellipse, so each pixel only needs one eye. That costs no more than the single eye did.
Tunables (
common.glsl), picked in the mockup (docs/superpowers/specs/2026-11-05-hunter-bird-two-eyes-mockup.html):EYE_R/EYE_SEPEYE_LENSEYE_LOCK_KLID_BOTBuffer B is unchanged: blinks fire on the same events as before.
Evidence
test_lids_open_on_targetfailed: its patch is now in the iris band at the bridge.test_membrane_sweeps_during_blinkalso failed, because there is no membrane.After:
make test: 398 passed.test_lids_shut_during_blink(new): mid-blink, a patch inside the right eye is lid hatching. With the lid blink disabled it fails (0 > 5), so it catches a missing blink.test_canopy_stays_in_its_bandnow looks inside the eyes' openings, away from their rims.iris_patchnow sits fully inside the locked band. Both used to pass on the eye's own rim ink.Merge Danger
Door: two-way
Revert to get the single eye back.
Blast Radius: hunter_bird
Only this Setup's Image pass changes. Visible side effect: the openings are smaller than the old eye, so most of the top canopy and the side leaves now sit behind the socket. If more foliage should show, move the canopy down rather than change the eyes. Pi frame rate is unmeasured. The per-pixel eye work is comparable, and the membrane pass is gone.
🤖 Generated with Claude Code