Site navigation

Canvas & Rendering

Responsive IR-replay rendering with an infinite canvas, a clear starting surface, and precision tools — with behavior qualified by document and device.

What It Is

Varve's canvas uses an IR-replay fast path: the engine prepares a compact scene representation and the webview replays it to Canvas2D (or an admitted worker bitmap path when the document and runtime allow). Structural scenes and unavailable resources use an authoritative main-thread fallback. Responsiveness depends on the document, Layers state, renderer, display cadence, and device; any performance figure is published only with its fixture, environment, clock-trust, and sample-validity evidence.

Responsive under the hand

Panels opening, windows resizing, browser chrome moving, and display scale changes update the drawable canvas geometry without changing the document. The camera preserves the world point under the viewport centre, or under the user's active pointer when a gesture is in progress, so the artwork does not jump away from the hand.

Stable coordinates

Pointer and wheel input use the latest client-space canvas position before converting to world space.

Continuous interaction

Resize observation is coalesced, while pointer capture, blur, and cancellation paths clear stale gesture state.

Honest rendering

Fast paths remain optional. If a fresh worker frame is not available, the authoritative replay path is used instead of showing stale pixels.

Plain wheel input pans the canvas, while Ctrl/Cmd+wheel and pinch zoom around the pointer. The Hand tool also supports Arrow and Shift+Arrow for precise keyboard traversal without taking those keys away from object editing or text fields. Finger drawing versus one-finger navigation, wheel sensitivity, and the optional mouse-wheel continuation are available in the existing Settings panel.

Shift constrains the gesture you are already in. Dragging a selection with Shift projects the move onto the nearest 45° direction, so a mostly horizontal or vertical drag stays on that axis while a deliberate diagonal keeps its angle; resizing with Shift keeps proportions. The tablet Constrain control applies the same rule, and page placement on the pasteboard follows it too.

Persistence respects the gesture: automatic document snapshots yield to active pointer, wheel, pinch, and keyboard input, then serialize the latest immutable revision on the background lane. Manual Save and Backup Now remain immediate. Responsiveness figures are qualified by fixture, renderer, display cadence, and device rather than presented as a guarantee for every document.

This contract is exercised by the canvas browser regressions and documented in the canvas responsiveness audit. Performance figures remain fixture-specific rather than a promise for every document or device.

Surface states

A clear first frame

A new Design Canvas is not an unexplained blank viewport. When it has no authored artwork, the editor keeps the work surface calm and shows a compact, keyboard-first starting guide in the active canvas. The guide is scoped to that canvas and disappears as soon as artwork exists, so it never competes with the design itself.

Scoped to the active canvasKeyboard shortcuts stay visiblePointer-transparent guidance

Labels follow the surface

Canvas names and object labels belong to the Design Canvas you are viewing. Switch canvases and the labels, accessibility names, minimap, selection, and hit targets switch with the artwork — a nearby canvas with the same coordinates or a duplicate name cannot leak into the current view.

Print uses a separate publishing-scene policy: page number and name bands describe placed pages, while Design Canvas content stays out of the print pasteboard. These editing labels are derived interface chrome, so they do not become document nodes or appear in PNG, SVG, PDF, video, clipboard, or other exports.

Precision movement

Nudge frames and objects from the keyboard without changing tools: once the canvas has focus, Arrow and Shift+Arrow use your configured small and big document-unit amounts. Movement stays aligned to world axes through zoom, camera rotation, and transformed parents, while focused fields and editing widgets keep their own Arrow-key behavior.

Pointer dragging shares the same hierarchy-safe movement roots, keeps multi-selection rigid, and retains snapping and intentional drag reparenting as separate behaviors. Use Ctrl/Cmd to bypass snapping or Ctrl/Cmd+Shift to preserve the current parent.

Grid systems

Guidance that stays distinct.

Read the Grid Systems guide

The canvas gives alignment, inspection, typography, and composition each their own language. Turn on the right guide for the decision in front of you, then turn it off when the work is ready to judge.

Guide Layouts add non-destructive columns, rows, or a true square uniform lattice to a frame. Preview changes before applying one undoable edit, batch-apply a preset to selected frames, and use page or master inheritance when the work is headed for print. Hidden guides can remain snap-enabled, and transformed or nested frames use their finite oriented segments instead of an axis-aligned approximation.

Canvas 1 / 100%
Frame layout guide
Document gridSaved alignment lattice
Pixel gridHigh-zoom inspection
Frame guidesComposition boundaries
Isometric constructionPlanes that interpret the pointer
01

Align

Independent X/Y spacing, subdivisions, offsets, and rotation.

02

Inspect

Pixel display and snap-to-pixel stay separate at high zoom.

03

Compose

Multiple frame guides show structure without arranging children.

Isometric construction

Draw on a plane. Transform on purpose.

The isometric grid is a construction aid, not a filter. Choose a preset — 30° true isometric or the ratio-derived 2:1 game-art angle — then pick the plane you are building on. New shapes are drawn in that plane: a rectangle comes out as a projected quad, and a circle becomes the exact affine image of a plane circle. Existing artwork is left alone until you deliberately fit it.

01

Planes

Top, Front, Side — or Off. Changing the plane affects new construction only, and switching back restores ordinary 2-D drawing.

02

Snapping that agrees

The nearest intersection is resolved as a two-dimensional problem, so a real artwork anchor lands on the lattice instead of rounded coordinates. Line snapping is a separate, opt-in mode.

03

Explicit transforms

Fit to Plane and Unproject are deliberate commands that apply one transform to the whole selection and keep geometry editable. Create Grid Artwork is a separate, bounded step.

