A collection of web-based tools for generating + manipulating textures for WebGL and other applications.
Takes multiple similar seamless textures and stitches them together into a bigger output texture, retaining their seamlessness.
Works great for taking several similar seamless textures generated via stable diffusion or other tools and creating 2k or higher textures from them.
Takes a single near-seamless texture and produces a same-size output that tiles cleanly by blending the image with a half-period-shifted copy of itself in a configurable margin around the seams.
Optional variance-preserving (contrast-corrected) blending preserves detail in the seam region for textures with strong high-frequency content.
Uses pallette reduction to pack an RGB texture into a single 256-color channel. Allows for the other channels to be used for things like a normal map.
Note that the outputs from this will not be technically correct for a lot of things like interpolation, mipmap generation, and other things. However, I've found that it's good enough for the things I use it for.
Tool to create a color ramp that can be used to map a grayscale texture to color.
Fits a compact spectral fingerprint (~32 bytes) + color ramp to a texture photo and re-synthesizes a seamless texture from just those parameters.
Outputs copy-pastable Geoscript code. Works best on stochastic materials (concrete, sand, stucco, wood grain); structured layouts like bricks won't survive — by design.
Interactive playground for the spectral_noise synthesizer: hand-edit the
log-polar band spectrum, spectral peaks, and color ramp with live previews of both the
texture and its model spectrum.
A learning tool for building an intuition of how spectra map to texture appearance. Emits the same copy-pastable Geoscript snippets as the extractor.
Blends two tangent-space normal maps using Reoriented Normal Mapping.
Filter normal maps to extract or remove detail at specific frequency scales. Supports low-pass, high-pass, band-pass, and band-reject modes using Gaussian filtering.
Generates a GLSL function that maps diffuse color to a scalar value (for use in things like generating roughness/metalness) based on a user-defined reverse color ramp.
Corrects perspective (keystone) distortion in photos of flat surfaces — tiled floors, textured walls — to produce clean, square diffuse maps for 3D rendering.
Auto-detects the distortion from straight lines in the image (Canny + Hough vanishing points), with manual corner and guide-line controls for fine-tuning.
Edit simple open SVG paths on a grid with snapping, point insertion/removal, and live path output.