Go to file
storybored379 cab5dffbcf SVG export: area type keeps its wrapped lines and alignment
Area type was written as one <tspan> per paragraph at the frame's top-left: SVG text never wraps,
so every SVG viewer (and VectorCraft's own import) showed each paragraph as a single line running
out of the frame. Centred and right-aligned area type also got text-anchor="middle"/"end" at the
frame's left edge, so it was centred on (or ended at) that edge instead of inside the frame.

The exporter now asks the text layout for the lines: each line is a <tspan x y> at its baseline,
at the line's left edge, centre or right edge to match the text-anchor, with hyphenated breaks
written with their hyphen and the spaces at soft breaks dropped. The <text> carries the first
line's position too, so importers that place text by its own x/y (ours included) start at the
first line. Re-importing an exported file now reproduces the area type pixel for pixel as point
type with the same line breaks (justified lines lose their extra word spacing).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 01:25:18 -07:00
.cargo M0.1/M0.9: xtask (layers, wasm, ci, stats), agent docs, NOTICE, README, control protocol doc 2026-09-30 06:21:08 -04:00
.github/workflows Signed release pipeline (macOS/Windows/Linux/Web); README community note 2026-10-02 11:35:29 -04:00
apps app icon: regal engraved dragon (owner's ArtCraft drawing), Dock/taskbar/launcher wiring, palette docs 2026-10-02 09:45:30 -04:00
assets app icon: regal engraved dragon (owner's ArtCraft drawing), Dock/taskbar/launcher wiring, palette docs 2026-10-02 09:45:30 -04:00
crates SVG export: area type keeps its wrapped lines and alignment 2026-10-04 01:25:18 -07:00
docs Docs: README names the Illustrator habits that now work (corner widget dragging, Alt-click pivot on an anchor, middle-mouse pan, save prompt before closing); control protocol: file.close / closeAll / app.quit open a saveChanges dialog per modified document and how agents answer it 2026-10-04 00:55:55 +07:00
examples Rename DrawCraft → VectorCraft: crates (vectorcraft-*), apps, binaries, types, env vars, docs, examples (.vectorcraft); old .drawcraft files and preferences still load. Fix: text bounds exact after opening a file; selection no longer marks a document modified (dirty = content differs from the saved document). Screenshots and renders regenerated. 2026-10-01 14:30:09 -04:00
packaging Make ported packaging scripts executable (fixes exit 126) 2026-10-02 12:03:30 -04:00
xtask Signed release pipeline (macOS/Windows/Linux/Web); README community note 2026-10-02 11:35:29 -04:00
.gitignore M0: workspace skeleton — geom, color, doc, render, text, pathops, svg, tools, engine 2026-09-30 05:53:29 -04:00
AGENTS.md Rename DrawCraft → VectorCraft: crates (vectorcraft-*), apps, binaries, types, env vars, docs, examples (.vectorcraft); old .drawcraft files and preferences still load. Fix: text bounds exact after opening a file; selection no longer marks a document modified (dirty = content differs from the saved document). Screenshots and renders regenerated. 2026-10-01 14:30:09 -04:00
ASSETS.md app icon: regal engraved dragon (owner's ArtCraft drawing), Dock/taskbar/launcher wiring, palette docs 2026-10-02 09:45:30 -04:00
CLAUDE.md Rename DrawCraft → VectorCraft: crates (vectorcraft-*), apps, binaries, types, env vars, docs, examples (.vectorcraft); old .drawcraft files and preferences still load. Fix: text bounds exact after opening a file; selection no longer marks a document modified (dirty = content differs from the saved document). Screenshots and renders regenerated. 2026-10-01 14:30:09 -04:00
Cargo.lock Release 0.1.1 2026-10-03 09:55:30 -04:00
Cargo.toml Release 0.1.1 2026-10-03 09:55:30 -04:00
NOTICE Rename DrawCraft → VectorCraft: crates (vectorcraft-*), apps, binaries, types, env vars, docs, examples (.vectorcraft); old .drawcraft files and preferences still load. Fix: text bounds exact after opening a file; selection no longer marks a document modified (dirty = content differs from the saved document). Screenshots and renders regenerated. 2026-10-01 14:30:09 -04:00
README.md Docs: drop the README's list of specific Illustrator habits (too detailed for the overview); the control-protocol note on the save prompt stays 2026-10-04 01:16:12 +07:00
ROADMAP.md M4.9: Save / Don't Save / Cancel before closing modified documents — File → Close, Close All, a tab's ×, Quit and the window's close button ask once per modified document (shown first); Cancel stops the whole close/quit, a cancelled Save As keeps the document open; closing keeps per-document views aligned; agents answer the saveChanges dialog with ui.dialog.confirm (discard: true for Don't Save) 2026-10-02 22:42:50 +07:00
rustfmt.toml M0: workspace skeleton — geom, color, doc, render, text, pathops, svg, tools, engine 2026-09-30 05:53:29 -04:00

README.md

ArtCraft

VectorCraft

Vector illustration; an open-source, clean-room reimplementation of Adobe Illustrator, rebuilt in pure Rust.

A fast, open-source, clean-room take on the Adobe Illustrator workflow. It runs natively on macOS, Windows and Linux, and in the browser via WebAssembly. Built by the ArtCraft team.

Status: in active development Written in pure Rust Runs on macOS, Windows, Linux and the web MCP server for agents License: MIT OR Apache-2.0

Join the ArtCraft community on Discord

VectorCraft on getartcraft.com · ArtCraft · All Crafting Apps


VectorCraft editing the Neon Drive poster: the title is selected, the Appearance panel shows its live Outer Glow, and the Properties panel shows its character settings
Neon Drive: a Pathfinder-cut sun, live Outer Glow on the type and grid, and clipping masks · examples/neon-drive.vectorcraft

[!NOTE] ArtCraft is a community of artists from all walks of life. Digital, generative, music, games — if you make things, you're one of us. Come say hi on Discord.

A look around · Made in VectorCraft · Why VectorCraft · Quick start · Status · The Crafting Apps · License

A look around

Three live blend ribbons of 55 to 70 steps with smooth colour, clipped to the artboard, with the Layers panel open

Live Blends: editable key paths and smooth colour, clipped to the artboard

Direct Selection tool showing anchor points and Bézier handles on a crescent built with Pathfinder, with the contextual task bar below it

Pen and Direct Selection: real Bézier anchors and handles, plus a contextual task bar

Four artboards in the light UI theme: Pathfinder, Gradient Mesh, radial Repeat and Envelope Distort

Multiple artboards, light theme: Pathfinder · Gradient Mesh · live radial Repeat · Envelope Distort · examples/feature-sheet.vectorcraft

Made in VectorCraft

Every piece below was built entirely through VectorCraft's command API, the same one the MCP server exposes to agents, and exported by VectorCraft's own renderer. The source files are in examples/.

Neon Drive synthwave poster: a striped orange sun setting between purple mountains over a glowing pink grid

Neon Drive: synthwave poster with glowing type and grid

Dusk poster: a gradient sky with stars and birds, a glowing sun behind layered purple mountains and pine trees

Dusk: gradient sky, glowing sun, layered mountains

Live Blends: three wide ribbons blending yellow to pink and teal to purple, crossing over a dark background

Live Blends: 70 steps, smooth colour, editable spines

Radial Repeat mandala: teal petals around a coral center, ringed by yellow dots

Radial Repeat: a live mandala

Envelope Distort: rainbow stripes and the word WARP bent into a waving flag

Envelope Distort: striped type warped into a flag

Gradient Mesh: three softly shaded purple, pink and cyan spheres on a dark background

Gradient Mesh: shaded spheres

Pathfinder: a purple gradient crescent moon and three orange stars on a peach background

Pathfinder: a crescent and stars from exact booleans

Why VectorCraft

  • Familiar. Illustrator's layout, tools, menus, panels and shortcuts: the Pen, Direct Selection, Pathfinder, Smart Guides, Appearance, Swatches, Layers and more. You already know how to use it.
  • Fast. Multithreaded SIMD rendering off the UI thread. 20,000 shapes render in about 27 ms at full retina resolution while the interface stays at 120 fps.
  • Robust. Exact curve booleans (no "cannot perform operation"), unlimited undo via structural sharing, and property-tested file round trips.
  • Open. A documented native format (.vectorcraft, JSON), first-class SVG, PDF (and PDF-compatible .ai) import and export, PNG/JPEG/WebP, and Export for Screens.
  • Agent-native. Every menu item, tool gesture, panel and dialog can be driven over a JSON control channel and an MCP server, so Claude and other agents can draw, edit and export the way a person does.
  • Everywhere. One codebase for the desktop apps and the same UI in the browser.

Quick start

cargo run --release -p vectorcraft                          # desktop app
cargo run --release -p vectorcraft -- examples/dusk-poster.vectorcraft
cargo run --release -p vectorcraft -- --control 7979        # + JSON control channel
cargo run --release -p vectorcraft-cli -- mcp               # MCP server (stdio)
cargo run --release -p vectorcraft-cli -- run --in examples/ribbons.vectorcraft --export out.pdf   # headless batch
cargo run --release -p vectorcraft-cli -- bench examples/neon-drive.vectorcraft                   # render timing
cargo xtask bundle                                        # dist/VectorCraft.app (macOS)
cd apps/vectorcraft-web && trunk build --release            # web build → dist/web
cargo xtask ci                                            # fmt, clippy, tests, layering, wasm

Use it from Claude Code and other agents

Register the MCP server with Claude Code:

claude mcp add vectorcraft -- /path/to/vectorcraft-cli mcp

The details are in docs/mcp.md and docs/control-protocol.md.

Status

VectorCraft is under active development. ROADMAP.md covers what ships today, the milestones, and honest time-to-parity estimates.

Workspace: crates/{geom, color, doc, pathops, text, effects, trace, brush, render, svg, pdf, format, tools, engine, ui-egui, mcp, testkit} and apps/{vectorcraft, vectorcraft-cli, vectorcraft-web}. The egui frontend is its own crate, so the UI can be swapped without touching the engine.

Agent and contributor rules (clean-room, the asset policy, quality gates) are in AGENTS.md. Every bundled asset is listed with its licence in ASSETS.md.

The Crafting Apps

VectorCraft is one of the Crafting Apps: free, open-source creative tools from the ArtCraft team, each written from scratch in Rust and each able to stand on its own.

App What it's for Code Learn more
PhotoCraft Image editing: layers, masks, type and real PSD files GitHub Website
VectorCraft Vector illustration · you are here GitHub Website
FilmCraft Video editing, color and sound GitHub Website
LightCraft Photo library and raw development GitHub Website
PrintCraft Reading, organizing and protecting PDFs GitHub Website
EffectCraft Motion graphics and visual effects GitHub Website
DesignCraft Page layout and publishing GitHub Website

And ArtCraft itself, our AI image and video studio for artists who want real control.


Join the ArtCraft community on Discord

Come make things with us

Our Discord is where artists of every kind hang out: people who paint, shoot, draw, cut film, set type, and people still figuring out what they like to make. Share what you're working on, ask for help, tell us what's broken, or tell us what you wish these tools could do. Whatever your medium and however long you've been at it, you're welcome here.

discord.gg/artcraft · getartcraft.com · The Crafting Apps · VectorCraft

License and credits

MIT OR Apache-2.0. Bundled fonts are OFL, Lucide icons are ISC, and all other icons and art are original. Per-asset attribution is in ASSETS.md (see also NOTICE). The app icon (an engraved dragon on VectorCraft red, #e8573f) is the owner's original artwork; its palette and files are in assets/app-icon/.

Adobe, Photoshop, Illustrator, Premiere Pro, Lightroom, Acrobat, After Effects and InDesign are trademarks or registered trademarks of Adobe Inc. in the United States and/or other countries. VectorCraft is an independent, open-source project and is not affiliated with, sponsored by or endorsed by Adobe Inc.; these names are used only to describe the workflows it is compatible with.

ArtCraft
Made by the ArtCraft team and community.