Skip to content

The Blur Gallery, Lens Correction, and the rest of the Filter menu - #68

Merged
IAmJSD merged 1 commit into
mainfrom
t3code/blur-gallery
Aug 29, 2026
Merged

The Blur Gallery, Lens Correction, and the rest of the Filter menu#68
IAmJSD merged 1 commit into
mainfrom
t3code/blur-gallery

Conversation

@IAmJSD

@IAmJSD IAmJSD commented Aug 29, 2026

Copy link
Copy Markdown
Member

Fourteen filters — 115 → 129 — and with them Photoshop's Filter menu has nothing left out.

where what note
Blur Gallery (new) Field Blur, Iris Blur, Tilt-Shift, Path Blur, Spin Blur the five that were the biggest remaining hole
Blur Shape Blur, Smart Blur completes the group
Video (new) De-Interlace, NTSC Colors unchanged since Photoshop 2.5, four lines each
Render Flame, Picture Frame, Tree Adobe ships these three as scripts
top level Lens Correction, Adaptive Wide Angle where Photoshop keeps them, next to Liquify

The interesting bits

One blur, five masks. The Blur Gallery filters are all the same operation — an ordinary blur applied through a mask each one computes for itself — so they share a graded blur of three fixed levels rather than a per-pixel radius. A true variable radius costs the largest radius everywhere and these are lens effects, not measurements; what matters is that the falloff is smooth and the sharp part is genuinely untouched. Three levels rather than one because blending a sharp copy against a single heavily blurred one leaves the middle of a falloff looking like a double exposure.

In Photoshop the pins live on the canvas. A filter here is handed pixels and numbers, so a pin is a pair of position sliders — which is how these filters worked everywhere before the canvas UI arrived.

Smart Blur's three modes are one computation. It averages only the neighbours inside its threshold, so an edge never averages across itself. How much of the neighbourhood it rejected is exactly how much of an edge the pixel is on — which is what Edge Only and Overlay Edge draw.

Chromatic aberration cannot use the ordinary warp. It is a difference in magnification between wavelengths, so undoing it means resampling red and blue about the centre at slightly different scales; remap_channels does that, and alpha follows green.

Adaptive Wide Angle is a change of projection, not a polynomial: map each output pixel back to the angle it is asking about, find where an equidistant, rectilinear or equisolid lens actually put that angle, and sample there. Photoshop gets the field of view from a profile database; here it comes from focal length and crop factor, which is the same arithmetic every FOV calculator does.

Tree is the rule under all of Adobe's species presets — a trunk that splits, shorter and thinner each generation, with leaves clustered on whatever is left at the tips. Flame is a temperature field rising, narrowing, wandering and cooling from white through yellow to red; Photoshop's follows a path you drew, and since a filter never sees the document's paths, this one rises from the bottom of the selection.

Lens Correction opens as a no-op and is on the test's expected-no-op list for it: with no lens profile to prefill from, guessing would be worse than leaving it alone, which is what Photoshop does without a profile too. It also skips the resample entirely when every slider is at zero — running an image through the identity map is not free, it costs a premultiply round trip that flattens the colour under transparent pixels.

Checked

  • Property tests over all 129: registered, finite and in range, no panic at degenerate sizes, deterministic, and doing something at defaults unless listed.
  • A menu cross-check confirms every registered filter is reachable and every menu entry is registered.
  • Whole workspace suite green, clippy and rustfmt clean.
  • Each new filter eyeballed on a photograph.
  • Driven headlessly in the app: the Filter menu now reads Filter Gallery… / Adaptive Wide Angle… / Camera Raw Filter… / Lens Correction… / Liquify / Vanishing Point over sixteen groups, and Tilt-Shift previews live on the canvas.

🤖 Generated with Claude Code

Fourteen filters, 115 to 129, and with them Photoshop's Filter menu has
nothing left out.

**Blur Gallery** (5): Field Blur, Iris Blur, Tilt-Shift, Path Blur, Spin
Blur. All five are one blur applied through a mask each computes for
itself, so they share a graded blur of three fixed levels rather than a
per-pixel radius -- a true variable radius costs the largest radius
everywhere, and these are lens effects, not measurements. In Photoshop
their pins live on the canvas; a filter here is handed pixels and
numbers, so a pin is a pair of position sliders.

**Blur** (2): Shape Blur, whose kernel is a generated silhouette rather
than a disc, which is what a shaped aperture does to an out-of-focus
highlight; and Smart Blur, which averages only the neighbours within its
threshold and therefore flattens skin and sky while leaving every edge
exactly where it was. Its Edge Only and Overlay modes are the same
computation read the other way round: what it *rejected* is the edge.

**Video** (2): De-Interlace and NTSC Colors, both unchanged since
Photoshop 2.5 and both four lines of arithmetic.

**Render** (3): Flame, Picture Frame and Tree, which Adobe ships as
scripts. Tree is the recursive branching rule under every species preset;
Flame is a temperature field rising, narrowing and cooling; Picture Frame
is five generated mouldings lit from the upper left. Photoshop's Flame
follows a path it is given, and a filter never sees the document's
paths, so this one rises from the bottom of the selection.

**Lens Correction** and **Adaptive Wide Angle**, at the top of the menu
where Photoshop keeps them. Lens Correction is barrel and pincushion,
keystone, rotation, scale, vignette, and chromatic aberration -- which
needs the red and blue channels resampled at slightly different
magnifications, so it cannot go through the ordinary whole-pixel warp.
Adaptive Wide Angle is a change of projection: map each pixel back to the
angle it came from under equidistant, rectilinear or equisolid, then
re-project it. Photoshop reads the lens from EXIF and looks it up in a
profile database; there is no database here, so the sliders are the
profile, and Lens Correction opens as a no-op rather than guessing.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@IAmJSD
IAmJSD merged commit af466da into main Aug 29, 2026
3 checks passed
@IAmJSD
IAmJSD deleted the t3code/blur-gallery branch August 29, 2026 11:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant