Skip to content
dmccullumPublic

About

Mac app for making gradients with film grain. Six styles, Metal rendering, PNG and JPEG export.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Undertone app icon

Undertone

Make gradients with film grain on your Mac and export them as PNG or JPEG at any canvas size.
Requires macOS 14 or later.

Undertone showing the Soft Flamingo gradient with the library, canvas and inspector

Features

  • Six styles. Organic, Mesh, Linear, Tonal, Glow and Aurora. The inspector shows each style as a thumbnail of your current colors.
  • Organic flow modes. Still, Pull, Wave and Classic, with sliders for Pull, Softness and Swirl.
  • Mesh grid. A 3 × 3 or 4 × 4 grid of points, each with its own color. Drag points to bend the seams.
  • OKLab blending. Organic, Mesh and Linear mix colors in OKLab.
  • Film grain. Grain amount and grain size sliders. Output is dithered to avoid banding.
  • Direct handles. Drag color points, grid points, the Glow center and the Linear angle on the canvas.
  • Color tray. Click a color to edit it, drag to reorder, pull it off the tray to remove it.
  • Color collections. Named collections of colors, including built-in brand collections. Export and import your own.
  • Gradient library. Each gradient autosaves with its colors, points, sliders, seed and canvas size. Duplicate, rename, delete and undo.
  • Names. Gradients are named from their colors. With Apple Intelligence on macOS 26 or later, name ideas come from the on-device model.
  • Canvas sizes. Presets for Instagram (2160 × 2880), Square (2048 × 2048) and Story (1440 × 2560), plus a custom size.
  • Export. Save an image with ⌘E, copy it with ⇧⌘C, or drag the canvas into Finder or another app. Files are named like Harbor Hush 2160x2880.png.
  • Recipes. Export a gradient as a .undertone.json file and import it on another Mac.
  • GPU rendering. Metal renders the canvas and exports. At launch Undertone compares GPU output with the CPU renderer and falls back to the CPU if any pixel differs by more than 2/255.

Install

No prebuilt release is published yet. Build from source with Xcode command-line tools:

git clone https://github.com/dmccullum/Undertone.git
cd Undertone
zsh scripts/build-app.sh
open build/Undertone.app

You can also double-click Build Undertone.command in Finder. It builds the app, quits a running copy and opens the new build.

The app is ad-hoc signed and not notarized. It runs on the Mac that built it.

Develop

swift run -c release   # run from the command line
swift test             # renderer, export, library and naming tests

Use the release configuration for swift run: the CPU renderer is much slower in debug builds. You can also open Package.swift in Xcode. Undertone has no package dependencies.

Keyboard shortcuts

Shortcut Action
⌘N New gradient
⌘R Randomize
⌘Z Undo
⌘E Export image
⇧⌘C Copy image
⌃⌘S Hide or show the sidebar
⌘0 Reopen the window

Documentation

License

GPL-3.0

About

Mac app for making gradients with film grain. Six styles, Metal rendering, PNG and JPEG export.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages