# Duotone generator

Your photo in two electric inks, enlarged past the frame and tilted, with one huge word cut by the edge of the sheet.

Open the generator: https://morph.ogeny.app/duotone/

## Design choices

- **Extreme scale contrast** (`space.scale-contrast`): Very large against very small elements, for drama and order. Set by “Extreme scale contrast”. https://stylogeny.com/design-choices/extreme-scale-contrast/
- **Diagonal axis** (`layout.diagonal`): Composition driven by tilted axes and oblique movement. Set by “Diagonal axis”. https://stylogeny.com/design-choices/diagonal-axis/
- **Grain & noise** (`surface.grain`): Film grain, riso speckle, dithering noise. Set by “Grain & noise”. https://stylogeny.com/design-choices/grain-and-noise/
- **Dark ground** (`color.dark-ground`): Light elements on black or deep fields. “Ground”: Falls to shadow. Measured on the opening picture with “Falls to shadow”: brightness of the ground 6.8%. https://stylogeny.com/design-choices/dark-ground/
- **Light ground** (`color.light-ground`): Paper-white or pale fields dominate. “Ground”: Blows out to light. https://stylogeny.com/design-choices/light-ground/
- **Full bleed** (`layout.full-bleed`): Image or colour runs off every edge; no protective margins. Always. https://stylogeny.com/design-choices/full-bleed/
- **Geometric sans** (`type.geometric-sans`): Built from circle and line: Futura, Avant Garde, Circular. Always. https://stylogeny.com/design-choices/geometric-sans/
- **Complementary clash** (`color.complementary-clash`): Vibrating opposites placed edge to edge. Always. https://stylogeny.com/design-choices/complementary-clash/
- **Treated photography** (`image.treated-photo`): Duotone, high-contrast or posterised photographs. Always. https://stylogeny.com/design-choices/treated-photography/
- **Flat fields** (`color.flat-fields`): Unmodulated areas of colour. Always. https://stylogeny.com/design-choices/flat-fields/

## How it works

- Every photo is pushed to two inks, the pair picked from the palette for colour and contrast, and enlarged past the frame by an automatic crop to its own subject.
- One word in a heavy geometric sans, slanted and cut by the frame, takes a third of the sheet and stays flat.

It never does:

- No third hue: the only tints are steps between the two inks, in the thin band where tone breaks up. No small print, logo, shapes or margin.
- No word from any existing campaign, and no copying of a known poster.

## Controls

- `word` Word (default "Loud"): Left as “Loud”, each variation picks its own word; type yours to set it. A space breaks it into two stacked lines. Empty leaves only the photo.
- `tight` Extreme scale contrast (0–1, default 0.6): How tightly the automatic crop closes on the subject found in the photo. A photo with no clear subject stays gently cropped.
- `tilt` Diagonal axis (0–1, default 0.65): How far the photo leans inside the frame, up to 26 degrees. A photo with no clear subject leans only a little.
- `contrast` Contrast (0–1, default 0.6): How hard tone is pushed: low keeps a wider broken zone between the inks, high leaves flat shadow and flat light with a thin edge.
- `light` Light direction (-2–2, default 0.4): Which side of the photo the light falls from: −1 left, 0 above, 1 right, ±2 below. The far side falls into shadow.
- `worm` Grain & noise (0–2.5, default 1): The size of the worm-like grain where one ink breaks into the other. 0 gives clean cut edges.
- `place` Word position (auto | top | bottom; default auto): Which third the word takes (in a landscape, the upper left or lower right). Clear of the subject picks for each variation, away from the detail in the photo.
- `ground` Ground (shadow | light; default shadow): What happens behind a clear subject. Blown out, the word turns to the shadow ink. Suits a dark subject. Falls to shadow: Measured on the opening picture with “Falls to shadow”: brightness of the ground 6.8%.
- `effect` Movement (both | word | light | photo; default both): What moves in the loop. Everything moves slowly, through cross-fades and slides, so the two inks never switch quickly.

## About Duotone identity

A duotone identity recolours every photograph into two saturated inks, crops it hard at an angle and sets a short word in a heavy geometric sans across it. Music and media brands made the look common in the 2010s, because one fixed treatment makes any photograph part of the same set.

This generator finds the subject in your photo from its outline and where its detail gathers, then enlarges and tilts it to fill the sheet. If it finds no clear subject, or the subject already fills the frame, it crops gently and barely leans. Tone is pushed until highlights and shadows go flat, and the thin zone between them breaks into a worm-like grain. Your photo stays on your device.

The two inks are picked from any palette for colour and contrast, and pushed apart if they are too close. The word and the light drift slowly in the loop. The light moves by cross-fades between a few exposures, so large areas of the two inks never switch quickly.

Duotone identity in Stylogeny (2015–today): https://stylogeny.com/styles/spotify-duotone/

## Recipe

```json
{
  "tool": "duotone",
  "v": 1,
  "seed": 3,
  "format": "portrait",
  "params": {
    "word": "Loud",
    "tight": 0.6,
    "tilt": 0.65,
    "contrast": 0.6,
    "light": 0.4,
    "worm": 1,
    "place": "auto",
    "ground": "shadow",
    "effect": "both"
  },
  "palette": "spotify-duotone"
}
```