Honest limits: 2:1 is exact as a ratio, but pixel-perfect output also depends on integer origin, spacing, and raster density. Arbitrary three-angle sets are drawn as directional construction guides — they are not claimed to be a physically valid trimetric projection.

Responsive composition

Stacks and guides stay distinct.

Use a frame's Stack / Grid controls for child relationships and the canvas grid overlays for visual alignment. Auto Layout keeps percentages, wrapping, signed spacing, borders, and overlap semantics available as the frame changes size.

Spatial arrangement

Make spacing intentional without flattening the document.

Align edges or centers against the selection, a shared frame, or the active page. Set an exact visible gap between two objects, equalize edge gaps across a sequence, or distribute reference points when object sizes differ. Every command keeps parent transforms and hierarchy intact.

One-time geometry

Align, distribute, and Tidy Up are undoable transforms. Tidy Up exposes columns plus independent row and column gaps, preserves the selection anchor, and never creates auto layout.

Live spacing handles

Gap handles preview from the original geometry, accept keyboard input, and restore the exact document on Escape.

Order stays separate

Bring Forward and Send Back change sibling paint order only; they never masquerade as spatial distribution.

Read the spatial arrangement contract for bounds, transforms, eligibility, and supported boundaries.

Workplace ergonomics

Streamlined central canvas with collapsible floating containers

Reclaim maximum screen real estate whenever focus demands it. Both the Layers and Inspector sidebars are elevated, 100% opaque floating containers that can be collapsed instantly via dedicated header buttons or keyboard shortcuts (Ctrl+B and Ctrl+Shift+B).

When collapsed, floating direct-manipulation edge restore pills appear on the canvas margin, allowing instant one-click panel restoration without menu navigation. Side splitters feature an expanded 14px hit target for effortless drag adjustments on mouse and trackpad.

The Inspector is context-aware rather than a catalogue of every property: sections appear only when they apply to the current selection, common controls stay visible, and advanced options can be expanded without adding another modal step. Section visibility, order, and collapse state are remembered per workspace, while keyboard and screen-reader users retain the same actions through real disclosure buttons and the section manager.

Images stay local and editable

Embedded images are stored once in the document and shared by every placement. Crops, fit, rotation, flips, masks, and treatments remain per-use edits, while the canvas resolves the same source through its local decode cache on desktop and web. Payload-free asset references are repaired at document and render boundaries, so reopening or switching workspace does not turn an image into a grey placeholder. Home previews use that same canonical scene pipeline and can rebuild their disposable cache from the saved document when an older preview is missing.

A two-page editorial spread in Varve with headlines, two-column body text and image plates
Open original
A two-page editorial spread in Varve with headlines, two-column body text and image plates
Multiple pages, rulers, and precision tools on one infinite canvas

Key Capabilities

  • Infinite canvas: Floating origin camera system for unlimited workspace
  • Canvas guidance: A scoped empty-surface guide explains the first useful actions without covering the work area
  • Viewport culling: Only render what's visible for performance at scale
  • Dirty-rect redraw: Minimize redraws to changed regions
  • Precision tools: Sticky snap, numerical precision, sub-pixel accuracy
  • Keyboard nudging: Configurable small/big movement amounts with world-axis semantics and active-tool fallback
  • Spatial arrangement: Align to selection, frame, or page; equalize visible gaps or centers; and Tidy Up with explicit grid spacing without reparenting
  • Interactive spacing: Canvas gap handles with numeric entry, keyboard access, preview, and Escape cancellation
  • Independent paint order: Bring forward, send backward, front, and back preserve sibling semantics
  • Multi-page support: Work with multiple artboards/pages in one document
  • Live minimap: See the active design canvas or publishing pasteboard, then click or drag to navigate without changing your artwork. It fills its panel at every window size instead of sitting at a fixed pixel size, and it says so when there is no measurable viewport to navigate yet
  • Surface-aware labels: Keep frame names readable and local to the active canvas, with accessible names and safe long-name handling
  • Rulers and guides: Visual guides for alignment and measurement
  • Grid systems: Document, pixel, baseline, isometric, and multi-guide frame overlays with explicit visibility and snapping controls
  • Local image assets: Embedded image sources stay in the document, decode progressively, and remain editable through crop, fit, masks, and treatments

Technical Depth

The rendering pipeline is built on IR-replay (ADR-0001), validated empirically on Wayland Linux. The engine uses viewport culling, dirty-rect redraw, and spatial indexing for fast hit testing. The SubtreeReplayCache optimizes repeated rendering of unchanged subtrees. The minimap reuses the same world bounds, page placement, camera rotation, and live canvas dimensions as the main surface, so navigation remains an honest overview rather than a second approximation of the document. The overview's own ink is not eyeballed either: every object kind resolves from an audited token held to a 3:1 non-text contrast floor against the map backplate in Light, Dark, and High Contrast, and the viewport rectangle — the one mark you have to be able to find — has a minimum drawn size and a contrast ring so it stays readable and grabbable at any zoom.

The same facade works on desktop (native Rust via Tauri IPC) and web (WASM), with the browser-side renderer retaining an authoritative replay fallback when an accelerated or worker path cannot provide a fresh frame.

Limitations

Current limitations:

  • Some legacy integrations still expose world-space values; use the artboard-local conversion helpers for page-aware tools and exports
  • Collaboration features are UI scaffolding only (no transport or wire protocol)
  • Responsive behavior is validated in automated Chromium viewports; physical display scaling, compositor scheduling, and unusually large documents can change the observed frame time

Ready to try it?

Download Varve

Search Varve