# Pixel pattern generator

Landscapes, cloud fields, 1-bit fill patterns, sprites and text screens, all on one coarse pixel grid in a handful of colours, with in-between tones made by dithering.

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

## Design choices

- **All-over field** (`layout.all-over`): No focal point; the whole surface is filled evenly, like a textile. “Subject”: Clouds and terrain. https://stylogeny.com/design-choices/all-over-field/
- **Pattern & repeat** (`image.pattern`): Repeating motifs as the image itself. “Subject”: Tiled 1-bit patterns. https://stylogeny.com/design-choices/pattern-and-repeat/
- **Pictogram** (`form.pictogram`): Reduced, systematic signs. “Subject”: Sprite sheet. https://stylogeny.com/design-choices/pictogram/
- **Monospace** (`type.monospace`): Fixed-width typewriter or code letterforms. “Subject”: Character cells. https://stylogeny.com/design-choices/monospace/
- **Bitmap & pixel** (`type.pixel`): Letters constructed on a pixel grid. Set by “Bitmap & pixel”. https://stylogeny.com/design-choices/bitmap-and-pixel/
- **Monochrome** (`color.monochrome`): A single hue, or black and white. “Hardware palette”: 1-bit black and white. https://stylogeny.com/design-choices/monochrome/
- **Limited spot colours** (`color.limited-spot`): Two or three flat inks. “Hardware palette”: Four-colour cyan and magenta. https://stylogeny.com/design-choices/limited-spot-colours/
- **Full polychrome** (`color.polychrome`): Many saturated hues at once. “Hardware palette”: 16-colour home computer. https://stylogeny.com/design-choices/full-polychrome/
- **Grain & noise** (`surface.grain`): Film grain, riso speckle, dithering noise. “Dithering”: Error diffusion. https://stylogeny.com/design-choices/grain-and-noise/
- **Flat fields** (`color.flat-fields`): Unmodulated areas of colour. “Dithering”: None, flat bands. https://stylogeny.com/design-choices/flat-fields/
- **Repetition & rhythm** (`space.repetition`): Repeated units create a visual cadence. Set by “Repetition & rhythm”. https://stylogeny.com/design-choices/repetition-and-rhythm/
- **Central symmetry** (`layout.symmetric`): Elements mirrored around a central axis; formal and stable. Set by “Central symmetry”. https://stylogeny.com/design-choices/central-symmetry/
- **Modular grid** (`layout.modular-grid`): Fields defined by rows and columns; every element snaps to modules. Always. https://stylogeny.com/design-choices/modular-grid/
- **Rectilinear** (`form.rectilinear`): Orthogonal bars, blocks and lines. Always. https://stylogeny.com/design-choices/rectilinear/
- **Technological & futurist** (`tone.technological`): Speed, machines, progress and the future. Always. https://stylogeny.com/design-choices/technological-and-futurist/
- **Ornament-free** (`ornament.none`): Decoration rejected; form follows function. Always. https://stylogeny.com/design-choices/ornament-free/

## How it works

- Everything sits on one coarse grid of square cells, each one colour from a small fixed palette; there are no curves, gradients or soft edges.
- Areas stay flat; dithering (ordered or error diffusion) only fills the narrow seams where two colours meet, and 8×8 fill patterns stand in for tones.

It never does:

- No characters, logos or names from any game or computer, and no copy of a known pixel picture: sprites, landscapes and screens are grown from the seed.
- Palettes are named by what they are (four-shade green LCD), never by a machine. Animation changes any cell at most a few times per loop, so nothing flashes.

## Controls

- `mode` Subject (any | landscape | clouds | tiles | sprites | text; default any): What the grid shows; “any” lets each variation pick.
- `pixels` Bitmap & pixel (24–160, default 64): Pixels across the picture: fewer means bigger, blockier pixels.
- `hardware` Hardware palette (chosen | one-bit | lcd | cyan-magenta | amber | home; default chosen): A fixed palette of the kind early screens could show, or the palette picked for the page.
- `colours` Limited spot colours (2–8, default 4): How many colours of the palette the picture may use; 2 is 1-bit.
- `dithering` Dithering (ordered | diffusion | none; default ordered): How tones between two palette colours are faked: a regular dot pattern, scattered dots, or not at all.
- `rhythm` Repetition & rhythm (2–10, default 3): How many ridges, cloud banks or pattern bands repeat across the picture.
- `symmetry` Central symmetry (default false): Mirror the picture about its vertical axis.
- `label` Text (default "Bitmap"): Set in big pixel letters and on the command line.

## About Bitmap & Pixel Graphics

Bitmap graphics come from the screens of the late 1970s to the early 1990s, when a picture was a grid of a few hundred square pixels and a palette of two, four or sixteen colours. Designers worked inside those limits: every dot sat on the grid, curves became stair steps, and tones the palette lacked were faked with patterns of dots, known as dithering.

This generator keeps the same rules. Each picture is one grid of square cells, and each cell takes one colour from a small fixed palette: a calm few colours of the palette chosen for the page, or a hardware-style set such as 1-bit black and white or a four-shade green LCD. Areas stay flat, and dithering (an ordered dot pattern or error diffusion) is kept to the narrow seams where two colours meet, as it was when every dot was placed by hand. Landscapes are built from flat silhouettes around one sun or moon and its reflection; the tiles use 8×8 fill patterns as tones, the sprites are mirrored figures outlined and shaded cell by cell, and the text screen is set in a bitmap face with block characters.

Nothing here copies a game, a computer or a known picture: the creatures, landscapes and screens are grown from the variation number. The SVG keeps each colour as a single shape with crisp square cells, ready to scale to any size.

Bitmap & Pixel Graphics in Stylogeny (1977–1995): https://stylogeny.com/styles/bitmap-pixel/

## Recipe

```json
{
  "tool": "pixel",
  "v": 1,
  "seed": 3,
  "format": "portrait",
  "params": {
    "mode": "any",
    "pixels": 64,
    "hardware": "chosen",
    "colours": 4,
    "dithering": "ordered",
    "rhythm": 3,
    "symmetry": false,
    "label": "Bitmap"
  },
  "palette": "bitmap-pixel"
}
```
