Layers is a browser-based media editor with non-destructive layer compositing, powered by the Noisemaker shader pipeline. It runs entirely client-side.
- Layer stack with opacity, blend modes, visibility, and locking
- GPU-accelerated effects via WebGL shaders (blur, warp, noise, edge detection, dither, and others)
- Selection tools: rectangle, oval, lasso, polygon, magic wand
- Selection operations: expand, contract, feather, smooth, border, color range
- Image and video layer support
- Copy/paste, crop to selection, canvas resize, image resize
- Project persistence via IndexedDB
- Undo/redo with debounced parameter tracking
- Online collaboration (see below)
- Node.js and npm
- A browser with WebGL2 support
npm install
npm run dev
This starts a local server on port 3002.
The shader pipeline is loaded at runtime from the Noisemaker CDN at shaders.noisedeck.app.
End-to-end tests use Playwright:
npm test
"go online..." (File menu) shares the current composition live via Seance; anyone with the link can join and edit together in real time. Only Layers sessions are supported — Layers can't open a session created by a different Seance-connected app, and vice versa. Media layers (images/video clips) aren't supported in shared sessions yet, since their bytes live only in your browser's local storage; take a composition online only after removing any media layers.
- Noisemaker — WebGL shader pipeline (MIT License)
- Mediabunny by Vanilagy — MP4 video encoding via WebCodecs (MPL-2.0 License)
- JSZip — ZIP file generation (MIT License or GPLv3)
- Cormorant Upright, Nunito, Noto Sans Mono — typefaces (OFL-1.1)
- Material Symbols Outlined — icon font by Google (Apache 2.0 License)
Layers is released under the MIT License. Use of name in derivative products is subject to the Trademark Policy.
Copyright 2026 Noise Factor LLC