VectorCraft v0.11.0

VectorCraft is an open-source vector illustration application designed as a clean-room reimplementation of the Adobe Illustrator workflow. Built entirely in Rust, it provides a native desktop application for Windows, macOS and Linux, along with a WebAssembly version that runs in the browser.

The project goes beyond basic vector drawing. It aims to reproduce a professional Illustrator-style workflow with Bézier editing, Pathfinder operations, multiple artboards, typography, gradients, live effects, PDF and SVG workflows, and extensive automation capabilities.

Features

VectorCraft provides a substantial collection of professional vector-illustration tools:

  • Pen and Direct Selection tools

  • Bézier anchors and handles

  • Pathfinder and exact Boolean operations

  • Multiple artboards

  • Layers and groups

  • Smart Guides

  • Rulers, grids and alignment tools

  • Live corners

  • Gradient and mesh tools

  • Gradient fills and strokes

  • Pattern and appearance controls

  • Blend tool

  • Radial Repeat

  • Envelope Distort

  • Puppet Warp

  • Liquify

  • Width tool

  • Perspective Grid

  • Freeform gradient editing

  • Recolor Artwork and Color Themes

  • Editable text and type-on-path

  • Variable and transformed vector content

  • Symbols

  • Clipping and masking

  • SVG import and export

  • PDF import and export

  • EPS export

  • DXF import

  • PNG, JPEG and WebP raster export

  • Export for Screens

  • Native .vectorcraft document format

  • Print engine

  • PDF layers and overprint support

The application also includes a command API that exposes its tools and interface to external automation. A JSON control channel and MCP server allow AI agents and scripts to manipulate documents, operate tools and export artwork.

This is one of VectorCraft's most distinctive features. It is not simply an image editor with an AI assistant added on top. The editing engine itself is designed to be programmatically controllable.

Download VectorCraft v0.11.0 - Software Mirrors

VectorCraft v0.11.0 for Windows

vectorcraft-0.11.0-windows-x86.msi | 92.05 MB

vectorcraft-0.11.0-windows-x86-portable.zip | 112.25 MB

vectorcraft-0.11.0-windows-x64.msi | 94.81 MB

vectorcraft-0.11.0-windows-x64-portable.zip | 116.76 MB

vectorcraft-0.11.0-windows-arm64.msi | 89.36 MB

vectorcraft-0.11.0-windows-arm64-portable.zip | 111.45 MB

VectorCraft v0.11.0 for macOS

vectorcraft-cli-0.11.0-macos-universal.zip | 101.2 MB

vectorcraft-0.11.0-macos-universal.dmg | 126.28 MB

VectorCraft v0.11.0 for Linux

vectorcraft-0.11.0-linux-x86_64.tar.gz | 114.61 MB

vectorcraft-0.11.0-linux-x86_64.rpm | 115.55 MB

vectorcraft-0.11.0-linux-x86_64.flatpak | 79.84 MB

vectorcraft-0.11.0-linux-x86_64.deb | 116.32 MB

vectorcraft-0.11.0-linux-x86_64.AppImage.zsync | 190.26 kB

vectorcraft-0.11.0-linux-x86_64.AppImage | 108.58 MB

vectorcraft-0.11.0-linux-riscv64.tar.gz | 112.89 MB

vectorcraft-0.11.0-linux-aarch64.tar.gz | 109.97 MB

vectorcraft-0.11.0-linux-aarch64.rpm | 111.85 MB

vectorcraft-0.11.0-linux-aarch64.flatpak | 75.18 MB

vectorcraft-0.11.0-linux-aarch64.deb | 112.79 MB

vectorcraft-0.11.0-linux-aarch64.AppImage.zsync | 182.77 kB

vectorcraft-0.11.0-linux-aarch64.AppImage | 104.3 MB

VectorCraft v0.11.0 for BSD

vectorcraft-0.11.0-freebsd-x86_64.tar.gz | 114.47 MB

Others Download related to VectorCraft v0.11.0

vectorcraft-web-0.11.0.zip | 23.54 MB

VectorCraft v0.11.0 Source Code

VectorCraft v0.11.0 Source code (zip)

VectorCraft v0.11.0 Source code (tar.gz)

VectorCraft v0.11.0 Release Notes:

