Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

ChaotiColor

A seed-based generative system for cellular automata patterns.

A catalogue of computational textile compositions for fashion, textile and surface design — algorithmically drawn, seed-documented, and ready for production.


Overview

ChaotiColor is a generative design system rather than a single artwork. Each composition is built from a one-dimensional cellular automaton — a single row of cells that evolves downward, one generation at a time, according to a small set of binary rules. Where the rules meet, patterns emerge: triangles, filaments, spirals, sudden chaotic bursts.

The system is designed for:

  • Fashion houses adapting rule-based ornament for apparel and accessories
  • Textile studios developing repeat patterns and yardage
  • Surface designers working across print, wallpaper, and interior applications

Every composition can be licensed, adapted, or commissioned to a brief.


Concept

A rule, when it is repeated across a grid, becomes a tapestry — chaotic, precise, quietly yours.

The woven surface — repetitive, rule-bound, endlessly variable — has always been a form of computation. Every textile draft is a small program. Every pattern repeat is a loop. ChaotiColor translates that structure into code. Each composition begins with a single row of cells and a small binary ruleset, and unfolds through simple iteration until the frame fills with an intricate, rule-generated field.

The palette, the grid divisions, and the colour mode are all derived from a single numeric seed.

Unlike the animated volumes in this series (Bezier 2, Brownian Graphe), ChaotiColor is a still composition. The plate, the framed plate, the surfaces, and the archive are all static frames. This is deliberate: a cellular automaton, once generated, is complete. Its character is stillness, precision, and the quiet logic of its rules.


Features

  • Seed-based generation — every composition is defined by a numeric seed and can be regenerated exactly
  • Deterministic output — the same seed always produces the same composition
  • Cellular automata — a single row of cells evolving downward through rule-based generations
  • Three colour modes — Black on Color, Color on Black, Random RGB
  • 46 built-in palettes — from duotone to eight-colour schemes
  • Adaptive grid — 4 to 304 divisions per axis, derived from the seed
  • Adaptive surfaces — one seed applied across print, scarf, textile, and wall formats
  • Archive — eight curated seeds available for immediate loading
  • Download — export the composition as a high-resolution PNG
  • Keyboard shortcuts — R for new seed, S to save

Project Structure

.
├── index.html          # Main catalogue page
├── images/
│   ├── fav.svg         # Favicon
│   ├── tote.png        # Mockup: tote bag
│   ├── tee.png         # Mockup: t-shirt
│   └── cushion.png     # Mockup: cushion
└── README.md

How It Works

The Seed

A numeric seed (a large integer) initializes a deterministic pseudo-random generator. From this seed, the system derives:

  • Foreground palette (from a set of 46 curated colour schemes)
  • Horizontal division count (4–304)
  • Vertical division count (4–304)
  • Colour mode (0, 1, or 2)

Because the generator is deterministic, the same seed always produces the same composition — on any device, at any time.

The Cellular Automaton

Each composition begins with a single row of cells — a binary vector of length widthdivision, with one cell active and the rest randomized.

The automaton then evolves row by row:

  1. Each new cell is computed from the three cells above it — the left neighbour, the cell directly above, and the right neighbour.
  2. A small binary ruleset (eight values, one per possible 3-cell neighbourhood) determines the next value.
  3. The ruleset itself is derived from the seed, so each composition runs a different rule.

This is a classic one-dimensional cellular automaton — the same family that produces Wolfram's Rule 30 and Rule 110. Some rulesets produce orderly triangles. Some produce chaotic filaments. Some produce near-random noise. The seed decides which.

The Three Modes

The composition uses one of three colour modes, chosen by the seed:

Mode Name Behaviour
0 Black on Color Active cells are black; inactive cells take a palette colour
1 Color on Black Active cells take a palette colour; inactive cells are black
2 Random RGB Active cells are black; inactive cells are random soft RGB

Each cell is drawn as a small rectangle with a stroke of the same colour, so adjacent cells read as a tight grid — no visible seams, but a subtle structural emphasis from the strokes.

The Grid

The grid divisions are derived from the seed, between 4 and 304 on each axis. This means each composition has its own resolution:

  • A coarse grid (small division count) produces bold, blocky patterns.
  • A fine grid (large division count) produces intricate, textile-like detail.

The cell width and height are computed independently — width / widthdivision and height / heightdivision — so the pattern stays sharp on non-square canvases.

The Surfaces

The same seed is rendered across four surface formats. These are static frames — they represent the print-ready composition.

Surface Aspect Material
Print 1 : 1 Cotton rag
Scarf 3 : 1 Twill silk
Textile 4 : 3 Fabric yardage
Wall 2 : 3 Wallpaper

Each surface uses the same underlying seed and structural logic — only the repeat, orientation, and scale change.

Stillness

Unlike Bezier 2 and Brownian Graphe, ChaotiColor does not animate. The plate is a single frozen frame — the composition is complete the moment it is generated.

This is a deliberate design choice. A cellular automaton is not a swarm. It is not a rotation. It is a rule, run to completion. Its stillness is what makes it print-ready in the strictest sense: what you see is what you get.


Usage

In the browser

  1. Open index.html in any modern browser.
  2. Click New Seed to generate a new composition.
  3. Click Download to save the composition as a PNG.
  4. Scroll to the Archive section and click any plate to load it into Plate 001.

Keyboard shortcuts

Key Action
R New seed
S Save as PNG

Reproducing a composition

Each composition is identified by an 8-digit seed label displayed in the metadata panel. To reproduce a specific composition, note the seed and regenerate it programmatically:

const rng = new RandomGenerator(seed);
const features = buildFeatures(rng);
renderComposition(canvas, features, rng);

Because the generator is deterministic, this will produce the identical composition on any device.


Technical Notes

  • No build step. The system is a single HTML file with inline CSS and JavaScript.
  • No dependencies. All drawing is done with the native Canvas 2D API.
  • Deterministic. The RandomGenerator class uses a xorshift-based PRNG seeded by an integer, so identical seeds produce identical outputs.
  • Static rendering. Every canvas renders a single frame. There is no animation loop.
  • Feature isolation. Cover, framed plate, surfaces, and archive thumbnails each derive their own feature set from their own local RNG, without disturbing the main plate's state.
  • Independent axis scaling. The cell grid uses width / widthdivision and height / heightdivision independently, so patterns remain crisp on non-square surfaces.
  • Responsive. The layout adapts from large desktop down to very small mobile devices (tested at 360px viewport width).
  • Accessible. Supports prefers-reduced-motion. Pinch-zoom is enabled.

Browser support

Tested in current versions of:

  • Chrome / Edge
  • Firefox
  • Safari (desktop and iOS)

Licensing

All ChaotiColor compositions are seed-documented and available for licensing across textile, surface, and print applications.

  • Standard licenses cover single-product production runs.
  • Commercial use, custom editions, or exclusive rights are available on request.

Each license is issued against a specific seed ID. Regeneration of the same seed produces the identical composition — ensuring reproducibility between artist, studio, and manufacturer.

For licensing enquiries: reyhanehdaneshdoost@gmail.com


Commission

ChaotiColor is a generative design system, not a fixed artwork. It can be adapted for specific briefs:

Service Description
Licensing Existing seeds from the archive, licensed for production use
Commission New compositions designed to your palette, repeat, and product
Systems A private generative tool built for your studio's ongoing use

To begin a conversation: reyhanehdaneshdoost@gmail.com


Series

ChaotiColor is part of a computational textile series. Each volume approaches ornament from a different structural angle:

Volume Structure Motion
Girih 1 Islamic geometric Static
Arachne Rotating rings Static
Baroque Me Baby Baroque frames Static
Bezier 1 Concentric curves Static
Bezier 2 Single rotating curve Animated (plate)
Brownian Graphe Graph networks Animated + interactive
Celestial Grove Recursive branch trees Static
ChaotiColor Cellular automata Static

The series is designed as a coherent whole — same page structure, same seed logic, same licensing and commission terms — so that each volume can be presented individually or as part of a larger body of work.


Credits

  • Design & Generative System — Reyhaneh Daneshdoost
  • Typefaces — Cormorant Garamond · DM Mono
  • Platform — Reyrove Studio
  • Edition — ChaotiColor, Autumn 2026

On AI tools

Where technical obstacles were encountered, AI tools were used for debugging and code optimization. Every structural, aesthetic, and conceptual decision remained the artist's own.


Links


© ChaotiColor · All compositions reproducible by seed · Computational Textile Design

Releases

Packages

Contributors

Languages