# Mirror bloom generator

One field mirrored four or eight ways, cut into nested hulls, with a heart at its centre. One control takes it all from soft lobes to stepped blocks.

Open the generator: https://morph.ogeny.app/mirror-bloom/

## Design choices

- **Rounded & pill** (`form.rounded`): Soft corners, capsules and blobs. Set by “Block”. https://stylogeny.com/design-choices/rounded-and-pill/
- **Single focal point** (`space.single-focal`): One unmistakable point of entry. Set by “Heart”. https://stylogeny.com/design-choices/single-focal-point/
- **Extreme scale contrast** (`space.scale-contrast`): Very large against very small elements, for drama and order. Set by “Heart size”. https://stylogeny.com/design-choices/extreme-scale-contrast/
- **Geometric primitives** (`form.primitives`): Circle, square and triangle as building blocks. Set by “Basic shape”. https://stylogeny.com/design-choices/geometric-primitives/
- **Repetition & rhythm** (`space.repetition`): Repeated units create a visual cadence. Set by “Repetition”. Measured on the opening picture, from 10 to 30: pixels on an edge 12% → 27%. https://stylogeny.com/design-choices/repetition-and-rhythm/
- **Central symmetry** (`layout.symmetric`): Elements mirrored around a central axis; formal and stable. Set by “Symmetry”. https://stylogeny.com/design-choices/central-symmetry/
- **Full bleed** (`layout.full-bleed`): Image or colour runs off every edge; no protective margins. Always. https://stylogeny.com/design-choices/full-bleed/
- **Pattern & repeat** (`image.pattern`): Repeating motifs as the image itself. Always. https://stylogeny.com/design-choices/pattern-and-repeat/
- **Flat fields** (`color.flat-fields`): Unmodulated areas of colour. Always. https://stylogeny.com/design-choices/flat-fields/
- **Flat** (`surface.flat`): No simulated depth or texture. Always. https://stylogeny.com/design-choices/flat/
- **Generative & AI** (`medium.generative-code`): Code, parametric systems or machine-learning models. Always. https://stylogeny.com/design-choices/generative-and-ai/

## How it works

- One field mirrored four or eight ways and cut into nested hulls, with a designed heart and modules on a loose lattice whose sizes follow a rhythm by ring.
- One control takes everything from soft lobes and round forms to stepped hulls and crisp forms: the field is blended with its value at the nearest cell centre.

It never does:

- No star-and-polygon tiling, rug or tile tradition, and no sacred diagram: the symmetry comes from a field, not from an inherited pattern.
- No photograph and no gradient: only flat colour.

## Controls

- `block` Block (0–1, default 0.15): From soft lobes and round forms to stepped hulls and crisp forms.
- `heart` Heart (star | cross | flower | ring | diamond | none; default star): The shape at the centre. Each has a soft form and a crisp one.
- `heartSize` Heart size (1.5–6, default 3): In cells, from the centre to the heart’s tip, within what the format allows.
- `module` Basic shape (dot | diamond | cross | petal | quarter | ring | triangle | mixed; default dot): The main shape of the lattice.
- `small` Small shape (dot | diamond | cross | ring | none; default dot): The smaller shape between them, or none.
- `rhythm` Scale contrast (0–1, default 0.9): How far the modules’ sizes differ from ring to ring. Measured on the opening picture, from 0 to 1: largest against typical height 2.64 → 3.22.
- `cells` Repetition (10–30, default 16): How many cells fit across the width. Big modules take every other one. Measured on the opening picture, from 10 to 30: pixels on an edge 12% → 27%.
- `hulls` Hulls (1–4, default 3)
- `fold` Symmetry (four | eight; default four)
- `colourway` Colourway (lime | peach | lilac | night; default lime): Used with the generator’s own colours. Choosing another palette replaces it.

## About Generative & Dynamic Identities

Studios that make identities in motion have come to treat a pattern less as a picture than as a small system: one rule, a few parameters and a set of shapes, which can grow, change colour and hold together from one frame to the next. This generator belongs to that way of working, with a field in place of a drawing.

A field is a value at every point, and here it is mirrored four ways or eight. Cutting it at a few levels gives the nested hulls. Modules sit on a loose lattice, each ring with its own size, so big and small alternate outwards instead of fading evenly, and a module close to a hull’s edge raises a bump in it, which makes the hull look grown round it. The heart stands in a clear court of its own, with an eye and, on most hearts, four small rings round it.

Block is the control to try first. It blends the field with its own value at the nearest cell, so soft lobes step onto the grid, and it takes every shape and heart from its round form to its crisp one. In motion the morph sets out from the heart and travels to the edge and back, the lobes drift, and two pulses run outwards through the modules. Motion sets how far all of it goes. The colourways go with the generator’s own colours; any other palette replaces them.

Generative & Dynamic Identities in Stylogeny (2007–today): https://stylogeny.com/styles/generative-identity/

## Recipe

```json
{
  "tool": "mirror-bloom",
  "v": 1,
  "seed": 5,
  "format": "landscape",
  "params": {
    "block": 0.15,
    "heart": "star",
    "heartSize": 3,
    "module": "dot",
    "small": "dot",
    "rhythm": 0.9,
    "cells": 16,
    "hulls": 3,
    "fold": "four",
    "colourway": "lime"
  },
  "palette": "generative-identity"
}
```