What's Changed

  • Artboards: art flush with an artboard moves with it despite a rounding error by @bflatastic in #1375
  • Fonts: a character no font covered is looked for again after a font rescan by @bflatastic in #1376
  • Docs: ROADMAP 2026-10-12 adds #1239–#1374 (community PRs of the day) by @bflatastic in #1378
  • PDF import: a PDF saved with its editing data opens on its artboard with its bleed by @bflatastic in #1379
  • Fix #1367: a dialog opened from a menu takes the keyboard focus every time by @bflatastic in #1382
  • Fix #1264: placed (linked) files in a .ai file's editing data come in as linked images by @bflatastic in #1381
  • .ai import: a gradient with stops in the middle runs its whole ramp (follow-up to #1264) by @bflatastic in #1390
  • .ai import: type goes to its own text object across looks, hidden layers and artboards (follow-up to #1264) by @bflatastic in #1391
  • .ai import: area type shows its first line in a substituted font (follow-up to #1264) by @bflatastic in #1392
  • Fix #1373: --control without a valid port stops the desktop before it starts by @Nael-Nathanael in #1383
  • Fix #1257: a dragged object reuses its filter and shadow rasters by @dotCooCoo in #1384
  • Render: the placed art of symbol instances and inline graphics is kept between frames by @dotCooCoo in #1386
  • Isolation mode: double-clicking a single object isolates it by @AyberkA0 in #1393
  • Part of #1377: Rectangular Grid and Polar Grid tool options (skew, frame, compound path, fill) by @bflatastic in #1394
  • A just-opened dialog gives its focus to the first enabled field, not a greyed-out one by @bflatastic in #1395
  • Docs: ROADMAP 2026-10-12 adds #1375–#1395 (community PRs of the day) by @bflatastic in #1405
  • Fix #1388: PDF and .ai import and file.place keep overprint by @bflatastic in #1413
  • Fix #1387: a .ai whose PDF part draws only text opens from it by @bflatastic in #1414
  • Report compound-path paint and a non-normal blend in document summaries. by @vbasky in #1397
  • object.isolate: an id that doesn't exist says so by @bflatastic in #1415
  • Hide the selection bounds while a corner-radius drag is underway. by @vbasky in #1402
  • Paste the picture when the clipboard text beside it is blank. by @vbasky in #1404
  • Fix #1396: a stroke wider than its closed shape paints solid by @vbasky in #1409
  • Docs: sync mcp.md with acting prefs and shipped command families by @Messhias in #1418
  • Fix #1410: an .ai compound path takes its last path's paint, and paths grouped in it stay its paths by @bflatastic in #1426
  • Fix #1408: the Transform tools and commands act on the anchors selected with Direct Selection by @bflatastic in #1427
  • Fix #1412: the Transform dialogs preview on the canvas, and arrow keys step their angles and percentages by @bflatastic in #1428
  • PDF import: an editor's .ai keeps its RGB numbers, and a fill faded or masked by its group keeps its stroke apart by @EricKuck in #1434
  • SVG export: knockout groups of opaque art draw in order, without masks by @EricKuck in #1435
  • .ai import: radial and skewed gradient matrices, focal points and stop order, gradient meshes and artboard names from the editing data by @EricKuck in #1438
  • .ai import: art styles, a clipping path's own fill, compound paths of looks and a group's own transparency from the editing data by @EricKuck in #1439
  • .ai import: editingData "always" and convert --editing-data open a file from its editing data even where its page draws differently by @EricKuck in #1440
  • Docs: ROADMAP 2026-10-12 adds #1397–#1428 (later merges of the day) by @bflatastic in #1447
  • Part of #1429: Edit and Object commands on many objects take time linear in the document by @dotCooCoo in #1430
  • Image Trace: a quality harness and the baseline for every preset by @bflatastic in #1455
  • Fix #1423: an Affinity text frame too short for its first line is made taller instead of showing nothing by @bflatastic in #1449
  • Fix #1444: text.fitHeadline sees wrapping in a frame one line tall by @giang17 in #1445
  • Type: frames and paths beyond 1,000,000,000 pt hold no text, and layout limits its search for room by @dotCooCoo in #1451
  • Render: raster effects are made again when patterns, symbols, images, settings or fonts change by @dotCooCoo in #1452
  • Effect › 3D and Materials: Extrude & Bevel, Inflate and Rotate by @AyberkA0 in #1453
  • Image Trace: edges to a fraction of a pixel in Black and White, Grayscale and Color by @bflatastic in #1478
  • i18n(cs): catch up with strings added since the Czech catalog by @Losminek in #1461
  • Plug-ins: numeric defaults stay in their declared range by @webdevtodayjason in #1463
  • Part of #1429: Alt-drags with the selection and transform tools copy the objects once per drag by @dotCooCoo in #1464
  • Fix #1462: Split Into Grid has its row and column sizes, gutters, totals, Add Guides and Preview by @bflatastic in #1488
  • Part of #1466: grayscale TIFFs with an alpha channel or extra channels can be placed by @bflatastic in #1489
  • Part of #1465: selected text in value fields is readable by @bflatastic in #1490
  • Fix #1450: the Pathfinder panel works on a group selected alone by @bflatastic in #1493
  • Fix #1448, #1460: Transform Objects in the Transform dialogs and Transform Each, and Reflect across an angle by @bflatastic in #1494
  • Part of #1459: the window's surface may be as large as the graphics adapter allows by @bflatastic in #1495
  • Fix #1442: an unknown parameter key is an error naming it and the nearest accepted key by @bflatastic in #1496
  • Fix #1457: a focused field follows its value when a slider or preview changes it by @bflatastic in #1497
  • i18n(hu): informal address in a row added on merge by @Skaywalker in #1474
  • 3D and Materials: curves follow a tolerance, and Rotate takes large outlines by @AyberkA0 in #1481
  • Docs: ROADMAP 2026-10-12 adds #1430–#1497 (later merges of the day) by @bflatastic in #1501
  • Fix #1471: making and restyling type reports text that doesn't fit its frame by @bflatastic in #1500
  • Image Trace: colour presets trace flat art with its own colours (no shattering, no slivers) by @bflatastic in #1504
  • Fix #1486: a template layer stays in Preview in Outline view by @bflatastic in #1505
  • Fix #1483: sliders in dialogs show their rail by @bflatastic in #1506
  • Tabs panel: drag a tab stop from where the press landed by @itrycodinganditsbad in #1487
  • Graph Data: the CSV keeps each value exactly, not rounded to two decimals by @webdevtodayjason in #1485
  • Image Trace: photos trace into smooth tones (smoothing first, stacked layers by lightness) by @bflatastic in #1516
  • Image Trace: progress docs for the palette and photo changes by @bflatastic in #1520
  • CLI: perf on Windows reports the cores busy and its working set, and the help lists --deep by @dotCooCoo in #1502
  • G16: Vietnamese interface (vi) by @duydev in #1507
  • Direct Selection: a selected path's anchor is picked before one of an object above it by @marcoarnulfo in #1509
  • i18n: complete the French (fr) UI catalog (423 entries) by @Atalantis in #1511
  • Decode print-size rasters in Crop Image trim and the renderer; say when an export is missing an image by @fastmikey99 in #1517
  • Part of #1429: Layers panel and artboard commands on many rows take time linear in the document by @dotCooCoo in #1515
  • Part of #1429: path, Pathfinder and live-object commands add and remove many objects in one pass by @dotCooCoo in #1519
  • macOS: the app no longer reads the menus at every step of a move, scale or shape drag by @dotCooCoo in #1523
  • 3D and Materials: Extrude & Bevel's Twist runs 0° to 360°, as documented by @AyberkA0 in #1524
  • 3D and Materials: twisted Extrude & Bevel walls keep their faces by @AyberkA0 in #1525
  • 3D and Materials: Inflate takes Twist, Taper and Cap by @AyberkA0 in #1526
  • README.md: add clone instructions to quick start by @anders94 in #1522
  • Image Trace: abutting regions share one curve along their edge (no gaps, no overlaps) by @bflatastic in #1535
  • Native save: documents whose JSON is large are written compact by @switch87 in #1492
  • i18n: add Polish (pl) interface language by @lewandowskit in #1498
  • Make Compound Path: the compound path of a group takes its backmost path's paint by @bflatastic in #1537
  • Fix #1499: PDF and EPS another app copied paste as editable vector art by @bflatastic in #1538
  • Part of #1479: an image too large to decode is reported on Open, Place and in the Links panel by @bflatastic in #1540
  • Docs: ROADMAP 2026-10-12 adds #1474–#1525 (late merges of the day) by @bflatastic in #1545
  • .ai import: a page's art past its artboard no longer lies over the page before it by @fortesnow in #1528
  • AI import: gradient stops listed upwards aren't reversed, so a midpoint stays on the stop that starts its part of the ramp by @EricKuck in #1530
  • SVG import: follows basic shapes (circle, ellipse, rect, line, polyline, polygon) by @switch87 in #1531
  • Image Trace: a 16 megapixel photo is traced in 0.9 GB, not 3.9 by @bflatastic in #1546
  • Fix #1512: round corners next to curves stay inside the corner, and the Smooth tool smooths what is under the drag by @bflatastic in #1547
  • Fix #1529: Linux reads the font folders fontconfig is set up with by @bflatastic in #1548
  • Image Trace: thin lines in blurred and scanned art keep smooth edges by @bflatastic in #1563
  • PDF import: images in an alpha soft mask count by their alpha by @switch87 in #1551
  • EPS/PS import: Type 42 fonts set type at their size by @switch87 in #1553
  • Image Trace: Ignore Color, and the Auto Color and Outline presets by @bflatastic in #1574
  • Keyboard Shortcuts: Duplicate is listed, so it can be given a shortcut by @marcoarnulfo in #1549
  • Render: effect rasters drawn after a pattern fill keep their place and size by @switch87 in #1541
  • Guides: Lock Guides locks the paths made into guides too by @marcoarnulfo in #1543
  • PDF/EPS import: a clip only counts as covering the page when it does by @switch87 in #1544
  • Keyboard Shortcuts: the commands outside the menus that run without params are listed too (#1539) by @bflatastic in #1580
  • Fix #1533: Join merges the selected anchors that lie on one another (after Average) into one by @bflatastic in #1582
  • Fix #1534: guide paths take the guide colour and style, and a dragged selection snaps to ruler guides with Smart Guides on by @bflatastic in #1583
  • Zig Zag: ridges are spaced evenly along each segment's length, so a straight line gets a regular wave by @marcoarnulfo in #1558
  • SVG import: CSS transforms in CSS syntax move objects; the font shorthand styles type by @switch87 in #1565
  • Replace linear scan in CSS class dedup with a HashMap lookup by @excited-raccoon in #1567
  • Symbols panel: New Symbol asks for Symbol Options before making the symbol by @marcoarnulfo in #1566
  • Image Trace: Snap Curves To Lines levels lines a degree or two askew by @bflatastic in #1593
  • Image Trace: stroked centre lines lie in the middle of their ink and are as wide as it by @bflatastic in #1595
  • SVG import: percentage lengths in a symbol with a viewBox are of the viewBox by @bflatastic in #1596
  • Image Trace: Shapes, and corners whose pixel is mostly outside the shape by @bflatastic in #1609
  • Docs: ROADMAP 2026-10-13 adds #1492–#1583; Average and Join corrected to missing, Polish row count by @bflatastic in #1612
  • Pathfinder: Trim, Merge and Crop remove strokes by @switch87 in #1572
  • SVG import: Inkscape flowed text (flowRoot) becomes area type by @switch87 in #1569
  • Warp › Arc: bend in the object's real proportions by @switch87 in #1581
  • Commands: objects given as ids stand in for the selection by @switch87 in #1577
  • Select Behind: test each object once instead of re-hitting the whole document by @excited-raccoon in #1571
  • Palette nearest-colour lookup: branch-and-bound index over the linear scan by @excited-raccoon in #1576
  • ICC profiles written here have their tags 4-byte aligned by @switch87 in #1589
  • Offset Path: an empty result says the offset leaves nothing by @switch87 in #1591
  • Image Trace: Auto Grouping by @bflatastic in #1618
  • PDF/.ai import: evenly tracked type on a path keeps its length by @p0lyg0n in #1586
  • PDF/.ai import: type stroked glyph by glyph stays one object by @p0lyg0n in #1585
  • Effects: effect.apply and effect.setParams refuse parameters the effect doesn't take (#1592) by @bflatastic in #1623
  • Image Trace: Gradients by @bflatastic in #1627
  • Image Trace: progress docs for the edge, stroke, memory and options work by @bflatastic in #1628
  • Save: a network drive on macOS that refuses the full flush gets a plain fsync by @marcoarnulfo in #1625
  • Strokes: a zero-length subpath draws its round or projecting cap as a dot by @marcoarnulfo in #1619
  • Area type: a word too wide for the top lines of a shape moves down instead of breaking by @marcoarnulfo in #1617
  • Render: pattern tiles at different scales are kept between frames by @dotCooCoo in #1621
  • Object: Lock and Hide › All Artwork Above go through each top-level layer once by @dotCooCoo in #1622
  • i18n(pl): confirm the maintainer-added Polish rows by @lewandowskit in #1614
  • Part of #1620: a save falls back when a folder refuses the temporary file or the rename by @bflatastic in #1649
  • Fix #1616: a tool flyout is as wide as its longest translated row by @bflatastic in #1650
  • Image Trace: levelling moves no end of a line by more than 1.6 px by @bflatastic in #1647
  • Image Trace: Flat Logo takes the tones of an unevenly lit colour for one colour by @bflatastic in #1657
  • Type: stylistic sets, alternates, titling, figure styles, superscript and subscript by @switch87 in #1611
  • Open by a relative path finds relative links; convert reports import warnings by @switch87 in #1606
  • SVG import: an unsupported filter's warning names the filter and the object by @switch87 in #1599
  • SVG import: Inkscape's pages become artboards by @switch87 in #1603
  • Scripts: Check Script… reports what a .jsx script needs and does, without running it by @dotCooCoo in #1608
  • Fix #1602: drawn points snap to where paths and guides intersect by @bflatastic in #1658
  • Fix #1597: the Transform panel shows and sets a selected ruler guide's X or Y by @bflatastic in #1659
  • Align: anchor points of one path align to each other, not to the artboard by @marcoarnulfo in #1641
  • Pathfinder panel: a group selected alone counts its nested shapes, so an expanded stroke keeps the Shape Modes enabled by @marcoarnulfo in #1642
  • Roughen (Smooth): a turn-back stays smooth instead of becoming a cusp by @switch87 in #1646
  • Scribble: one zig-zag per region, no lines across holes and notches by @switch87 in #1651
  • EPS import: a stitched shading keeps its hard colour changes by @switch87 in #1654
  • Cursors: paint the tool cursors on Wayland, where the compositor showed the bitmap twice too big by @marcoarnulfo in #1652
  • Control: replies are buffered, so a 17 MB reply is sent in 0.09 s instead of 34 s on Windows by @dotCooCoo in #1684
  • Fix #1710: ruzstd 0.9.1 (RUSTSEC-2026-0344) by @AyberkA0 in #1807
  • Refuse to package over the source document or its linked files (#1696) by @MarekSpodBiedry in #1786
  • Keep Export for Screens suffix inside the export folder (#1713) by @MarekSpodBiedry in #1777
  • Create the staging file owner-only when replacing a document (#1712) by @MarekSpodBiedry in #1778
  • Fix #1698: entries read from memory obey the size limits too, not only streamed ones (#1698) by @MarekSpodBiedry in #1783
  • Check embedded PNG/JPEG bitmap size from the header before decoding (#1716) by @MarekSpodBiedry in #1776
  • Fix scatter X axis ticks looping forever on data near the f64 maximum (#1707) by @MarekSpodBiedry in #1780
  • Cap Liquify dabs while expanding a segment, not only before it (#1708) by @MarekSpodBiedry in #1779
  • Search each shared name tree node once when finding the editing file (#1702) by @MarekSpodBiedry in #1781
  • Stamp File Info dates only after a save succeeds (#1721) by @MarekSpodBiedry in #1774
  • Do not journal a failed live preview at commit (#1720) by @MarekSpodBiedry in #1775
  • Linked files: a change during a drag is applied after the drag, not lost (#1722) by @MarekSpodBiedry in #1773
  • Fix numeric fields reverting a typed value when clicking away instead of pressing Enter (#1637) by @MarekSpodBiedry in #1787
  • Fix #1758: keep the custom title bar window borderless on Windows by @AyberkA0 in #1791
  • Delete removes every selected anchor and keeps the remainder selected by @turtwig in #1674
  • Direct Selection stays inside isolation mode by @turtwig in #1666
  • Fix #1743: Escape cancels a Direct Selection drag by @AyberkA0 in #1803
  • Fix #1686: Escape in type editing goes to the Selection tool by @AyberkA0 in #1802
  • Fix #1679: a filled pencil path keeps a stroke of None by @AyberkA0 in #1804
  • Part of #1661: [ and ] reach the tools that take them by @AyberkA0 in #1734
  • Fix #1757: arrow keys move through the command search results by @AyberkA0 in #1798
  • Fix #1662: slider rails show on Medium Dark by @AyberkA0 in #1808
  • Fix #1756: Object → Expand expands repeats by @AyberkA0 in #1765
  • Select > Same: type matches on its characters' fill and stroke by @marcoarnulfo in #1746
  • Fix #1748: text.create takes justify for point type alignment by @switch87 in #1752
  • Color panel: the mode picked last comes back after a restart by @marcoarnulfo in #1677
  • CI: isolate text import fuzzing from installed fonts by @sanyamsingh001 in #1785
  • Fix race over font database in tests by @danngreen in #1795
  • Pen: drag threshold, Precise Cursors command and tests by @ham9zah in #1663
  • Fix control sockets retaining connection slots indefinitely by @DWAA1660 in #1797
  • Fix #1727: cap MCP framing input, batches and kept command_batch results by @fahrim in #1764
  • Fix #1728: require the JSON-RPC 2.0 envelope and correlate control replies by @fahrim in #1768
  • MCP: reconnect closed control sockets before sending requests by @KnottyDyes in #1739
  • Render: objects that share an appearance keep their own stroke outlines between frames by @dotCooCoo in #1667
  • Render: the canvas no longer draws its picture back for each non-isolated group that blends by @dotCooCoo in #1687
  • Render: live objects are evaluated again when patterns, symbols, fonts or color settings change by @dotCooCoo in #1688
  • Render: Outline view draws paths and clipped art from geometry kept between frames by @dotCooCoo in #1689
  • Render: the ink planes of CMYK documents with transparency are composed on several threads by @dotCooCoo in #1755
  • SVG import: the style cascade looks up each element's rules by id, class and type by @dotCooCoo in #1690
  • Symbols: instances of imported symbols are measured by their art by @dotCooCoo in #1744
  • Open: the opening thread also reads linked files and lays out type by @dotCooCoo in #1767
  • Type: an edit copies a threaded story only when it changes one of its frames by @dotCooCoo in #1792
  • 3D and Materials: Perspective runs 0° to 160°, as documented by @AyberkA0 in #1669
  • 3D and Materials: the light takes the documented settings by @AyberkA0 in #1670
  • Corner Radius: a field per corner of a live rectangle, with a link toggle by @Gamedirection in #1682
  • Part of #394: Appearance of Black › Printing / Exporting by @Messhias in #1750
  • Part of #394: Identify Objects By (Object Name / XML ID) by @Messhias in #1809
  • G1: honor Shift-double-click in Width Point Edit by @sanyamsingh001 in #1630
  • G1: create width points through Width Point Edit by @sanyamsingh001 in #1814
  • G1: switch new ruler-guide orientation with Alt by @sanyamsingh001 in #1782
  • G4: show mixed paragraph alignment without a selected button by @sanyamsingh001 in #1784
  • G4: propagate character-style Auto-leading resets by @sanyamsingh001 in #1633
  • G4: capture character styles from selected text by @sanyamsingh001 in #1634
  • G1: keep Artboard deletion consistent across controls by @sanyamsingh001 in #1631
  • SVG import: style sheet rules with :not() selectors apply (#1557) by @switch87 in #1799
  • DXF export: strokes as zero-width centerlines, a 3ds Max preset, and one VPORT view direction by @osamaamin2011 in #1789
  • G13: offer TIFF in Export for Screens and Asset Export by @sanyamsingh001 in #1632
  • Docs: ROADMAP 2026-10-14 adds #1558–#1808 and Image Trace #1647, #1657; guide position in the Transform panel is a convenience by @bflatastic in #1837
  • Bound synthetic control input and per-frame request processing by @DWAA1660 in #1815
  • Verify pinned PngSuite downloads before publishing corpus files by @DWAA1660 in #1825
  • Fonts: a missing font's name is looked up once until fonts are added or rescanned by @dotCooCoo in #1820
  • Render: type with transparency, a blend mode or raster effects keeps its layout between frames by @dotCooCoo in #1817
  • Canvas: the last frame turns with the view until the frame at the new angle is ready by @dotCooCoo in #1819
  • Type: Show Hidden Characters keeps each text object's marks between frames by @dotCooCoo in #1823
  • Image Trace: Shapes finds rounded rectangles and shapes in aliased, blurred and scanned art by @bflatastic in #1845
  • Image Trace: stroked lines get square caps where their ink is cut square by @bflatastic in #1846
  • Image Trace: enhanced versions of the presets by @bflatastic in #1847
  • Image Trace: gradients grown over noise and soft rims by @bflatastic in #1848
  • Importers: nesting is capped, so a deeply nested file can't overflow the stack by @bflatastic in #1852
  • Fix #1629: an action clicked in the Actions panel stays selected, so Play and Delete act on it by @bflatastic in #1853
  • Fix #1736: toolbar without group labels, and an All Tools drawer with flyout groups, shortcuts, menu and Show section by @AyberkA0 in #1751
  • Docs: Image Trace Shapes rework, stroke caps, enhanced presets, gradients over noise by @bflatastic in #1851
  • fix(svg): memoize descendant selector matching to stop combinatorial backtracking (#1703) by @saadkhantareen in #1834
  • Global swatch edits reach opacity-mask art (#1735) by @switch87 in #1830
  • Native reopen: type in symbols gets its layout bounds back (#1738) by @switch87 in #1833
  • feat: marquee selection selects unlocked ruler guides by @Muratv07 in #1836
  • Fix #1719: Redo keeps a drag in progress as a step, as Undo does by @bflatastic in #1856
  • Fix #1747: Preferences are written when confirmed, not only at exit by @bflatastic in #1857
  • Fix #1800: macOS Save As shows its sheet again by @bflatastic in #1855
  • Docs: G15 and the parity doc cite budget runs and slowness reports since 2026-10-11 by @dotCooCoo in #1850
  • fix(snap): snap Direct Selection anchor drags to grid intersections (#1816) by @mjohnson7cd in #1840
  • Transform panel: X/Y/W/H edit the anchors selected with Direct Selection by @marcoarnulfo in #1839
  • Fix #1718, #1697, #1725, #1717: id exhaustion, batch rollback, timed-out control requests, RGBA size before decoding by @bflatastic in #1862
  • Fix #1715, #1714, #1704, #1699, #1695: bounded ASCII85 and unpacking, EPS cycles, Affinity pixel allowance, save fallback by @bflatastic in #1863
  • Fix #1706, #1705, #1724, #1723, #1683: shadow raster budget, Transform copies, 3D fill rule, pattern tiles, template Dim Images by @bflatastic in #1864
  • Fix #1693, #1694, #1685: a failed save is reported in a dialog that stays; failed downloads; opens under a dialog by @bflatastic in #1865
  • Importers: an SVG's linked files are read within the automation roots again by @bflatastic in #1870
  • Importers: PDF nesting inside compressed streams no longer crashes (hayro 0.8) by @bflatastic in #1871
  • Importers: a brush that draws itself by name no longer crashes by @bflatastic in #1872
  • Importers: PDF streams the reader would fail on are refused (#1700, #1701) by @bflatastic in #1873
  • PDF: krilla without its text shaping, so rustybuzz and ttf-parser don't ship (#1730) by @bflatastic in #1874
  • xtask: the wasm check compiles the web app; the web's SVG depth cap follows from its stack by @bflatastic in #1875
  • Docs: ROADMAP and parity docs for the later 2026-10-14 merges (#1630–#1875); gaps noted for reporters by @bflatastic in #1890
  • Type: Show Hidden Characters keeps no text nodes while it is off or no document is open by @dotCooCoo in #1861
  • Web: the status bar shows measured render and UI times instead of 0.0 ms by @dotCooCoo in #1860
  • Render: the art prepared for Separations Preview and Overprint Preview is kept between frames by @dotCooCoo in #1859
  • Shape Builder: the gaps closed paths enclose are regions (#1691) by @bflatastic in #1891
  • Text: draw tab leaders in the tab's gap by @marcoarnulfo in #1880
  • Fix #1866: Preferences and Save PDF highlight the section shown by @bflatastic in #1895
  • Pattern tiles after brush edits and Color Settings; MCP docs on failed batches by @bflatastic in #1896
  • Fix #1881: a Ctrl/Cmd drag while typing keeps what was typed by @bflatastic in #1897
  • Keyboard Shortcuts: Import… and File › Open read text shortcut sets (.kys) by @dotCooCoo in #1223

New Contributors

  • @Nael-Nathanael made their first contribution in #1383
  • @EricKuck made their first contribution in #1434
  • @giang17 made their first contribution in #1445
  • @duydev made their first contribution in #1507
  • @marcoarnulfo made their first contribution in #1509
  • @Atalantis made their first contribution in #1511
  • @anders94 made their first contribution in #1522
  • @lewandowskit made their first contribution in #1498
  • @fortesnow made their first contribution in #1528
  • @excited-raccoon made their first contribution in #1567
  • @turtwig made their first contribution in #1674
  • @danngreen made their first contribution in #1795
  • @ham9zah made their first contribution in #1663
  • @Gamedirection made their first contribution in #1682
  • @osamaamin2011 made their first contribution in #1789
  • @saadkhantareen made their first contribution in #1834
  • @mjohnson7cd made their first contribution in #1840
Full Changelog: v0.10.0...v0.11.0

Performance and Compatibility

VectorCraft is implemented in Rust and uses a multithreaded rendering architecture. The project reports that 20,000 shapes can be rendered in approximately 27 milliseconds at full Retina resolution while maintaining a responsive interface.

Its geometry engine is designed around exact curve operations, while structural sharing provides effectively unlimited undo without requiring every operation to duplicate the entire document.

The project also places considerable emphasis on automated testing. Property-based tests are used for document round trips, while rendering and geometry have dedicated test infrastructure.

File compatibility is another strength. SVG is a first-class format, while PDF import/export and PDF-compatible AI files provide useful interoperability with established design workflows. DXF import and EPS export further extend its usefulness for technical and print-oriented work.

However, compatibility should not be confused with complete Illustrator parity. VectorCraft is still under active development, and the project roadmap indicates that some areas remain under construction.

System Requirements

VectorCraft supports:

  • Windows

  • macOS

  • Linux

  • FreeBSD

  • WebAssembly/browser

Prebuilt Linux packages are available in several formats, including:

  • AppImage

  • DEB

  • RPM

  • Tarball

Both x86_64 and ARM64 Linux builds are provided.

macOS has a universal build supporting Intel and Apple Silicon, while Windows is distributed as a native desktop application.

Developers can also build the application directly from source using Rust.

Pros and Cons

Pros

  • Open-source

  • MIT or Apache-2.0 licensing

  • Native Rust application

  • Windows, macOS and Linux support

  • Browser/WebAssembly version

  • Strong Bézier and vector-editing tools

  • Exact Pathfinder Boolean operations

  • Multiple artboards

  • Advanced gradients and appearance controls

  • Envelope Distort, Puppet Warp and Liquify

  • SVG and PDF support

  • EPS export

  • DXF import

  • Native document format

  • Excellent automation potential

  • JSON control interface

  • MCP support for AI agents

  • Multithreaded rendering

  • Extensive automated testing

Cons

  • Still under active development

  • Not yet a complete Illustrator replacement

  • Some workflows will still lack the maturity of established commercial software

  • Font availability and typography coverage are still developing

  • Professional production workflows should be tested before full migration

  • The large feature set can make the application more complex for beginners

How to Install

The easiest method is to download the appropriate prebuilt package from the project's GitHub releases.

Linux users can choose between AppImage, DEB, RPM and tarball packages. macOS users can install the universal application, while Windows users can use the provided Windows package.

Developers can build the desktop application from source:

git clone https://github.com/storytold/vectorcraft
cd vectorcraft
cargo run --release -p vectorcraft

A VectorCraft document can also be opened directly:

cargo run --release -p vectorcraft -- examples/dusk-poster.vectorcraft

For headless processing and automation, the project provides a CLI:

cargo run --release -p vectorcraft-cli -- run \
  --in examples/ribbons.vectorcraft \
  --export out.pdf

The MCP server can be launched with:

cargo run --release -p vectorcraft-cli -- mcp

This makes VectorCraft particularly interesting for automated graphics generation and AI-assisted design workflows.

Final Verdict

VectorCraft is an unusually ambitious open-source Illustrator alternative. It is not merely a basic SVG editor with a familiar interface. The project is attempting to recreate a substantial portion of the professional Illustrator workflow while building its own modern Rust-based rendering and document architecture.

Its strongest areas are vector geometry, Pathfinder operations, Bézier editing, advanced effects, SVG/PDF interoperability and automation. The MCP and JSON control interfaces are especially interesting because they allow the same editing engine to be operated by scripts and AI agents.

Performance is another major strength. The native Rust architecture and multithreaded rendering approach give VectorCraft a solid technical foundation for handling complex vector documents.

The biggest limitation is maturity. Established applications such as Illustrator have decades of compatibility work, plugins, fonts, production workflows and ecosystem support behind them. VectorCraft is still developing and should not yet be treated as a drop-in replacement for every professional Illustrator workflow.

For designers, developers and open-source users looking for a modern vector graphics application, however, VectorCraft is one of the most interesting projects in this category. Its combination of native performance, open licensing and agent-native automation makes it particularly worth watching.

VectorCraft v0.11.0
Free
Software Informations:
Developer:

Operating System:
Windows / macOS / Linux / BSD
Date Added:
2026-10-14T23:07:39.459Z
Categories:

Post a Comment/Report Broken Link: