Skip to content

Add connected photographic regions and perimeter outlines - #160

Merged
git-chad merged 21 commits into
git-chad/shader-lab-v3-planfrom
git-chad/v3-cell-regions
Oct 1, 2026
Merged

git-chad merged 21 commits into
git-chad/shader-lab-v3-planfrom
git-chad/v3-cell-regions

Conversation

@git-chad

Copy link
Copy Markdown
Collaborator

Photographic Cells can now reveal connected, stepped regions and outline their perimeter without drawing every internal cell edge. This follows the bridge silhouette (reference 11) and the white poster's cellular regions (reference 05), while retaining photographic detail inside each shape.

Adds Layout (Regions / Individual Cells), independent Region Size, and Outline (None / Perimeter / Every Cell). Regions uses either a coherent seeded field or interpolated image tones. Perimeter includes holes and staggered rows; its neighbor search adapts to stroke reach and skips distant candidates. At positive Gap, separated cells have individual perimeters. Cutout and Keep Image retain their existing coverage semantics.

New layers start with connected regions, zero gap, and fine pink perimeter outlines. Saved layers and partial runtime configurations keep the earlier cell selection/defaults. Includes conditional controls, a refreshed photographic thumbnail, real hydration/history/export checks, and reference-guided QA notes. Paint selection remains the next slice; Edge Scatter and fine-dot/color curation remain follow-ups. This does not perform subject segmentation or complete the entire poster look.

Stacked on #159 (git-chad/v3-photographic-cells), under integration #150. Nothing merges to main until V3 is complete.

Validation:

  • bun run check and bun run test:composition (full frozen baselines plus 154 cell GPU cases, 50 added in this slice).
  • New checks cover patch continuity, independent region/cell scales, deterministic seeds, tone/inverted selection, holes, shared edges, irregular rows, large soft contours on tiny cells, and all outline modes.
  • Actual editor hydration, history restoration, saved settings/default compatibility, group isolation, exported headless runtime region pixels, and preview/PNG equivalence.
  • Browser controls and actual .lab export; inspected photo cutouts on warm white and an exploratory color/halftone composition against references 05/11.
  • Local moving-source software benchmark: about 55–58 ms/pass at 1080p using Chromium SwiftShader and default region/outline geometry. This is not a native GPU FPS claim; hardware and encoded-video validation remain open.

User visual acceptance pending. Test: set Layout to Regions, Gap to 0, and Outline to Perimeter. Region Size changes broad patches; Cell Size changes the steps; switching to Every Cell restores interior grid lines. See tests/composition/PHOTOGRAPHIC-CELLS-MANUAL-QA.md for the full test and limits.

@vercel

vercel Bot commented Sep 17, 2026 •

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
shader-lab Ready Ready Preview Oct 1, 2026 7:05am UTC

@greptile-apps

greptile-apps Bot commented Sep 17, 2026

Copy link
Copy Markdown

RetriggerConfidence Score: 4/5

The PR is not safe to merge until the perimeter search is bounded for valid extreme settings that can overwhelm the renderer.

Summary

This PR adds connected Photographic Cells regions, independent region sizing, and perimeter-only outline rendering while preserving legacy project defaults.

  • Adds coherent random and image-tone region fields.
  • Adds None, Perimeter, and Every Cell outline modes.
  • Updates editor controls, migration behavior, runtime parity, documentation, and GPU coverage.
  • The adaptive perimeter search has unboundedly expensive behavior at valid parameter extremes.

Reviews (1) · Last reviewed commit: "Add connected photographic regions and p..."

Comment thread src/renderer/photographic-cells-pass.ts
…roup failures

Media load callbacks now ignore replaced or removed passes and pending loads are cleared on disposal. Strict-mode pass failures are reported once at the originating pass instead of at every group boundary.
Publishing now drops every descendant of a hidden group and clears the
parentId of any retained layer (the audio source) whose parent was removed,
so the published scene passes hierarchy validation on reopen.
Cap the neighbor row and column search to two cells each side so the
worst-case cellAt count per fragment is 25 instead of unbounded in the
packed minimum-size, maximum-stroke configuration. Mirrored in the
runtime package.
@git-chad
git-chad force-pushed the git-chad/v3-photographic-cells branch from 8e988df to b995773 Compare October 1, 2026 07:04
@git-chad
git-chad force-pushed the git-chad/v3-cell-regions branch from 2311e14 to 55f46d5 Compare October 1, 2026 07:04
@git-chad
git-chad changed the base branch from git-chad/v3-photographic-cells to git-chad/shader-lab-v3-plan October 1, 2026 15:12
@git-chad
git-chad merged commit 55f46d5 into git-chad/shader-lab-v3-plan Oct 1, 2026
5 checks passed

This branch was successfully deployed

1 active deployment
Preview — 55f46d51 Deployed Oct 1, 2026 by vercel[bot]
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