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.0.1.tar.gz (767.1 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.0.1-py3-none-any.whl (60.9 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for vectormark-0.0.1.tar.gz
Algorithm Hash digest
SHA256 58252f73e1f61c07506d387eb4a70c4208700e2041d3c427a099586aa9bfe518
MD5 49391a4c1e183dfac7f779a213dabe8d
BLAKE2b-256 c9b368f14403f222f4abce49c3118e2e6e3bedaf65d35633b5cdaaae8dacd62f

See more details on using hashes here.

Provenance

The following attestation bundles were made for vectormark-0.0.1.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.0.1-py3-none-any.whl.

File metadata

  • Download URL: vectormark-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 60.9 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.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c68cf2f20cf6daec42018dc7302669bfbba9bbddd885661591c17f183675d277
MD5 e7f9feb979191076e57009db0b46aacc
BLAKE2b-256 9eba3b1f8b0494f1e30826be22f9106ab37e7c6eefe243fae0fa2d18b921d95b

See more details on using hashes here.

Provenance

The following attestation bundles were made for vectormark-0.0.1-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