@faceless-photolib
faceless-photolib
Headless, color-managed, GPU image editing.
A headless, color-managed, GPU-accelerated, non-destructive image-editing engine. One WGSL codebase runs on the web, React Native, and the server; an ordered layer stack compiles to a float ACEScg render graph with every Photoshop blend mode, 3D LUTs, and DCTL/CLF color transforms.
Packages
@faceless-photolib/engine-apibetaThe main entry point: open a document, edit its layer stack, render and export via a pluggable backend.
@faceless-photolib/schemasbetaZod schemas as the single source of truth — branded IDs, the Result vocabulary, the Layer discriminated union, color spaces, transforms, masks.
@faceless-photolib/diagnosticsbetaRuntime diagnostics (warnNotImplemented / warnDegraded / warnUnexpected) backed by a dedup registry — used instead of // TODO.
@faceless-photolib/colorbetaColor science: transfer functions, primaries/matrices, Bradford adaptation, ACEScg working space, hub-and-spoke conversions.
@faceless-photolib/geometrybeta2D affine + homography math for layer transforms: mat3, decompose/recompose, homography solve/fit, resample kernels.
@faceless-photolib/blendbetaAll 27 W3C Compositing & Blending Level 1 modes over premultiplied Porter-Duff — the Photoshop blend-mode set.
@faceless-photolib/adjustmentsbetaNon-destructive adjustment effects (curves, levels, hue/saturation, exposure, …) as shader IR with a declared working space.
@faceless-photolib/lutbeta3D LUT parsing (.cube / .3dl / ACES .clf) and tetrahedral/trilinear interpolation over an rgba16float cube.
@faceless-photolib/color-transformexperimentalACES CLF and a constrained DCTL subset compiled to the engine render IR — the DaVinci-style color-transform layer.
@faceless-photolib/interactionbetaHeadless crop / resize / rotate / straighten controllers replicating Photoshop and Lightroom controls. No UI — pure state machines.
@faceless-photolib/document-modelbetaThe immutable document model and an immer-based operation set over the ordered layer stack.
@faceless-photolib/image-codecbetaImage decode/encode (PNG/JPEG/TIFF via sharp) and a Node TextRasterizer port implementation.
@faceless-photolib/render-graphbetaCompiles a document layer stack into a color-managed render graph of GPU passes, plus the TextRasterizer port.
@faceless-photolib/backend-cpubetaThe CPU reference backend — the golden renderer. Executes the render graph in pure TypeScript at full float precision.
@faceless-photolib/backend-webgpuexperimentalThe WebGPU backend — WGSL codegen + pipeline for the render graph; one shading-language codebase for browser, Node, and Expo.