Commit Graph

  • 0e24110259 Fix macOS Info.plist: remove document-types block cleanly (route B) Brandon ThomasandClaude Opus 4.8 2026-10-02 11:36:23 -04:00
  • da8a14dd04 Signed release pipeline (macOS/Windows/Linux/Web); README community note Brandon ThomasandClaude Opus 4.8 2026-10-02 11:35:29 -04:00
  • 7b37dd1da5 M7.6: tab stops and the Tabs panel — left/center/right/decimal stops (align-on character), default stops every ½ inch, text.tabs.set/get/clear, ruler (click adds, drag moves, drag off deletes), Repeat Tab / Delete Tab / Clear All Tabs; control characters no longer draw .notdef boxes Brandon ThomasandClaude Opus 5.5 2026-10-02 10:13:24 -04:00
  • 437320509d app icon: regal engraved dragon (owner's ArtCraft drawing), Dock/taskbar/launcher wiring, palette docs Brandon ThomasandClaude Opus 5.5 2026-10-02 09:45:30 -04:00
  • dabd179d5a M7.4: Text Wrap flows on both sides of an object (lines split into every free span, left to right, sharing the baseline; exact interval intersection across the line band) Brandon ThomasandClaude Opus 5.5 2026-10-02 09:28:04 -04:00
  • fa2d901a7e M2.9: Shaper tool — rough rectangles, ellipses, triangles/polygons/diamonds and lines become clean live shapes (geom::recognize), squares/circles snap; a scribble deletes the objects it crosses Brandon ThomasandClaude Opus 5.5 2026-10-02 09:10:44 -04:00
  • 55e24d6622 M11.4: text-thread connectors on selected threaded frames + View → Hide/Show Text Threads, Hide/Show Gradient Annotator, Type → Show Hidden Characters (spaces, ¶, #), Effect → Last Effect… (reopens the last effect's dialog) Brandon ThomasandClaude Opus 5.5 2026-10-02 08:51:33 -04:00
  • dcc5a006a2 M3.6: opacity-mask editing mode — click the mask thumbnail to edit the mask art on a temporary isolated layer with any tool; the mask updates live after every edit; the object thumbnail (or transparency.stopEditingOpacityMask) leaves the mode Brandon ThomasandClaude Opus 5.5 2026-10-02 08:40:18 -04:00
  • 5026dad446 M11.5: View → New View… / Edit Views… (saved views in the document, up to 25, listed at the bottom of the View menu; view.saved.* commands) Brandon ThomasandClaude Opus 5.5 2026-10-02 08:16:36 -04:00
  • 8e735f1de9 M11.3: View → Snap to Pixel (drawing points and moved selections land on whole pixels) Brandon ThomasandClaude Opus 5.5 2026-10-02 08:16:36 -04:00
  • 16a73dc02a M12.7: Object → Create Object Mosaic… (trace::mosaic tile averages; columns/rows, new size, spacing, gray, delete raster; follows the image transform) Brandon ThomasandClaude Opus 5.5 2026-10-02 08:16:36 -04:00
  • 5a36fa1a9b M6.1: a panic inside the curve sweep (rare near-degenerate input) becomes PathOpsError::Degenerate instead of crashing (found by the randomized export test) Brandon ThomasandClaude Opus 5.5 2026-10-02 08:16:35 -04:00
  • bfa46e6cb4 M9.4: raster effects in PDF export — shadows/outer glows as images under the untouched vector object, inner glow/feather/blur as images, at the document's resolution; Effect → Document Raster Effects Settings… (document.rasterEffectsSettings: screen/medium/high/ppi); engine::export_pdf used by app, CLI and MCP Brandon ThomasandClaude Opus 5.5 2026-10-02 07:58:10 -04:00
  • 9f20c36f33 Roadmap: parity estimate — ~65% feature parity (weighted over 22 areas), ~50% including fidelity and hardening; ~330–500 h of Opus 5.5 to feature parity and ~440–670 h to full parity for one agent (~85–140 h / ~115–190 h with 4–6 agents); inventories and milestone estimates reconciled Brandon ThomasandClaude Opus 5.5 2026-10-02 07:51:36 -04:00
  • 9b0fe0ca5d M1.9: agent integrations — MCP tools add_text, apply_effect, pathfinder, transform, create_graph, text_wrap, export {selection, outlineText}; CLI convert (IN → OUT, effects kept) and info; SVG export Convert to Outlines (text as glyph paths); TextObject pathEffect key camelCase Brandon ThomasandClaude Opus 5.5 2026-10-02 07:50:20 -04:00
  • 1d493c7f06 M12.6: Graphs — the nine graph tools (Column, Stacked Column, Bar, Stacked Bar, Line, Area, Scatter, Pie, Radar), Object → Graph → Type… and Data… (CSV), series groups with legend, regenerate in place keeping moves/scales Brandon ThomasandClaude Opus 5.5 2026-10-02 00:16:23 -04:00
  • 13d0aef57f M1.5: commands that default to the current layer validate the remembered id (reused after undo it could name a compound path: Send to Current Layer moved art into it, Delete Layer could delete it) Brandon ThomasandClaude Opus 5.5 2026-10-02 00:16:23 -04:00
  • 1e7b4308ec M0.2: hit-test distance exact on cusp-like cubics (nearest-point accuracy 1e-9; proptest regression) Brandon ThomasandClaude Opus 5.5 2026-10-02 00:16:23 -04:00
  • c878ac994c M11.4: View → Hide/Show Corner Widget; Type → Recent Fonts (last 10 applied fonts, persisted) Brandon ThomasandClaude Opus 5.5 2026-10-01 23:46:20 -04:00
  • 69be79bbf1 M4.4: File → Export Selection… (selected art cropped to its bounds as PNG/JPG/WebP/SVG/PDF), Save as Template… and New from Template… (templates open as untitled documents) Brandon ThomasandClaude Opus 5.5 2026-10-01 23:46:20 -04:00
  • 3b48776607 M5.2: render perf — drop shadows/outer glows from a cached CPU-blurred raster composited per draw (600 shadows: ~300–1500 ms → 17–70 ms/frame); object blend modes on single plain fills applied per draw instead of a full-viewport layer; effect catalogue indexed once (lookups 300× faster) Brandon ThomasandClaude Opus 5.5 2026-10-01 23:31:22 -04:00
  • 4745f39c6c M7.4: Object → Text Wrap (Make, Release, Text Wrap Options: offset, invert): area type flows around wrap objects above it in the same layer, re-resolved after every edit Brandon ThomasandClaude Opus 5.5 2026-10-01 22:48:49 -04:00
  • 0ae572be93 M7.3: Type → Type on a Path effects (Rainbow, Skew, 3D Ribbon, Stair Step, Gravity): TextObject::path_effect, type.pathOptions {effect}, checked menu items Brandon ThomasandClaude Opus 5.5 2026-10-01 22:21:58 -04:00
  • 8434ef4404 M2.6: Flare tool ↑/↓ add or remove rays while drawing Brandon ThomasandClaude Opus 5.5 2026-10-01 22:21:58 -04:00
  • 09fc2eedd9 M4.3: live effects survive SVG, PDF and clipboard export (vectorcraft_effects::bake_document evaluates object, per-fill/stroke and Pathfinder effects on a copy; SVG raster effects become filters: drop shadow, outer/inner glow, Gaussian blur, feather) Brandon ThomasandClaude Opus 5.5 2026-10-01 21:39:20 -04:00
  • 1c1fd0f139 M9.3: Effect → Pathfinder (Add, Intersect, Exclude, Subtract, Minus Back, Divide, Trim, Merge, Crop, Outline) as live effects on groups/layers; rendered via the live cache, baked by Expand Appearance Brandon ThomasandClaude Opus 5.5 2026-10-01 20:57:14 -04:00
  • e20fe0a200 M0.9: attribute the ArtCraft brand marks in docs/brand (cargo xtask assets) Brandon ThomasandClaude Opus 5.5 2026-10-01 20:57:14 -04:00
  • 71d43421f5 M2.6: Flare tool (centre drag, then click for the rings; click → Flare Tool Options; shape.flare builds centre/halo/rays/rings from radial gradients in Screen mode) and Reshape tool (path.reshape: grab a point of a selected path, neighbourhood follows with a smooth falloff) Brandon ThomasandClaude Opus 5.5 2026-10-01 20:57:02 -04:00
  • 7d95f146ce M11.4: View → Trim View (artwork clipped to the artboards; RenderOptions::trim) Brandon ThomasandClaude Opus 5.5 2026-10-01 20:56:45 -04:00
  • f5ff9317d4 M6.7: Object → Clipping Mask → Edit Contents / Edit Clipping Path (select the clipped art or the mask of the selected clip groups, also from inside one) Brandon ThomasandClaude Opus 5.5 2026-10-01 20:56:22 -04:00
  • a5a02f43c0 readme Brandon Thomas 2026-10-01 14:51:05 -04:00
  • 7d393add4a Community links: Help menu (Discord, ArtCraft website, app page, GitHub), Discord button in the header, links on the About and Home screens; engine help.* commands return the URLs (menu clicks open them via the host's browser service) Brandon ThomasandClaude Opus 5.5 2026-10-01 14:37:29 -04:00
  • 4878f1c5dd 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. Brandon ThomasandClaude Opus 5.5 2026-10-01 14:30:09 -04:00
  • deb9df299c M7.7: Type → Find Font… (fonts in document with missing ones flagged, Find, Change, Change All; engine: text.fonts, text.replaceFont, select.font) Brandon ThomasandClaude Opus 5.5 2026-10-01 13:16:26 -04:00
  • d5aa387367 M7.5: OpenType as character attributes — per-run features (ligatures, contextual alternates, discretionary ligatures, swash, small caps, ordinals, fractions, figure styles) drive shaping; OpenType panel; SVG font-feature-settings Brandon ThomasandClaude Opus 5.5 2026-10-01 12:02:13 -04:00
  • d9df5b0135 M7.3/M7.7: threaded text (Type → Threaded Text: Create/Release Selection/Remove Threading; story re-flows after any edit touching its frames, deleted frames' text flows on), Fit Headline; roadmap Brandon ThomasandClaude Opus 5.5 2026-10-01 11:00:17 -04:00
  • f522e6bd3d M7.3: Area Type Options — rows, columns, gutter, inset, first baseline stored on area type, laid out by the text engine; Type → Area Type Options… dialog prefilled from the selection Brandon ThomasandClaude Opus 5.5 2026-10-01 10:32:58 -04:00
  • 4d1eb16424 M1: fix paste into a compound path when undo made a new object reuse the active layer's id (active layer / isolation must still be a layer / group); regression test Brandon ThomasandClaude Opus 5.5 2026-10-01 10:32:58 -04:00
  • 6a6e3d4bb1 M4.1/M11: File → Open Recent Files (persisted, native menu too), Document Info panel (document.info), Object → Make Pixel Perfect; agent guide: control-port clashes Brandon ThomasandClaude Opus 5.5 2026-10-01 10:09:19 -04:00
  • 48a4720ece M7.6: Character and Paragraph Styles — partial named styles in the document, apply to objects or a Type tool range, Clear Overrides, override-preserving redefine, duplicate/rename/delete; panels with override markers Brandon ThomasandClaude Opus 5.5 2026-10-01 09:55:01 -04:00
  • 2dafc7634b M5: cache expanded stroke outlines across frames (pans reuse them), skip per-frame bounds for solid paints, pointer hasher for render caches (~7% less CPU per frame on the 20k bench); perf suite budgets reflect reprojection + background refresh Brandon ThomasandClaude Opus 5.5 2026-10-01 09:32:43 -04:00
  • c8f157cc87 M12.5: Image Trace objects remember their preset and parameters (saved in the file); the panel shows the selected trace's settings; Expand clears them Brandon ThomasandClaude Opus 5.5 2026-10-01 09:14:17 -04:00
  • e5959de6cc M1.6/M12.5: Magic Wand panel (fill/stroke colour, stroke weight, opacity, blending mode with tolerances; settings in the engine, select.magicWand), Image Trace panel (presets, mode, threshold/colours, advanced, live re-trace), Glyphs reachable from the menus Brandon ThomasandClaude Opus 5.5 2026-10-01 09:01:56 -04:00
  • f673491bd2 progress Brandon Thomas 2026-10-01 08:56:21 -04:00
  • 66855f309d M4.1: .drawcraft format v2 — default-valued fields omitted, anchors as {p: [x, y], in?, out?, kind?}; large documents saved compact. 50k paths: 56 → 35 MB, open 722 → 244 ms; v1 files still load Brandon ThomasandClaude Opus 5.5 2026-10-01 08:39:58 -04:00
  • b318a62edd M5.4: drawcraft-cli perf — plan §4 budgets on a synthetic 50k-path document, with a busy-machine warning Brandon ThomasandClaude Opus 5.5 2026-10-01 08:39:58 -04:00
  • 318a55350a M4.8: system clipboard — copy/cut publish SVG markup, paste adopts SVG from other apps (centred in view); Copy/Cut/Paste events handled off macOS; Place bypasses the clipboard hook Brandon ThomasandClaude Opus 5.5 2026-10-01 08:27:54 -04:00
  • f855da4fb8 M5: raster effects render on the multithreaded pipeline (each filter layer offscreen, composited with its blend/opacity; tested equal to single-threaded); fix inner glow blend isolated by its clip layer Brandon ThomasandClaude Opus 5.5 2026-10-01 00:41:55 -04:00
  • abe2ed7080 M1.9: headless CLI/MCP export PDF/JPG/WebP; app JPEG/WebP export; ui.screenshot errors instead of hanging without a presented frame; docs (roadmap re-estimate, agent guide: bench, locked screens, disk) Brandon ThomasandClaude Opus 5.5 2026-10-01 00:30:38 -04:00
  • 5e15994012 M3: opacity masks — model (linked transform), luminance mask rendering, transparency.* commands, SVG <mask> export/import, PDF luminosity soft masks, Transparency panel controls Brandon ThomasandClaude Opus 5.5 2026-10-01 00:30:38 -04:00
  • c06fad7b2b M5: drawcraft-cli bench; canvas keyed by per-document uid (no stale frame from another tab); brushed strokes keep brush art under effects Brandon ThomasandClaude Opus 5.5 2026-09-30 23:38:38 -04:00
  • acb2566d89 Distortion tools (Width, Liquify, Puppet Warp, Perspective Grid), Patterns + Repeat, colour management (CMS, proofing, separations), Preferences/Shortcuts/Workspaces; original brand mark; fix filter panic in thumbnails; README demo scenes Brandon ThomasandClaude Opus 5.5 2026-09-30 22:44:39 -04:00
  • 05f5bed1ad continued work Brandon Thomas 2026-09-30 11:38:47 -04:00
  • c9f38685b4 wip Brandon Thomas 2026-09-30 11:37:31 -04:00
  • 6dd0d2dcff continued work; wip Brandon Thomas 2026-09-30 11:24:38 -04:00
  • 94e72f490e Asset policy: no Adobe iconography/images; per-asset attribution in ASSETS.md enforced by xtask assets (in ci). Offset Path: fix area loss for offsets larger than curvature radius Brandon ThomasandClaude Opus 5.5 2026-09-30 11:23:33 -04:00
  • 049c2baebd tests_build: clippy let_and_return Brandon ThomasandClaude Opus 5.5 2026-09-30 11:08:42 -04:00
  • d5acaa8946 ROADMAP: update status and estimates Brandon ThomasandClaude Opus 5.5 2026-09-30 11:02:34 -04:00
  • f8136f1e35 Live Blends/Envelopes/Gradient Mesh, Shape Builder, Live Paint, Image Trace (drawcraft-trace), Recolor Artwork, Export for Screens, Actions panel, prefs persistence, real layer thumbnails; menus bound Brandon ThomasandClaude Opus 5.5 2026-09-30 11:02:16 -04:00
  • 94431f7d86 README: hero screenshot, Dusk example project (drawcraft/svg), Craft suite table Brandon ThomasandClaude Opus 5.5 2026-09-30 10:57:57 -04:00
  • 8d20f0e475 Point agents at ROADMAP.md Brandon ThomasandClaude Opus 5.5 2026-09-30 10:07:15 -04:00
  • eaff89e1c0 ROADMAP.md: status, milestones and parity estimates Brandon ThomasandClaude Opus 5.5 2026-09-30 10:07:15 -04:00
  • a7e49bfa72 continued work Brandon Thomas 2026-09-30 09:43:24 -04:00
  • 6235ea5e10 Export for Screens: artboard thumbnails, fixed dialog height Brandon ThomasandClaude Opus 5.5 2026-09-30 09:38:56 -04:00
  • d083c2ab50 continued progress Brandon Thomas 2026-09-30 09:36:51 -04:00
  • 42df20ca7f Panels to Illustrator parity (19 panels), ~70 menu commands, generic param dialogs, view rotation, property/model-based tests + MCP e2e; fix arrange overflow, compound grouping, double journaling, float round-trip, coordinate sanity, simplify growth, batch rollback of session state Brandon ThomasandClaude Opus 5.5 2026-09-30 09:32:20 -04:00
  • 213b0927ee Draw Normal/Behind/Inside modes (Shift+D) Brandon ThomasandClaude Opus 5.5 2026-09-30 07:22:47 -04:00
  • a2fd35cd32 M5: cache text glyph geometry per node (Arc identity) Brandon ThomasandClaude Opus 5.5 2026-09-30 07:17:05 -04:00
  • 515653f556 Vector tool cursors, real egui pointer injection (ui.move/click/drag), xtask bundle (DrawCraft.app with rendered icon) Brandon ThomasandClaude Opus 5.5 2026-09-30 07:15:23 -04:00
  • 60c562c956 M5.2/M5.4: render geometry cache (Arc identity), opacity folding, LOD, multithreaded rasterizer (20k objects: 187→21 ms); native macOS menu bar; Effect menu + live-preview dialogs; PDF open/save; bench example Brandon ThomasandClaude Opus 5.5 2026-09-30 07:07:59 -04:00
  • 6d21d36d16 M2/M8/M9/M4.4: drawing + transform tools, live effects, PDF export/import, file/batch commands; UI restyled to measured Illustrator metrics (Medium Dark, categorized toolbar, hint bar, task bar, Layers) Brandon ThomasandClaude Opus 5.5 2026-09-30 06:55:49 -04:00
  • d0007a604d M5.1: background render worker with reprojection; Layers rename + drag reorder Brandon ThomasandClaude Opus 5.5 2026-09-30 06:33:47 -04:00
  • db38f51046 Prepare module hooks for parallel tool/effect work Brandon ThomasandClaude Opus 5.5 2026-09-30 06:29:52 -04:00
  • 873e9f5c99 M1.9: MCP server (stdio JSON-RPC, remote + headless backends) and drawcraft-cli Brandon ThomasandClaude Opus 5.5 2026-09-30 06:29:25 -04:00
  • 874c0e6ca2 M2.8/M6.2/M7.2: smart guides + snapping, Type tool, Pathfinder/path/type commands, web build Brandon ThomasandClaude Opus 5.5 2026-09-30 06:28:59 -04:00
  • 8cd8f8f8a7 M0.1/M0.9: xtask (layers, wasm, ci, stats), agent docs, NOTICE, README, control protocol doc Brandon ThomasandClaude Opus 5.5 2026-09-30 06:21:08 -04:00
  • bea0c16636 M0.7/M0.8: egui UI (Illustrator layout), control channel, desktop app Brandon ThomasandClaude Opus 5.5 2026-09-30 06:16:46 -04:00
  • bfee80a22c M0: workspace skeleton — geom, color, doc, render, text, pathops, svg, tools, engine Brandon ThomasandClaude Opus 5.5 2026-09-30 05:53:29 -04:00
  • fa1689bfd8 initial commit Brandon Thomas 2026-09-30 05:12:46 -04:00