Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
66eb930
test: establish V3 composition and alpha compatibility baselines
git-chad Sep 17, 2026
6915fac
test: surface GPU and resource failures in composition checks
git-chad Sep 17, 2026
5aebd21
test: select software WebGPU adapter explicitly
git-chad Sep 17, 2026
fa9be06
test: cover actual editor hydration and project resaving
git-chad Sep 17, 2026
e3a9f7d
ci: run composition GPU regressions on macOS
git-chad Sep 17, 2026
bdab0b7
test: verify hydration replaces stale state and prunes tracks
git-chad Sep 17, 2026
c69bafd
fix: reveal lower content around newly contained media
git-chad Sep 17, 2026
94c7312
fix: preserve alpha through source and effect composition
git-chad Sep 17, 2026
322980b
Add isolated group rendering to editor and runtime pipelines
git-chad Sep 17, 2026
e7a5f6c
Address Greptile review: guard stale media callbacks, dedupe strict g…
git-chad Oct 1, 2026
53340e0
feat: add editor groups with persistence, history, and runtime export
git-chad Sep 17, 2026
8f540ba
Address Greptile review: prune hidden group subtrees when publishing
git-chad Oct 1, 2026
c358bb5
feat: insert text over transparent backgrounds and revise V3 priorities
git-chad Sep 17, 2026
72ee931
Add displaced rings with grouped photographic cutouts
git-chad Sep 17, 2026
033eb38
Fix group-aware layer dragging and drop feedback
git-chad Sep 17, 2026
75968e3
Add photographic cell cutouts and curated ring defaults
git-chad Sep 17, 2026
bfc0cce
Fix cell outline coverage and preserve V3 visual direction
git-chad Sep 17, 2026
b995773
Detail photographic regions, outlines, and paint mode plan
git-chad Sep 17, 2026
cbb925c
Add connected photographic regions and perimeter outlines
git-chad Sep 17, 2026
ea836cd
Record visual acceptance and dynamic scene performance requirements
git-chad Sep 17, 2026
55f46d5
Address Greptile review: bound perimeter outline neighbor search
git-chad Oct 1, 2026
897c1c0
Add painted reveals to Photographic Cells
git-chad Sep 17, 2026
7bfd86b
Enter Paint editing automatically and update V3 follow-ups
git-chad Sep 17, 2026
73107b7
Address Greptile review: clear paint mode when unpaintable, keep Spac…
git-chad Oct 1, 2026
76efc85
Add customizable dark and light colors to Threshold
git-chad Sep 17, 2026
6968b06
Add bounded Cells edge scatter and editable editorial studies
git-chad Sep 17, 2026
760f611
Record a future guides page in the V3 roadmap
git-chad Sep 17, 2026
ff27e31
Update V3 roadmap with approved designer feedback and custom patterns
git-chad Sep 17, 2026
b3f0c7e
Address Greptile review: make editorial UI test portable
git-chad Oct 1, 2026
2150493
Start projects neutral and disclose global color adjustments
git-chad Sep 17, 2026
89426f2
Balance the blank canvas hint text
git-chad Sep 21, 2026
9ba9c63
Address Greptile review: clear remix state when importing a .lab file
git-chad Oct 1, 2026
8dc3c4d
Add reusable layer masks with gradient, shape and brush tools
git-chad Sep 21, 2026
1af6b0d
Explain and gate Cut content masks to effects inside groups
git-chad Sep 21, 2026
8a5a31f
Flatten the mask scope caption for lint
git-chad Sep 21, 2026
3573157
Address Greptile review: composition-framed mask space and undo-safe …
git-chad Oct 1, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/alpha-compositing-foundation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@basementstudio/shader-lab": patch
---

Preserve alpha when copying external input textures and applying effect passes. Source layers use straight-alpha source-over blending; effect passes preserve input coverage and retain their existing alpha-as-strength behavior. Opaque compositions and legacy mask semantics are unchanged.
5 changes: 5 additions & 0 deletions .changeset/cell-edge-scatter.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@basementstudio/shader-lab": minor
---

Add optional, seeded Edge Scatter to Photographic Cells regions and painted reveals. Scatter fragments boundaries without moving source detail or adding texture samples. Missing values and zero preserve existing projects.
5 changes: 5 additions & 0 deletions .changeset/displaced-rings.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@basementstudio/shader-lab": minor
---

Add Displaced Rings with rings/half-discs, progressive transforms, seeded offsets, and Distort/Cutout output. Support transformed coverage in the editor and runtime so grouped photographic cutouts reveal external layers, with opacity interpolating color and alpha together.
5 changes: 5 additions & 0 deletions .changeset/editor-groups.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@basementstudio/shader-lab": minor
---

