# Pixel art character generator

A party of 16-bit game characters, each put together from parts, shaded with a few colours and outlined, idling, walking and cheering at a console’s pace.

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

## Design choices

- **Framed panels** (`layout.framed-panels`): Content held in borders, cartouches or compartments. “Layout”: Character select. https://stylogeny.com/design-choices/framed-panels/
- **Repetition & rhythm** (`space.repetition`): Repeated units create a visual cadence. “Layout”: Roster sheet. https://stylogeny.com/design-choices/repetition-and-rhythm/
- **Stylised figuration** (`form.stylised-figure`): Simplified, flattened people and objects. Set by “Stylised figure”. https://stylogeny.com/design-choices/stylised-figuration/
- **Technological & futurist** (`tone.technological`): Speed, machines, progress and the future. “Stylised figure”: Robots. https://stylogeny.com/design-choices/technological-and-futurist/
- **Gradients** (`color.gradient`): Smooth blends, fades or spectral ramps. “Backdrop”: Banded sky. https://stylogeny.com/design-choices/gradients/
- **Dark ground** (`color.dark-ground`): Light elements on black or deep fields. “Backdrop”: Night. Measured on the opening picture with “Night”: brightness of the ground 1.8%. https://stylogeny.com/design-choices/dark-ground/
- **Flat fields** (`color.flat-fields`): Unmodulated areas of colour. “Backdrop”: Flat colour. Measured on the opening picture: area in flat colour 86% with “Flat colour”, 71% with “Banded sky” and 71% with “Night”. https://stylogeny.com/design-choices/flat-fields/
- **Limited spot colours** (`color.limited-spot`): Two or three flat inks. “Limited spot colours”: Palette only. https://stylogeny.com/design-choices/limited-spot-colours/
- **Rectilinear** (`form.rectilinear`): Orthogonal bars, blocks and lines. Always. https://stylogeny.com/design-choices/rectilinear/
- **Icons & pictograms** (`image.iconography`): Systematic icon families. Always. https://stylogeny.com/design-choices/icons-and-pictograms/
- **Playful & witty** (`tone.playful`): Humour, games, visual puns. Always. https://stylogeny.com/design-choices/playful-and-witty/
- **Nostalgic & retro** (`tone.nostalgic`): Deliberate reference to an earlier period. Always. https://stylogeny.com/design-choices/nostalgic-and-retro/

## How it works

- Every character is a front-facing sprite on one coarse pixel grid, assembled from parts and shaded with four-tone ramps lit from the top left, in colours cut to 15 bits; nothing is smooth, blurred or anti-aliased.
- Characters move as console sprites do, in whole frames at about six a second, each out of step with the others.

It never does:

- No character, creature, name or logo from any game, and no copy of a known sprite: every character is put together by the seed from generic parts (species, jobs, hair, hats and tools).
- Not an anime idiom: small dot eyes and plain faces, no sparkling eyes or speed lines.

## Controls

- `layout` Layout (party | select | roster; default party): A party standing on a stage, a select screen with a card for each, or a sheet full of characters.
- `cast` Stylised figure (mixed | heroes | critters | monsters | robots; default mixed): Who turns up: adventurers, animal folk, monsters, robots, or a mix.
- `count` Characters (1–8, default 3): How many in the party or on the select screen; on a roster, how many across.
- `size` Sprite height (16–48, default 32): How many pixels tall a character is: fewer pixels, chunkier characters.
- `action` Animation (mixed | idle | walk | cheer; default mixed): What the characters do when the picture moves; a still shows the first frame.
- `stage` Backdrop (sky | night | flat; default sky): A sky graded in flat bands over hills, a starry night, or the plain ground colour. Night: Measured on the opening picture with “Night”: brightness of the ground 1.8%. Flat colour: Measured on the opening picture: area in flat colour 86% with “Flat colour”, 71% with “Banded sky” and 71% with “Night”.
- `outline` Outline (colour | dark | none; default colour): Each part outlined in a dark tone of its own colour, all in one dark colour, or not at all.
- `tones` Limited spot colours (natural | palette; default natural): Natural tones for skin, hair, fur and metal, or every colour taken from the palette.
- `title` Title (default "Choose your hero"): A heading in the bitmap font, over the stage or the select screen; leave it empty for none.
- `name` Name on the chosen card (default ""): The name under the highlighted character; left empty, each card names its species or class.
- `lead` Lead character (any | human | elf | goblin | cat | bear | rabbit | frog | fox | bird | slime | ghost | skeleton | mushroom | boxbot | domebot; default any): Make one character yourself: it stands front and centre (on a select screen, the chosen card) and the controls below dress it.
- `job` Class (any | knight | mage | rogue | ranger | brawler | healer | scout; default any): The lead's class, which sets its usual clothes, hat and tool.
- `held` Holds (any | none | sword | axe | staff | bow | dagger | book | lantern | wrench; default any): What the lead carries.
- `headwear` Headwear (any | none | wizard | helmet | cap | hood | band | crown | beret; default any): What the lead wears on its head, where it fits: a slime wears only a crown, a frog only a headband, and a rabbit's ears keep off a helmet or a hood.
- `hair` Hair (any | none | short | spiky | long | bob | tail | mohawk | puff | buns; default any): The lead's hairstyle, under any hat.
- `face` Face (any | smile | calm | cool | sleepy | fierce | surprised; default any): The lead's eyes and mouth.
- `colour` Main colour (any | c2 | c3 | c4 | c5 | c6; default any): The lead's clothes, body or casing in one of the palette's colours: colour 2 is the second swatch (the first is the ground).

## About Bitmap & Pixel Graphics

Sprites are the small moving pictures of video games. On the 16-bit consoles of the early 1990s a character was a few dozen pixels tall and could use at most fifteen colours, so artists placed every pixel by hand: an outline round each part, three or four shades of each colour lit from one side, and a few frames for standing, walking and celebrating, stepped rather than moved smoothly.

This generator puts each character together from parts the seed chooses: a species (people, elves, animal folk, slimes, ghosts, skeletons, mushrooms, robots), a job with its clothes and tool, hair, a hat, and a plain face with small dot eyes. Every part is shaded with a four-tone ramp lit from the top left, its shadows leaning towards the palette’s darkest colour, and outlined; every colour is cut to 15 bits, as the consoles stored it. Stand a party on a stage under a banded sky or a starry night, fill a character-select screen with cards, names and health bars, or a whole roster sheet, and set a title in the bitmap font. To make one character yourself, pick a lead: its species, class, what it holds, headwear, hair, face and colour, while the seed fills in the rest of the cast.

When the picture moves, the characters idle, walk in place or cheer, each out of step with the others, in whole frames at about six a second, so no pixel changes more often than that and nothing flashes. A still is the first frame. Every character is new: none comes from a game, and the name on a card is only its species or job.

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

## Recipe

```json
{
  "tool": "sprites",
  "v": 1,
  "seed": 17,
  "format": "square",
  "params": {
    "layout": "party",
    "cast": "mixed",
    "count": 3,
    "size": 32,
    "action": "mixed",
    "stage": "sky",
    "outline": "colour",
    "tones": "natural",
    "title": "Choose your hero",
    "name": "",
    "lead": "any",
    "job": "any",
    "held": "any",
    "headwear": "any",
    "hair": "any",
    "face": "any",
    "colour": "any"
  },
  "palette": "bitmap-pixel"
}
```
