Skip to content

feat(patterns): circular zone plate with per-axis scale measurement - #9

Open
repentsinner wants to merge 3 commits into
mainfrom
feat/zone-plate
Open

repentsinner wants to merge 3 commits into
mainfrom
feat/zone-plate

Conversation

@repentsinner

@repentsinner repentsinner commented Oct 1, 2026 •

Copy link
Copy Markdown
Member

Summary

circular zone plate with per-axis scale measurement

Changes

feat

  • add a circular zone plate and per-axis scale measurement (010c88b)
  • add a pixel grid and a scale chart for reading scaling by eye (6dbc29a)
  • caption the scale chart and give its zoom ladders a spine (ce0e5b4)

Increment type: minor
Target branch: main
Status: 👀 flywheel:needs-review — feat is not in auto_merge list for main
Quality checks: see required status checks for live state.

The plate sweeps from zero frequency at the centre to Nyquist on the
largest inscribed circle, mid-grey outside it. zone_plate_scale
demodulates a capture by the plate's own phase, which turns every fold
a scaler left into a tone at its sampling rate, and reads the scale per
axis from that tone's spectral peak. Whether the plate survived between
s and 1 - s settles the mirror a once-per-pixel capture carries.
…g by eye

The pixel grid lays checkers, stripes on each axis, both diagonals and
isolated lines at cell sizes 1 to 8 px, each patch split into quadrants
one pixel apart in phase, on a gutter at the patches' mean grey.

The scale chart reads a chain's scaling per axis either side of 1:1:
beat rulers for an upscale, zoom ladders for a crop-and-enlarge, stripe
rulers for a downscale, the pixel grid for what happens to fine detail,
and a label naming the raster it was rendered at. Labels draw from a
built-in digit font, so the chart stays in the numpy-only core and
renders through any array namespace.
…pine

The chart font gains capitals and a little punctuation, so every
element carries a caption and the top-left corner holds a legend saying
how to read each one. The zoom ladders' rungs grow longer and thicker
and hang from a spine, so each ladder reads as one object.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant