Skip to content

Add shadowVolumes Canvas effect with docs, manifest, and tests#264

Open
smcga wants to merge 1 commit intomainfrom
codex/add-shadowvolumes-effect-to-renderer
Open

Add shadowVolumes Canvas effect with docs, manifest, and tests#264
smcga wants to merge 1 commit intomainfrom
codex/add-shadowvolumes-effect-to-renderer

Conversation

@smcga
Copy link
Copy Markdown
Owner

@smcga smcga commented Apr 4, 2026

Motivation

  • Provide a single new Canvas2D effect shadowVolumes that evokes classic hard-edged shadow-volume silhouettes using deterministic projected geometry and audio-reactive motion.
  • Keep scope minimal and compatible with the existing effect system (params, manifest, debug controls, era tuning, and mobile-safe framing).
  • Ensure the effect is deterministic for a fixed seed and can be automated from the timeline/editor.

Description

  • Implemented the ShadowVolumesEffect in src/renderer/effects/shadowVolumes.ts with projection helpers, seeded occluder generation, shadow-polygon construction, era tweaks, and audio reactivity.
  • Added debug/manifest registration src/renderer/effects/manifest/shadow_volumes.manifest.ts and included it in the generated manifest list (src/renderer/effects/manifest/generated.ts).
  • Added unit tests src/renderer/effects/shadowVolumes.test.ts covering param resolution/clamping, deterministic occluder generation, projection stability, and finite shadow polygon output.
  • Updated documentation and catalog: appended effect entry to README.md and regenerated docs/effects.md so the effect appears in the registry/docs and the debug dropdowns.
  • Placed a small, non-invasive example layer entry in public/timeline.release.json so release coverage tests include the new effect.

Testing

  • Ran the new helper/unit tests with npm run test -- src/renderer/effects/shadowVolumes.test.ts and they passed.
  • Regenerated docs with npm run docs:effects and verified docs consistency via npm run docs:check, both succeeded.
  • Ran the focused timeline and catalog tests (src/timeline/releaseTimeline.test.ts, src/renderer/effects/effectCatalogDocs.test.ts) and they passed after adding a small layer reference in the release timeline.
  • Ran the full test suite with npm run test; all project tests passed except an external integration test api/kv.integration.test.ts which failed due to network DB reachability in this environment (ENETUNREACH) and is unrelated to the effect changes.

Codex Task

@vercel
Copy link
Copy Markdown

vercel Bot commented Apr 4, 2026

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

Project Deployment Actions Updated (UTC)
codexperimental Ready Ready Preview, Comment Apr 4, 2026 2:13am

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant