Skip to content

Releases: schwanksta/Halftones

Halftones 0.8.2

Choose a tag to compare

@schwanksta schwanksta released this 15 Sep 13:32

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

Choose a tag to compare

@schwanksta schwanksta released this 12 Aug 16:12

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

Choose a tag to compare

@schwanksta schwanksta released this 12 Jul 15:39

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 .halftones files 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

Choose a tag to compare

@schwanksta schwanksta released this 30 Jun 01:37

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

Choose a tag to compare

@schwanksta schwanksta released this 27 Jun 14:23

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

Choose a tag to compare

@schwanksta schwanksta released this 23 Jun 01:46

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

Choose a tag to compare

@schwanksta schwanksta released this 19 Jun 13:33

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

Choose a tag to compare

@schwanksta schwanksta released this 14 Jun 02:42

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 .halftones project 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

Choose a tag to compare

@schwanksta schwanksta released this 13 Jun 14:48

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

Choose a tag to compare

@schwanksta schwanksta released this 08 Jun 18:07

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.