Varve v0.2.1
·
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 —
fvarparsing matches how
OpenType actually stores the table, the selectedwghtvalue 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
.varvedocument 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.