Learning in public — this documentation is written in the open and updated as the engine moves.
paged.Paged Docs
Plugins

paged.draw — vector

The vector drawing plugin — pen and path tools, pathfinder booleans, live corners, stroke/fill, and SVG import/export, rendered on-canvas through the engine's vector scene layer.

Tier: IntermediateIntermediateIIexplanationDraft

In short paged.draw brings Illustrator-class vector editing into paged — a pen tool with anchor editing, curvature/pencil tools, a shape builder, pathfinder booleans, live corners, and SVG round-trip — all rendered on-canvas via the engine's vector scene-layer surface.

What it does

  • Pen / anchor editing (add/delete/convert), curvature and pencil tools, shape builder, select-same.
  • Stroke / fill panels, dash presets, path ops, live corners, gradient annotation.
  • A vectorGraphic edit context (double-click into a focused anchor toolset).
  • SVG import + export (the interchange round-trip).
  • Direct Selection over anchors, handles and segments; the pen continues, closes and joins existing paths; knife and scissors; reflect and Transform Again; point snapping through the engine; Create Outlines from text.
  • Paths, appearance stacks, graphic styles, symbols and generator recipes as typed objects (the object model, partly built).

How it's built

A host-agnostic core (draw-geometry pure math, draw-tools state machines) plus a draw-bundle (manifest + activate + React panel) — the incubate-then-extract pattern. Tested as unit suites and an end-to-end editor journey.

Capability state

● shipped & verified · ○ shipped, re-test pending · ◍ shipped, untested · ◐ partial · ✗ failing · · planned

Plugin · draw 55 features · 98% green

