Repository navigation
Releases: schwanksta/Halftones
Release list
Halftones 0.8.2
Fixes to layer editing, plus undo and keyboard shortcuts for the brush.
Fixed
- Erasing a layer no longer erases the layers beneath it. In build-up, erasing the top layer also switched off the plates printing under it. Erase now removes only the plate you're editing. In knockout, a brush overlapping a neighbouring color's edge no longer erases the neighbour.
- Paint on one layer is no longer overridden by another layer's paint. Where two layers had both been painted, one silently won, so strokes could vanish. In build-up, overlapping paint now honours both layers. In knockout, the layer you edited most recently wins.
- Projects you painted or erased under 0.8.1 render correctly when reopened. Your strokes are saved as-is, so there's nothing to redraw. Re-export any plates you exported from them under 0.8.1.
New
- Undo brush strokes — ⌘Z / ⌘⇧Z undo and redo the last 10 strokes while editing a layer. The history clears when you leave edit mode.
- Edit-mode shortcuts — E toggles editing on the last layer you edited, [ / ] change brush size, Esc finishes.
- Safer "Clear edits" — moved away from the Edit button and now asks for confirmation, since cleared edits can't be undone.
macOS (Apple Silicon), unsigned. On first launch, right-click the app → Open, or System Settings → Privacy & Security → Open Anyway. If you instead see "app is damaged," clear the browser-download quarantine flag with:
xattr -cr /Applications/Halftones.app
Halftones 0.8.1
Hand-editing plates, layer ordering, and explicit merge targets.
New
- Layer edit — brush paint/erase directly on a plate to fix a rough edge or drop a stray feature. The layer is isolated black-on-white while you work, with a ring cursor showing the exact brush footprint. Strokes edit ownership rather than rendered pixels, so they survive later LPI/angle/threshold/trap changes and flow through to underbase, key knockout and merges. Saved per layer in the project file.
- Key plate erase — an erase-only brush for the key that clears dots, edge stroke and outline together.
- Drag to reorder layers — layer order is print order; grab the grip to change it. Background layers stay pinned to the front, and in build-up mode dragging switches to manual order (with a "Sort light→dark" button to hand it back).
- Explicit merge targets — every color and the key plate now picks the layer it merges into, instead of always "darkest". Choose a specific layer or Last printed color — the position that actually matters, since anything printed after a merged plate covers its ink. Chains resolve (A→B→C lands both on C) and a warning flags a target that isn't printed last.
Fixed
- Layer edits are applied on export. They previously affected only the preview, so a painted fix wouldn't reach the film. If you painted edits in 0.8.0, re-export.
- Painting no longer darkens the plates underneath. Painting forced the shared tone to full ink, so in build-up the lighter plates below jumped to maximum density — even where ownership never changed. Full ink now applies to the painted plate only.
- Export PNG is laid out on the full print page (margin, crop marks, alignment marks) like the other plate exports; single-plate exports drop the now-pointless "One" label.
macOS (Apple Silicon), unsigned. On first launch, right-click the app → Open, or System Settings → Privacy & Security → Open Anyway. If you instead see "app is damaged," clear the browser-download quarantine flag with:
```
xattr -cr /Applications/Halftones.app
```
Halftones 0.8.0
Spot-color / screenprint workflow release — smarter key plates, smarter build-up, and files that show what's in them.
New
- Per-color key knockout — keep the key plate's halftone dots and/or edge stroke off specific inks, so a flat brand color prints clean while the rest of the image keeps its key detail. The knockout follows the color's owned region (padded to swallow anti-aliased rims, vectorize deviation, and trap spread — no dotted fringe at the edges).
- Build-up now honors flat/halftone per layer — switching a build-up layer to halftone actually halftones it (it was silently forced flat before).
- Overprint reach for build-up — instead of flooding every lighter plate under the entire design, limit each lighter plate to a set distance past its own region. Full misregistration protection at real ink boundaries, far less ink everywhere else. Off = classic full overprint.
- Replace Image… (File menu) — swap the source image while keeping every setting (colors, key plate, transforms, output size, margins, mask). Reuse a finished separation setup on new art.
- Project previews in Finder & Open Recent — saved
.halftonesfiles embed a thumbnail of the processed print and use it as their Finder icon (no QuickLook extension, no code signing), and File → Open Recent shows each project's thumbnail. - Key plate Max Dot slider (alongside Min Dot).
Improved
- Round circles from vectorization — vectorized flat edges now re-curve gentle boundaries through an interpolating spline, so a circle renders round even when the trace reduced it to facets — while genuine corners stay sharp, so angular art is untouched and no "Rounding" is needed.
macOS (Apple Silicon), unsigned. On first launch, right-click the app → Open, or System Settings → Privacy & Security → Open Anyway. If you instead see "app is damaged," clear the browser-download quarantine flag with:
```
xattr -cr /Applications/Halftones.app
```
Halftones 0.7.1
New
- Print Plan — a live sidebar readout that turns the current job into a screen-room plan from your shop's screen inventory: how many screens, which frame size, and a suggested mesh per plate (halftone ≈ 4.5× LPI, flat ~230, white underbase = lowest). Includes a Min Dot vs mesh hold warning, an editable shop profile (frames + mesh counts + edge clearance), and a Gang 2 plates per screen option that pairs plates 1&3 / 2&4 to halve the screen count with a wash-and-dry rest between runs.
- Palette library — save the current inks as a reusable palette and apply it later to recolor your layers in one click (the separation is untouched). Picked by swatch preview, names optional; palettes also carry the background ink. Stored in app prefs, reusable across prints.
- Merge plates onto one screen — per-color (and key-plate) merge with darkest color, folding same-ink layers (e.g. a black background + black layer + key) onto a single screen instead of separate overprints.
Fixed
- Background bleed is clipped to the trim area with uneven margins, so a 100% bleed never runs into the crop-mark strip.
macOS (Apple Silicon), unsigned. On first launch, right-click the app → Open, or System Settings → Privacy & Security → Open Anyway. If you instead see "app is damaged," clear the browser-download quarantine flag with:
```
xattr -cr /Applications/Halftones.app
```
Halftones 0.7.0
New
- Vectorize flat edges: optionally trace flat spot-color plates into smooth vector outlines so diagonal and curved color boundaries aren't pixelated (staircased). A global default with a per-color override (smooth the flat masses, leave a fine line/hatch plate crisp) and a Rounding amount. Flat plates only; halftone plates are unaffected.
- Independent margins: a single linked margin, or independent Top/Bottom and Sides values.
- Background bleed as % of margin: the cutout-background bleed is now a percentage of the (largest) margin instead of a fixed inch value, so it scales with the layout and reaches the trim edge.
- Reorganized spot-color controls: grouped by workflow — Palette → Separation → Trapping & edges → Plates & stock → Preview. ("Smoothing" is now Despeckle"; vectorization controls live together.)
Fixed / improved
- Crop & alignment marks thickened (1.5pt) so they burn reliably on screen emulsion.
- Live color editing with vectorize + multiple layers no longer re-traces every plate on each picker tick (~10× faster).
- Smoothing no longer fattens line weight as you raise it.
macOS (Apple Silicon), unsigned. On first launch, right-click the app → Open, or System Settings → Privacy & Security → Open Anyway. If you instead see "app is damaged," that's the browser-download quarantine flag — clear it with:
```
xattr -cr /Applications/Halftones.app
```
Halftones 0.6.0
New
- Separation modes: choose knockout (default, exclusive regions) or build-up — nested cumulative overprint where each tone inks its plate plus every lighter plate beneath it, printed light→dark. Registration-forgiving, well suited to tonal/duotone palettes.
- Underbase plate: optional base plate (union of all inked area, choked inward) printed first — e.g. white or silver under the whole design.
- Substrate color: set the paper/garment color the proof and preview composite onto, to preview ink on colored stock.
- Key plate: merge with darkest color: fold the key plate's halftone dots, edge stroke, and outline directly into the darkest enabled spot color's plate — one screen instead of a separate overprinted layer — when you want the key detail to print in the same ink as your darkest separation color.
Fixed
- Key plate edge stroke now exports correctly in channel PNG and PDF export (previously could mismatch the preview due to a resolution-dependent threshold).
macOS (Apple Silicon), unsigned. On first launch, right-click the app → Open, or System Settings → Privacy & Security → Open Anyway. If you instead see "app is damaged," that's Gatekeeper's quarantine flag from the browser download — clear it with:
```
xattr -cr /Applications/Halftones.app
```
Halftones 0.5.1
Halftones 0.5.1
New
- Treat white as paper (spot color) — reserve near-white (high lightness, low chroma) as bare paper. Palette extraction no longer spends a slot on a white plate, so every requested color is a real ink, and white areas knock out to paper on every plate (bright speculars become bare-paper sparkle). Adjustable lightness threshold; on by default for new projects, off for older files. Turn it off when printing white ink on colored stock.
Changed
- Layer mask is now hard-cut only. The feathered (soft) mask edge introduced in 0.5.0 was removed: a gray edge can't burn to a 1-bit screen, and the dithered version was sub-mesh and didn't reproduce as real dots. A printable feather needs to modulate tone before halftoning (shrinking dots) — deferred as a future enhancement. The mask boundary stroke / keyline is unaffected.
Unsigned app — on first launch, right-click → Open, or System Settings → Privacy & Security → Open Anyway.
Halftones 0.5.0
Halftones 0.5.0
Layer Mask (new)
Load a mask that clips every plate at once — confine artwork to a shape, knock out a region, etc.
- SVG (preferred — resolution-independent, crisp at any output DPI) or raster (PNG/JPG/WebP); stretched to the image rect.
- Convention: white = keep, black = cut, with automatic use of the image's alpha when present, an Invert toggle, and Auto / Alpha / Luminance source modes.
- Feather the mask edge (in inches) for a soft transition. (On 1-bit plates this is an anti-aliased gray edge; it reads as a true soft fade in the preview, color proof, and composite PNG.)
- Stroke (keyline) tracing the mask boundary in your choice of width and color — exported as its own dedicated plate in spot mode.
- Applies in the live preview and every export (PNG, channel PNGs, PDF, color proof), and is non-destructive: the full source image is kept for palette extraction.
- Persisted in the
.halftonesproject file (schema v2).
Also since 0.4.x
- Recommended-size hint for raster masks; the mask UI notes SVG is preferred.
Unsigned app — on first launch, right-click → Open, or System Settings → Privacy & Security → Open Anyway.
Halftones 0.4.1
Halftones 0.4.1
New
- Spot-color smoothing — a global Smoothing slider that cleans up rough separations by jointly smoothing the color-ownership partition. Because every pixel always belongs to exactly one layer, adjacent layers never erode apart and leave paper showing through. Low values remove stray specks; higher values smooth jagged boundaries.
- Image pre-processing (Transform panel) — Blur (smooth gradients / suppress source noise), Sharpen (unsharp mask with adjustable radius, so detail holds through the screen), and Noise (film grain to break up banding). All run before halftoning.
- Background-layer bleed — extend a background color plate outward into the margin by an adjustable amount.
Export
- Channel PNGs now use the full print page — margin, crop marks, alignment marks, and a plate label, matching the PDF (previously bare image rasters).
- Layer-number plate labels — spot plates are labelled One, Two, Three… (key plate "Key") instead of color names, fixing filename collisions when two colors share a name. Labels are staggered across the page so they don't overlap when plates are stacked, sized to fill the crop-mark waste strip, and nudged clear of the top-center alignment mark.
- Dropped redundant threshold / flat-vs-halftone text from spot PDF labels.
Improvements & Fixes
- Output readout now shows the full printed sheet size in inches (image + margin + crop-mark waste), not raw pixels.
- Alignment marks loosened to sit comfortably within the waste strip (~0.1" clearance) instead of nearly touching the cut line.
- Reorganized the Halftone and Output control panels into clearer groups.
- Color Proof now exports background bleed correctly into the margin.
- Blur/Sharpen fixed to actually take effect in the native app (the old canvas-filter path was a no-op in the Tauri webview).
Unsigned app — on first launch, right-click → Open, or System Settings → Privacy & Security → Open Anyway.
Halftones 0.4.0
Halftones 0.4.0
New
- Image pre-processing in the Transform panel — Blur (Gaussian), Sharpen (unsharp mask with radius), and Noise (film grain). Run after levels and before the halftone screen to clean up or crisp the source.
- Reorganized control panels — Halftone split into Screen / Tone & Dots / Color groups (radial Origin now sits with the screen controls); Output sizing grouped together with a dedicated "PDF Export" subsection.
Export
- Channel PNGs now include full page geometry — margin, crop marks, alignment marks, and a plate label, matching the PDF output. Background-bleed plates extend into the margin.
- Layer-number plate labels — spot plates are labeled One, Two, Three… (key plate "Key") instead of color names. Fixes filename collisions when two colors share a name (e.g. two "dark purple" layers no longer overwrite each other).
- Labels are sized to fill the crop-mark waste strip, staggered across the width so they don't overlap when plates are stacked, and nudged clear of the top-center alignment mark.
- Dropped redundant threshold / flat-vs-halftone text from spot PDF labels.
Fixes
- Blur and Sharpen now actually take effect (the old canvas-filter path was a no-op in the Tauri webview; replaced with a CPU separable box blur).
- Color Proof now exports background bleed correctly into the margin.
- Output readout shows the full printed sheet size in inches (image + margin + crop-mark waste) instead of raw pixels.