Skip to main content

Deterministic logo idealizer — rendered logo raster to clean, editable, symmetric SVG.

Project description

vectormark

Deterministic logo idealizer — turn a rendered (raster) logo into a clean, editable, exactly-symmetric SVG.

Where conventional tracers (vtracer, potrace, autotrace) chase pixel edges and emit anonymous <path> soup, vectormark recognizes structure: it collapses anti-aliasing to a true palette, detects symmetry, and fits ideal primitives (<ellipse>, <rect>, regular polygons) to regions — falling back to fitted Bézier paths only where no primitive matches. The output SVG doubles as a human-editable parametric model.

No model/LLM in the loop. Every stage is a known, deterministic algorithm.

Status

🌱 v1 pipeline working. The deterministic A0→B→C pipeline idealizes the Daikonic mark end-to-end (SSIM 0.98 / mean ΔE 0.006 vs. source) into a 1.9 KB structured SVG with exact bilateral symmetry. See the design spec and plan:

uv sync --extra dev
uv run vectormark path/to/logo.png -o out.svg
uv run pytest

MCP integration is available for AI clients that can call local stdio servers (the server lives in the optional server extra; scored selection needs the scoring extra — without it, selection falls back to the cascade pick):

uv sync --extra server --extra scoring
npm --prefix integrations/mcp-app install
npm --prefix integrations/mcp-app run build
uv run vectormark-mcp

See docs/mcp.md for client configuration and hosted app notes.

Pipeline (v1)

A0  color optimization   robust palette (OKLab, ΔE-merge); AA halo discarded as noise
B   trace + clean        vtracer per layer; drop background plate
C   idealize             symmetry axis (PCA + reflection gate) → fundamental domain
                         → contour → RDP → primitive-first / Bézier-fallback
                         → geometry-level mirror (<use>)
→   structured SVG       native shapes + <use>; optional --flatten to paths

v1 targets flat-color segmented marks. v1.1 adds gradient normalize/re-apply.

Prototype → core

Built first in Python (numpy/scipy/scikit-image/shapely/Pillow + vtracer), with a pure, IO-free pipeline so the eventual Rust core (npm via napi-rs, PyPI via PyO3/maturin, WASM for browser) is a mechanical port.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vectormark-0.1.0.tar.gz (770.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

vectormark-0.1.0-py3-none-any.whl (61.3 kB view details)

Uploaded Python 3

File details

Details for the file vectormark-0.1.0.tar.gz.

File metadata

  • Download URL: vectormark-0.1.0.tar.gz
  • Upload date:
  • Size: 770.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for vectormark-0.1.0.tar.gz
Algorithm Hash digest
SHA256 0a84a840d16ea377bd0b8949abdb8b8f00d594e2e16eddadf996cd49e6afa1ea
MD5 b0e7a99ed2defe291dfa4551e8c60f43
BLAKE2b-256 3456a36ebde8a0a5bc53fea26b786e3d56c5df201f5491643f68ddf0f1f0cd25

See more details on using hashes here.

Provenance

The following attestation bundles were made for vectormark-0.1.0.tar.gz:

Publisher: release.yml on pradeepmouli/vectormark

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vectormark-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: vectormark-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 61.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for vectormark-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 93447b19728f47f775a3e4fef36a130015f4abdc6eb4850b373e33c1b30a9fd3
MD5 ca9e02cd559ae0a8bbf2d11abec34f5e
BLAKE2b-256 ff53f83fc303ce09941c688517cde409a9bc9f00ed7421a852730726af11d054

See more details on using hashes here.

Provenance

The following attestation bundles were made for vectormark-0.1.0-py3-none-any.whl:

Publisher: release.yml on pradeepmouli/vectormark

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page