FeatureRendererMutationCanvasGestureAPIDraw
Add-anchor plan (split segment at on-curve click)
plugin-draw.anchor-add
●●
Convert-anchor plan (corner ↔ smooth)
plugin-draw.anchor-convert
●●
Delete-anchor plan (nearest within tolerance, contour floor)
plugin-draw.anchor-delete
●●
Appearance model — multi fill/stroke metadata stack + baked top layer (Tier B)
plugin-draw.appearance
●●
Appearance panel v0 — the metadata stack, with the bake limit stated in the UI
plugin-draw.appearance-panel
●●
Blends v1 — three spacing modes over a real spine (grew the tool-wave-2 blend v0)
plugin-draw.blends
●◐
Brush tools v0 — paintbrush, blob brush, eraser (calligraphic nib sweep)
plugin-draw.brush-tools
●●
paged.draw bundle manifest (media.paged.draw) + activate skeleton
plugin-draw.bundle-manifest
●
Compound paths — make / release, with real non-zero holes
plugin-draw.compound-paths
●
On-canvas corner-radius tool — the live-corners row's predicted handle
plugin-draw.corner-radius-tool
●
Create Outlines — a text frame's glyphs as paths
plugin-draw.create-outlines
◍◍
Direct Selection machine — drag anchors, handles and segments; multi-anchor select, marquee, nudge
plugin-draw.direct-selection
●●
vectorGraphic edit context — live enter/exit via contribute.editContext
plugin-draw.edit-context-live
●
Eyedropper — sample element properties and apply to the selection
plugin-draw.eyedropper
●●
Fill panel as a declarative schema panel — the second W3.1 consumer, with a published binding
plugin-draw.fill-schema-panel
●●
Cubic bezier kernel — de Casteljau split, eval, closest-t, flatten
plugin-draw.geometry-bezier
●
Anchor/handle math — corner, mirror, smooth-from-drag, angle constrain, affine
plugin-draw.geometry-handles
●
Property tests for the draw-geometry kernel
plugin-draw.geometry-properties
●
RDP polyline simplification + perpendicular segment distance
plugin-draw.geometry-rdp
●
On-canvas gradient stops on the annotator line
plugin-draw.gradient-stops
●
Graphic styles — a named, LINKED complete appearance with override DETECTION
plugin-draw.graphic-styles
●●
Headless conformance corpus over published canvas-wasm
plugin-draw.headless-conformance
●
Illustrator oracle lane — path ops recorded in Illustrator 30.1.0, replayed against the engine
plugin-draw.illustrator-oracle
●
Image Trace v0 — raster to editable vector over visioncortex
plugin-draw.image-trace
◐
InDesign round-trip lane — 27 IDML cases read by InDesign 20.0.1
plugin-draw.indesign-roundtrip
◐
Layers BINDING PROVIDER — paged.draw serves the HOST Layers panel (ADR 023 phase D)
plugin-draw.layers-binding-provider
●●
Layers panel — the panels/layers.panel.json prototype made real (expert-leaf React)
plugin-draw.layers-panel
◍
Live Corners — Rounded/Inverse/Bevel/Fancy/None presets via frameCornerOption*/Radius* + live marker (Tier B)
plugin-draw.live-corners
●●
Live Paint v0 — regenerable face paint over the planar arrangement (NOT live)
plugin-draw.live-paint
◐◐
Measure readout drawn on-canvas via the overlay text primitive
plugin-draw.measure-overlay-text
●◐
Object model — paths, appearance stacks, graphic styles, symbols and recipes addressable through host.objects
plugin-draw.objects
●
Objects on a Path — distribute / align / pivot / reorder by TRANSFORM; it moves your objects and creates none
plugin-draw.objects-on-path
●◐
Opacity-mask commands — the paged.draw consumer of the C-28 protocol-58 door
plugin-draw.opacity-mask-commands
●
Knife and Scissors at any point on a path
plugin-draw.path-cutting
●
True Join — closePath / joinPaths over the v56 engine ops
plugin-draw.path-weld
●●
Pattern editing v1 — a re-editable tile field (step-and-repeat artwork, NOT a pattern swatch)
plugin-draw.pattern-bake
·◐
Pen v2 — continue, close and join existing paths; add / delete on the selected path
plugin-draw.pen-existing-paths
●●
Pen tool state machine (click/drag anchors, modifier matrix, close, commit)
plugin-draw.pen-machine
●
Pressure-aware pencil — variable-width strokes via outlineStrokeVariable
plugin-draw.pencil-pressure
●
Work budgets for every suspected hot path
plugin-draw.perf-budgets
●
Phase 4c pro path toolset — curvature/pencil/measure machines + simplify/join/average/offset/outline/pathfinder/gradient/arrowheads commands
plugin-draw.pro-path-toolset
◐●
Reflect (horizontal, vertical, a typed axis, a copy) and Transform Again
plugin-draw.reflect-transform
●
Repeats v1 — radial / grid / mirror, and the repo's first ONE-undo build
plugin-draw.repeats
●◐
Reverse Path Direction
plugin-draw.reverse-path
●
Select-same by fill / stroke / stroke-weight (Tier A — pure selection, no mutation)
plugin-draw.select-same
●
Shape Builder gesture tool — drag merges the faces it crosses, Alt-drag deletes them
plugin-draw.shape-builder
●●
Point snapping — page edges, centre lines, corners, own anchors
plugin-draw.snapping
●●●
Stroke dash-pattern command presets (Solid/Dashed/Dotted/DashDot)
plugin-draw.stroke-dash-commands
●●
Stroke panel as a declarative schema panel (W3.1 adoption)
plugin-draw.stroke-schema-panel
●
SVG import + export — the K-2 interchange round-trip (Phase 8)
plugin-draw.svg-io
●●
Symbols v0 — a named artwork DEFINITION and instances that follow it
plugin-draw.symbols
◐
Tool options and the Path Options panel
plugin-draw.tool-options
●●
Width, blend, lasso-select, parent-group cycling, parametric generators
plugin-draw.tool-wave-2
●●
Type on a path — attach an existing story to a path, detach it
plugin-draw.type-on-path
●
One batch per flow — created ids off the reply, one shared link index
plugin-draw.write-batching
●

Recent activity

On this page