VECTOMANCY
Transform images into pure mathematical equations and curves.
Recent Updates
[2026-08-24] - Now in Chinese + Reveal polish
-
Simplified Chinese is live: the whole site is now bilingual. Mainland visitors are auto-directed to the
/zh/edition, anEN | 中文switcher sits on every page, and CJK text renders in a crisp 12px pixel font served from our CDN. -
Reveal feels right: animations now honor your
Stroke Weightfrom start to finish, stagedMono first, color spreadsends exactly on its final frame (no more sudden color shift at completion), and heavy 10,000+-path artwork plays smoothly thanks to a new dirty-rect compositor and batched stroke rendering. Huge artworks no longer freeze panning after the animation completes, and Reveal is now on by default — a gentle 3s bloom from the center, withMono firststill opt-in. - Always fresh: assets are content-hashed, so updates reach your browser without manual hard refreshes.
[2026-08-23] - Progressive Reveal comes to Vectomancy Pro
-
Delayed rendering is here: artwork no longer has to appear all at once. Open the Image or
Text tool and look for the new
Revealpanel in the left sidebar. -
Pick an animation: directional sweeps (L→R, R→L, T→B, B→T), diagonals (TL→BR / BR→TL), radial expansion from the center,
stroke-by-stroke
Sequential Draw, orRandom Scatter. Set theDurationslider and pressREPLAYto watch it again. -
Custom radial origin: hold
ALTand click anywhere on the canvas — the reveal blooms outward from exactly that point. -
Staged color: tick
Mono first, color spreadsto draw the whole piece in monochrome first, then let the real colors bloom back in with their own strategy (Color Spread) and timing (Color Lag). Especially striking with colorful line art and gradients! - Stability fix: repaired a long-standing script error that could silently break the whole Playground page.
[v8.1.0] - 2026-08-19
- Compact HTML & Desmos equations: zero terms, identity multipliers and redundant signs are removed, while malformed concatenated Spline terms are now emitted as valid expressions.
- Correct domains and framing: Spline exports use their actual parameter intervals and endpoints; Desmos and SVG initialize from the source bounding box instead of assuming zero-based coordinates.
- Safer JSON & SVG rendering: invalid non-finite AST values are rejected, and SVG Fourier sampling adapts to active high-frequency terms to prevent aliased or collapsed paths.
[2026-08-16] - Video & JSON Studio moved to CLI
-
Video and JSON Studio web pages removed: to keep the site lightweight, these two tools are no longer available in the browser.
Both features remain fully available in the CLI — run
vectomancy video input.mp4 -o output.mp4for video, andvectomancy render output.json -f svg -o out.svgto re-render an exported JSON locally in your terminal.
[v8.0.0] - 2026-08-14
-
CLI v2.0.0 Released: Core
vectomancyCLI updated to v2.0.0 with critical SVG export and JSON rendering fixes. -
SVG stroke-width fix (#132):
vectomancy image -f svg --stroke-width Xwas silently ignoringX— all SVG<path>elements had a hardcodedstroke-width="1". Now correctly threads the value through the entire emitter pipeline (emit_file→to_svg_string). -
New
rendersubcommand (#133): Load a previously exported JSON and re-render without re-running the analysis pipeline. Supports all output formats (svg,png,jpg,webp,python,html,desmos). Example:vectomancy render output.json -f svg --stroke-width 0.005 -o thin.svg
[v7.1.5] - 2026-08-13
-
JSON Studio: New dedicated page at
/json-studio— load an exported JSON AST, then freely adjust stroke weight, color, background and output size with instant re-render, zero WASM overhead. - Stroke Weight expanded (0.001 – 100 px): All three tools (Image, Text, Video) now accept values down to 0.001 px. At such thin strokes the output is invisible to the human eye yet remains fully decodable by multimodal LLMs via the raw PNG pixel values.
- COPY button: One-click PNG copy to clipboard on the Image and Text pages.
- RESTORE FROM JSON: Load a previously exported JSON file directly into the Image or Text gallery to re-render with different visual parameters.
-
Video stroke fix: Video page now has a Stroke Weight input;
vectomancy video --stroke-widthalso wired to frame exports. -
Typography stroke fix: The
drawCachedPaths()renderer was ignoring the Stroke Weight input. Now correctly reads the user-supplied value.
[2026-08-13] - Maintenance & UX
-
SVG Export Coordinates Fixed: Exported images no longer appear only in the top-left corner — the engine now correctly
maps the SVG viewBox into the output canvas, honouring
preserveAspectRatio(xMidYMid meet). -
Dependency Upgrade: Upgraded to
usvg 0.48andkiddo 6, bringing the latest SVG parser improvements and faster nearest-neighbour queries for the TSP routing pass. - Stroke Weight default 2.0px: The default stroke width is now 2.0 px (was 1.0 px) across the CLI and both web tools for better out-of-the-box output quality.
- Stroke Weight input: The Stroke Weight control is now a number input instead of a slider — type any value from 0.01 to 5.00 without accidental redraws on drag.
[v7.1.3] - 2026-07-31
- Skeleton Extraction Quality: The raster pipeline now runs full Zhang-Suen thinning with endpoint/loop-aware path tracing, matching the reference parser — previously a simplified greedy walk produced fragmented, noisy skeletons that stopped at the first branch point.
- Release Pipeline Hardening: All workspace crate manifests now bump in lockstep, and the release workflow fails fast on manifest/tag version mismatch before publishing anything.
[v7.1.0] - 2026-07-29
-
Workspace Crate Decoupling: The engine is split into six standalone publishable crates —
vectomancy-geometry,vectomancy-transform,vectomancy-raster,vectomancy-svg,vectomancy-export,vectomancy-pipeline— each independently versioned and tested, with the facade preserving drop-in compatibility.
[v7.0.0] - 2026-07-24
- Multi-Core Raster Pipeline: Sobel edge detection and skeleton thinning now run in parallel across all CPU cores. Single-image processing on a multi-megapixel photo dropped from ~1.4s to ~0.5s on a 24-core machine.
-
Parallel Video Frames: The
videosubcommand now processes multiple frames concurrently instead of one at a time — a 10s/301-frame 1080p clip went from 22.4s to 4.5s (4.98x faster) on the same machine.
[v6.3.0] - 2026-07-24
- SVG Export: New vector export option for the Image Engine. Flattens Spline, Fourier, and Chaikin curves into a clean, scalable SVG document with full color and gradient support.
-
CLI Parity: The core
vectomancyCLI (v6.3.0) now also supports--format svgfor theimage,video, andtextsubcommands.
⚠️ Please respect the original creators. As a mathematical visualization tool, this website does not assume copyright liabilities.