Support isolated groups in exported ShaderLabConfig layer lists using group layers and parentId references. Evaluate group visibility and opacity before building the render tree, preserving child effect scope in composition and headless rendering. Existing flat configs remain compatible.
4 changes: 4 additions & 0 deletions .changeset/group-drag-drop.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
---
---

Fix editor layer dragging so dropping into or out of a group updates membership and order together. Add destination indicators, subtree movement, cancellation, and edge scrolling. This editor-only change does not require a package release.
5 changes: 5 additions & 0 deletions .changeset/isolated-group-rendering.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@basementstudio/shader-lab": patch
---

Add isolated, nested group rendering to the internal renderer frame contract. Group children render against transparent targets before the combined result is blended into the parent. Existing flat public shader configs retain their behavior; editor grouping controls and persisted groups follow separately.
5 changes: 5 additions & 0 deletions .changeset/layer-masks.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@basementstudio/shader-lab": minor
---

Add reusable layer masks: linear and radial gradients, ellipse, rectangle and brush on any layer or group. Masks either limit an effect or cut coverage, support invert and feather, and render identically in the editor, PNG/video export and the runtime package.
5 changes: 5 additions & 0 deletions .changeset/photographic-cell-paint.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@basementstudio/shader-lab": minor
---

Add persisted Paint selection to Photographic Cells. Painted coverage shares cell geometry and perimeter outlines with automatic regions, stays anchored in composition space, and reuses its GPU texture while the source animates.
5 changes: 5 additions & 0 deletions .changeset/photographic-cell-regions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@basementstudio/shader-lab": minor
---

Add coherent Photographic Cells regions with separate region and cell sizes, image-guided or seeded selection, and None/Perimeter/Every Cell outline modes. Preserve saved cell layouts and contour settings while new layers start with connected regions and fine perimeter outlines.
5 changes: 5 additions & 0 deletions .changeset/photographic-cells.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@basementstudio/shader-lab": minor
---

Add Photographic Cells with light/dark/random selection, irregular rectangular cells, full-resolution photographic interiors, alpha cutouts, and optional outlines. Support the effect in runtime configs and grouped compositions. Apply user-curated editor defaults to new Displaced Rings layers while preserving saved settings and renderer fallbacks.
5 changes: 5 additions & 0 deletions .changeset/threshold-colors.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@basementstudio/shader-lab": minor
---

Add darkColor and lightColor to Threshold, retaining black/white fallbacks. Recolor the existing threshold field without another render pass; softness, noise, inversion and source coverage retain their behavior.
5 changes: 5 additions & 0 deletions .changeset/transparent-media-bounds.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@basementstudio/shader-lab": patch
---

Support transparent borders for contained image and video layers with `params.transparentBounds: true`. Existing runtime configs without the setting retain black borders.
4 changes: 4 additions & 0 deletions .changeset/transparent-text-defaults.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
---
---

New editor text uses normal composition over a transparent background. Clarify the background opacity control and preserve the solid fallback for saved text that omits the setting. This editor-only change does not require a package release.
22 changes: 22 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ on:
branches:
- main
- git-chad/shader-lab-v3-plan
- git-chad/v3-*
push:
branches:
- main
Expand Down Expand Up @@ -50,3 +51,24 @@ jobs:
- name: Ensure changeset exists for PR changes
if: github.event_name == 'pull_request'
run: bunx changeset status --since=origin/${{ github.base_ref }}

composition:
# Linux Chromium/SwiftShader currently drops its GPU instance during these
# texture-backed shader compilations. Keep the full GPU checks on macOS.
runs-on: macos-14
timeout-minutes: 10
steps:
- uses: actions/checkout@v4
- uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- run: bun install --frozen-lockfile
- run: bunx playwright install chromium
- run: bun run test:composition
- name: Upload rendered compositions
if: always()
uses: actions/upload-artifact@v4
with:
name: composition-actuals
path: .context/composition-test/
if-no-files-found: ignore
5 changes: 5 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Shader Lab development instructions

Before deciding how a shader behaves or looks, open the relevant images listed in [V3-VISUAL-REFERENCES.md](V3-VISUAL-REFERENCES.md). This is an explicit user requirement. Read that guide for reference locations, visual goals, and review criteria; a prose description or passing GPU tests does not replace looking at the images.

Keep prototype acceptance distinct from completing the visual direction in V3-ROADMAP.md. Preserve the stacked PR workflow; do not merge V3 into main until the plan is complete.
Loading
Loading