Skip to content

Varve v0.2.1

Choose a tag to compare

@github-actions github-actions released this 25 Aug 05:30
· 2882 commits to master since this release

Varve 0.2.1

Added

  • Image Enhance — batch enhancement processes every image in a
    multi-selection in one run, with combined tile progress, per-image
    announcements ("Enhancing image 2 of 3…"), immediate cancellation, and
    a failure summary instead of stopping silently mid-queue. A validated
    Real-ESRGAN Anime x4 (6B) ONNX model (checksum-pinned download) now
    backs Illustration mode, restoring preview/apply parity for that mode.
    Deblur strength is user-controllable, the dialog reports real
    per-stage progress while restoration runs, and output stays
    non-destructive with a quality policy (faithful/balanced) choice.
  • Canonical export resolution model — export scale decisions are now
    computed by one shared resolution engine in @varve/scene
    (export/resolution, documented in
    docs/architecture/export-resolution.md), and batch export exposes
    explicit resolution controls.
  • Text on Path becomes reachable — the engine could always place type
    along a path, but nothing in the UI ever set the required fields.
    Object ▸ Text on Path now attaches a selected text layer to a selected
    shape, and a Text on Path inspector section exposes the start offset
    and which side of the curve the glyphs sit on.
  • Linux download guidance — the website download page adds a
    distro-family picker table, grouped install commands, expanded
    Arch/CachyOS troubleshooting, and per-format system requirements, and
    now recommends the AppImage as the primary Linux format.
  • Verified workflow recordings — a deterministic capture pipeline
    (scripts/capture/) records real interactions against seeded demo
    documents, verifies them frame-by-frame, and publishes the resulting
    workflow videos to the website product page.
  • Selection tools — a pixel-lasso area-selection tool, a quick-mask
    paint tool, and image-derived selections join rectangle/ellipse
    marquee selection. Selections can be transformed, refined (feather,
    contract/expand, smooth), and saved for reuse across a session, with
    a dedicated panel for managing saved selections and reviewing where
    the current selection came from.
  • Layer States — layers gain a Solo View toggle and per-layer
    visibility state that survives independently of the old show/hide
    toggle, with an effects badge and layer context menu to manage them.
  • Perspective tool — an interactive four-corner perspective
    transform with a live overlay, correct Canvas2D and SVG-export
    rendering, and its own Inspector section.
  • Smart Filters and adjustment layers — a non-destructive filter
    stack can be applied per-object, with menu and command-palette
    entries and an object filter stack that respects layer-level bypass.
  • Shadow/Highlight adjustment, Levels/Curves editors backed by real
    histogram data, and general adjustment-layer normalization fixes.
  • Crop and transform — named crop aspect ratios, crop guides,
    straighten, repeat-transform, and a rebuilt Image Resize dialog.
  • Find Similar — natural-language and image-based asset search in
    the Intelligence panel, backed by a local DINOv2 embedding pipeline.
  • Warp tool is now reachable from the Design toolbar and its W
    keyboard shortcut; it previously existed but had no way to activate
    it.
  • Accessibility — a full audit pass across the editor (focus order,
    ARIA roles/labels, keyboard reachability), plus a specific fix
    reversing Tab order so it flows from the layers panel into the canvas
    instead of skipping it.

Changed

  • Git LFS is no longer used anywhere in the repository (bandwidth budget
    exhausted): all media is committed directly and CI no longer fetches
    LFS objects.
  • The stable updater feed now signs Linux AppImage and Windows NSIS
    artifacts for both x86_64 and ARM64, generates the macOS .app.tar.gz
    target when a signed bundle exists, and verifies signatures
    cryptographically before publication; the v0.2.0 feed was re-signed
    and republished under these targets.
  • Release version stamping also updates AUR packaging metadata and
    AppStream metainfo.
  • ONNX Runtime failures report the platform-specific remedy instead of a
    generic message, and the runtime library is staged before every
    desktop build path.

Fixed

  • Variable fonts apply their axes — fvar parsing matches how
    OpenType actually stores the table, the selected wght value reaches
    the Canvas2D painter on every text path, variation settings survive
    onto the painted shape, and the variable-axis panel is reachable
    without scrolling the inspector sideways.
  • Pixel-art scaling at non-power-of-two sizes — EPX/HQx/xBR no longer
    splice a nearest-neighbor remainder into the middle of the algorithm at
    scales like 3x; the 2x passes stay intact.
  • Timeline drag preserves keyframe progress during the drag gesture.
  • Prototype, codegen, variants, and timeline workflows were repaired
    where editor action registration had broken them, and text-on-path
    actions see live selection state.
  • Image Enhance reliability — tiled inference routes to the right
    capability, tiled recomposition memory is bounded, edge tiles produce
    correct output dimensions, stale previews clear when the operation
    changes, stale-result errors surface to the UI instead of returning
    silently, and the Auto analysis no longer produces NaN JPEG-blockiness
    scores. Compression-artifact removal remains unavailable by design:
    the dialog says so rather than degrading another model.
  • Visual constraint editor — the Constraints inspector section
    rendered a passive preview even though the interactive pin-control
    component already existed; it's now wired up and usable. Its
    horizontal/vertical/center-stretch pin targets previously overlapped
    in the same hit area so only the last one was clickable — they're
    now separate targets.
  • Drawing a frame around an existing image no longer requires the
    image to be fully inside the frame before it's adopted — the
    original center-hit-or-≥50%-overlap rule is restored.
  • Multi-page documents — objects created on any page after the
    first had the page's canvas placement applied twice, landing (and
    hit-testing) in the wrong position; fitting or viewing a non-first
    page also ignored its actual placement and always fit at world
    origin. Both are fixed.
  • Mockup creation selected a placeholder ID instead of the frame
    node it had actually just created, so the Inspector's mockup section
    never appeared after applying a mockup to a source image.
  • Imported LUTs (.cube) were applied at zero opacity, so an
    imported LUT adjustment never visibly did anything until manually
    adjusted.
  • Icon library — inserting an icon and immediately switching to
    the Downloaded filter could miss the icon just inserted, due to a
    cache-refresh race; the panel now reflects an insert immediately.
  • Typing or pasting large amounts of text could crash the editor
    with a React "maximum update depth exceeded" error in the text tool;
    rapid keystrokes are now coalesced into bounded updates, while blur,
    Escape, and IME completion still flush immediately.
  • Cross-artboard drag reparenting and its undo/redo now land at the
    precise expected position.
  • Edge auto-pan while dragging near a canvas boundary moved content
    in the opposite of the intended direction; the pan direction is
    corrected.
  • Help ▸ Getting Started did nothing when clicked; it now opens
    onboarding.
  • Responsive floating toolbar — tools that don't fit the current
    window width (including Table) now live in an accessible "More
    tools" overflow menu instead of being unreachable.
  • Crop tool history — committing a crop without changing anything
    no longer pushes an undo step, so Undo after an untouched crop
    correctly reverts the prior action instead of the no-op crop.
  • Depth Blur now renders through the native/WASM engine path — the
    effect existed only in the Canvas2D/JS layer, so the native scene
    representation didn't recognize it and every use silently took the
    slower fallback path.
  • Background removal (INT8/fast mode) — the small-download and
    low-memory variant of the U²-Net Light model produced a near-blank
    mask; a runtime safety check already kept it from ever being served,
    so this never reached a shipped build, but the fast/small-download
    option is now actually usable instead of silently falling back to the
    full-precision model.

Security

  • The basic-auth-URL secret scanner no longer false-positives on JSON-LD
    structured data.

Before you install

These builds are not code-signed. That is a statement about this project’s budget, not about the files — but your operating system cannot tell the difference, and neither can you without checking. Verify the SHA-256 checksum below against your download before running it.

  • Windows shows "Windows protected your PC". Choose More info → Run anyway.
  • macOS refuses to open the app. Use System Settings → Privacy & Security → Open Anyway. Do not disable Gatekeeper system-wide.
  • Linux has no equivalent prompt; verify the checksum instead.

Downloads

Platform Package Size Install
Linux aarch64 Varve-0.2.1-linux-aarch64.AppImage 40.5 MB chmod +x, then run. Needs FUSE2.
Linux aarch64 Varve-0.2.1-linux-aarch64.deb 49.0 MB sudo apt install ./
Linux aarch64 Varve-0.2.1-linux-aarch64.rpm 49.0 MB sudo dnf install ./
Linux x86_64 Varve-0.2.1-linux-x86_64.AppImage 40.5 MB chmod +x, then run. Needs FUSE2.
Linux x86_64 Varve-0.2.1-linux-x86_64.deb 49.9 MB sudo apt install ./
Linux x86_64 Varve-0.2.1-linux-x86_64.rpm 49.9 MB sudo dnf install ./
macOS aarch64 Varve-0.2.1-macos-aarch64.dmg 49.1 MB Open, drag to Applications.
Windows aarch64 Varve-0.2.1-windows-aarch64.exe 37.6 MB Per-user install, no admin needed.
Windows x86_64 Varve-0.2.1-windows-x86_64.exe 38.9 MB Per-user install, no admin needed.

Verify your download

a5912c25129b5ad23a1d9959d9581dac5ab3ce9845ebd1af136a17cf91ce16ce  Varve-0.2.1-linux-aarch64.AppImage
04a52411bf0a2b3ab9cc368b3d17c554b88cb17d179b3ecc784d3eb5bfe9b890  Varve-0.2.1-linux-aarch64.deb
159d8d6639a3ae0852147945136e2f9ab66203d4f8f50b99c985d7e1411ea7c7  Varve-0.2.1-linux-aarch64.rpm
67f29114a33dd3d588c6750b03d16c814e3be6981cf04237e80dfc04d32367e5  Varve-0.2.1-linux-x86_64.AppImage
7291c8843aa0155b800f0a7651af8951114fb7481868c2b627c9cb23c3b70df7  Varve-0.2.1-linux-x86_64.deb
2cda7bb0a4b0894401a70b434be57bd7087a793e15f872846a7c7689cb6b1857  Varve-0.2.1-linux-x86_64.rpm
e6aa5748a49cec7263e1f59cd1e58193644cb61d232f9a0dcb96184ae4d15962  Varve-0.2.1-macos-aarch64.dmg
e5fc2ffbeb54523f6a7b772561da2bed7945d619c069137cef120a7963b20a09  Varve-0.2.1-windows-aarch64.exe
812f9f589283ecbaf032748a5525b9fc589c52ba024bc603a6696bda528b329e  Varve-0.2.1-windows-x86_64.exe

Or download SHA256SUMS.txt and run sha256sum -c SHA256SUMS.txt (shasum -a 256 -c on macOS, Get-FileHash on Windows).

Known limitations

  • This is early software. Keep backups of anything you care about. The .varve document format may still change in ways that break older files.
  • Updates are manual — there is no in-app updater yet.

A CycloneDX software bill of materials is attached as varve-0.2.1-sbom.cdx.json.