An interactive desktop application for evolving generative artwork through guided visual selection.
This project extends the original evolving-art engine with a full graphical experience. While the core evolutionary logic is inherited, the rendering system, interface, export utilities, and workflow have been redesigned for hands-on creative exploration.
Fork of the original project:
https://github.com/gianluccacolangelo/evolving-art
| Feature / System | Original | This Fork |
|---|---|---|
| Evolution engine (genome + mutation logic) | ✅ | Inherited |
| Rendering pipeline | Basic | Fully rewritten vector engine |
| Workflow | CLI | Interactive GUI (PySide6) |
| Population inspector + metadata | ❌ | Added |
| Live mutation + inspector controls | ❌ | Added |
| Interactive multi-selection evolution | Basic | Enhanced |
| Export (individual + population + tree) | Basic | Full PNG/SVG export system |
This fork introduces enhanced export tools for documenting evolution. The population view and genome tree can be exported in high resolution as PNG or SVG.
Each numbered cell represents an evolved candidate. The user selects preferred individuals, and the system generates the next generation based on their selection.
The composition tree visualizes the underlying genome used to generate the selected artwork, allowing inspection, debugging, or creative manipulation.
| Screen | Preview |
|---|---|
| Main Menu | ![]() |
| Population Browser | ![]() |
| Create Population | ![]() |
| Evolution Workspace | ![]() |
conda env create -f environment.yml
conda activate evolving-art
python main.py
The app uses an evolutionary pipeline:
- Generate an initial population of visual genomes
- Render and display results
- User selects preferred individuals
- Engine mutates and breeds new candidates
- Repeat and explore emergent creative forms
Everything is saved automatically, including metadata and full lineage.
src/
├─ core/ # Evolution engine (from original repo)
├─ rendering/ # New rendering pipeline
├─ app/ # PySide6 GUI (screens, widgets, theme)
├─ population_manager/ # Persistence, metadata, autosave, history
main.py # Entry point
This fork includes an entirely reworked rendering stack featuring:
-
Vector-based geometry extraction
-
Shapely-driven boolean geometry evaluation
-
SDF-free raster backend (replacing the original pipeline)
-
Options for:
- PNG export
- SVG export
- Generation sheet export
-
Auto bounds with override support
- Individuals: PNG / SVG
- Composition Tree PNG / SVG
- Whole generations: grid export
Populations genomes are stored under:
populations/<name>/history/gen_###.json
- Evolution engine base → gianluccacolangelo / evolving-art
- Rendering, GUI, interaction logic → This fork





