Skip to content

Adapt Generative Art

Adapt Generative Art — mvp.adapt_generative_art

Cluster: Creative & Media | Type: component | MCP Tools: 50

Overview

Generative art block that produces procedural imagery across multiple techniques — L-systems, cellular automata, fractals (Mandelbrot/Julia), context-free grammars, evolutionary art, Perlin noise, strange attractors, reaction-diffusion, particle systems, and CPPN — across image, SVG, OBJ, audio, and animated GIF modalities. Supports custom colour palettes, post-processing filter chains, layer composition, and optional headless PNG rendering via Puppeteer. Can also accept a goal context string to drive LLM-powered brief generation through JS/GLSL backends.

Launch readiness caveat

The core component test suite covers local generation, rendering, backend, persistence, and MCP paths. For first-user launch use, still run a clean-machine MCP smoke test before presenting this as frictionless: install the MCP server, run a simple generation such as generate_noise, save the result with artwork_save, and verify it can be reopened or previewed with artwork_preview. Optional paths such as Manim, Puppeteer/headless rendering, and LLM-assisted backend generation add useful capability but also add install and environment friction for non-technical users.

When to use:

  • Generating procedural visuals or animations from mathematical or algorithmic descriptions
  • Producing L-system plant or fractal imagery for synthetic training datasets or creative outputs
  • Composing multiple generative layers with post-processing (blur, contrast, tone-mapping)
  • Creating self-contained HTML/JS bundles for interactive generative sketches

Example:

from mvp.adapt_generative_art import AdaptGenerativeArtBlock, GenerativeInput

block = AdaptGenerativeArtBlock(name="gen_art")
result = block.infer(GenerativeInput(
    op="generate_lsystem",
    technique="lsystem",
    axiom="F",
    rule_string="F=F+F-F-F+F",
    iterations=4,
    width=512,
    height=512,
    palette="viridis",
))
# result.value.data_base64 → base64 PNG; result.value.svg_text → SVG markup

Works well with: adapt_image, adapt_blender, adapt_comfyui

Public API

GenerativeArtPatternRuntime

Stateless executable mechanism for adapt_generative_art's applied patterns.

Methods:

review_recommendation(params: ArtParameters, strategy: str) -> tuple[str, ...]

Return advisory provenance / fail-safe notes for one translation.

AdaptGenerativeArtBlock(AIBlock[GenerativeInput, GenerativeOutput, None])

Generative art block — routes by technique, converts to requested modality.

Field Type Default
name str 'adapt_generative_art'
resource_bounds ResourceBounds \| None None
usage ResourceUsage field(default_factory=ResourceUsage)

Methods:

infer(data: GenerativeInput) -> Result[GenerativeOutput]

GenerativeInput(BaseModel)

Input to AdaptGenerativeArtBlock.

Field Type Default
op str 'generate_lsystem'
technique str ''
modality str 'image'
params dict Field(default_factory=dict)
seed int -1
width int 256
height int 256
iterations int 5
rule_string str ''
axiom str ''
fractal_type str 'mandelbrot'
grammar_rules dict Field(default_factory=dict)
fitness_fn str ''
content_base64 str ''
style_base64 str ''
preset_name str ''
genome_id str ''
artwork_id str ''
palette str 'viridis'
palette_stops list[str] Field(default_factory=list)
output_path str ''
output_format str ''
quality str 'medium'
scene_type str ''
expression str ''
duration float 3.0
attractor_type str 'clifford'
feed_rate float 0.055
kill_rate float 0.062
particle_count int 5000
cppn_layers int 3
compose_with list[dict] Field(default_factory=list)
post_process list[dict] Field(default_factory=list)
tone_map str 'none'
content_weight float 1.0
style_weight float 1000000.0
lloyd_iterations int 0
backend str 'auto'
goal_context str ''
brief str ''
custom_code str ''
title str ''
data list[float] Field(default_factory=list)
headless_enabled bool False

GenerativeOutput(BaseModel)

Output from AdaptGenerativeArtBlock.

Field Type Default
op str required
data_base64 str ''
output_path str ''
modality str ''
technique str ''
width int 0
height int 0
seed_used int 0
iterations int 0
metadata dict Field(default_factory=dict)
svg_text str ''
obj_text str ''
text_output str ''
backend str ''
file_format str ''
palette_used str ''
frame_count int 0
layers_composed int 0
filters_applied list[str] Field(default_factory=list)
degraded bool False
degradation_reason str ''
html_bundle str ''

AdaptGenerativeArtMCPBlock(AIBlock[MCPGenerativeArtInput, MCPGenerativeArtOutput, dict])

45-op generative art MCP block with SQLite persistence.

Field Type Default
name str 'adapt_generative_art_mcp'
state dict field(default_factory=dict)
db_path str field(default_factory=lambda: os.environ.get('GENERATIVE_ART_DB_PATH', _DEFAULT_DB))
resource_bounds ResourceBounds field(default_factory=ResourceBounds)
usage ResourceUsage field(default_factory=ResourceUsage)

Methods:

infer(data: MCPGenerativeArtInput) -> Result[MCPGenerativeArtOutput]

MCPGenerativeArtInput(BaseModel)

Input to AdaptGenerativeArtMCPBlock — 50 ops.

Field Type Default
op Literal['generate_lsystem', 'generate_ca', 'generate_fractal', 'generate_grammar', 'generate_evolutionary', 'generate_noise', 'generate_random_walk', 'generate_style_transfer', 'set_modality', 'set_params', 'set_seed', 'artwork_save', 'artwork_get', 'artwork_list', 'artwork_delete', 'genome_save', 'genome_get', 'genome_list', 'grammar_store', 'grammar_list', 'preset_store', 'preset_list', 'preset_apply', 'set_palette', 'set_quality', 'generate_manim', 'palette_list', 'palette_preview', 'export_artwork', 'generate_reaction_diffusion', 'generate_attractor', 'generate_voronoi', 'generate_flow_field', 'generate_cppn', 'generate_domain_coloring', 'generate_neural_style', 'generate_shape_grammar', 'compose_layers', 'apply_filters', 'stats', 'get_info', 'op_inventory', 'artwork_preview', 'artwork_open', 'list_patterns', 'backend_capabilities', 'backend_validate_source', 'backend_render_source', 'backend_preview_source', 'backend_export_source'] required
technique str ''
modality str 'image'
params dict Field(default_factory=dict)
seed int -1
width int 256
height int 256
iterations int 5
rule_string str ''
axiom str ''
fractal_type str 'mandelbrot'
grammar_rules dict Field(default_factory=dict)
fitness_fn str ''
content_base64 str ''
style_base64 str ''
artwork_id str ''
genome_id str ''
preset_name str ''
name str ''
tags_csv str ''
description str ''
limit int 50
data_base64 str ''
genome_data list[float] Field(default_factory=list)
genome_fitness float 0.0
rules_json str ''
palette str ''
palette_stops list[str] Field(default_factory=list)
output_path str ''
output_format str ''
quality str 'medium'
scene_type str ''
expression str ''
duration float 3.0
attractor_type str 'clifford'
feed_rate float 0.055
kill_rate float 0.062
particle_count int 5000
cppn_layers int 3
compose_with list[dict] Field(default_factory=list)
post_process_chain list[dict] Field(default_factory=list)
tone_map str 'none'
content_weight float 1.0
style_weight float 1000000.0
lloyd_iterations int 0
backend str 'auto'
goal_context str ''
brief str ''
custom_code str ''
title str ''
data list[float] Field(default_factory=list)
headless_enabled bool False
html_bundle str ''
svg_text str ''
obj_text str ''
text_output str ''
source_kind str 'sketch'
source_text str ''
render_target str 'html'
timeout_ms int 5000
allowed_features list[str] Field(default_factory=list)
resource_limits dict Field(default_factory=dict)

MCPGenerativeArtOutput(BaseModel)

Output from AdaptGenerativeArtMCPBlock.

Field Type Default
op str required
data_base64 str ''
modality str ''
technique str ''
width int 0
height int 0
seed_used int 0
iterations int 0
metadata dict Field(default_factory=dict)
svg_text str ''
obj_text str ''
text_output str ''
backend str ''
artwork_id str ''
genome_id str ''
name str ''
found bool False
count int 0
records list[dict] Field(default_factory=list)
message str ''
degraded bool False
degradation_reason str ''
output_path str ''
file_format str ''
palette_used str ''
frame_count int 0
layers_composed int 0
filters_applied list[str] Field(default_factory=list)
html_bundle str ''
declared_ops list[str] Field(default_factory=list)
handler_ops list[str] Field(default_factory=list)
ops_drift list[str] Field(default_factory=list)
completion_state str 'qualified-draft'
warning_card dict \| None None
evidence list[str] Field(default_factory=list)
capability_used str ''
validation_status str ''
dependency_status dict Field(default_factory=dict)
diagnostics list[dict] Field(default_factory=list)
source_kind str ''
render_target str ''

GenerativeArtStore

SQLite-backed store for the adapt_generative_art MCP sub-package.

Constructor:

Parameter Type Default
db_path str ':memory:'

Methods:

save_artwork(name: str = '', technique: str = '', modality: str = '', data_base64: str = '', svg_text: str = '', obj_text: str = '', text_output: str = '', html_bundle: str = '', width: int = 0, height: int = 0, seed_used: int = 0, iterations: int = 0, metadata: dict | None = None, tags: str = '') -> str

Save an artwork. Returns the assigned id.

get_artwork(artwork_id: str) -> dict | None

Retrieve an artwork by id.

list_artworks(tags_csv: str = '', limit: int = 50) -> list[dict]

List stored artworks, optionally filtered by tags.

delete_artwork(artwork_id: str) -> bool

Delete an artwork by id. Returns True if found.

save_genome(name: str = '', genome: list[float] | None = None, fitness: float = 0.0, technique: str = '', tags: str = '', metadata: dict | None = None) -> str

Save a genome. Returns the assigned id.

get_genome(genome_id: str) -> dict | None

Retrieve a genome by id.

list_genomes(limit: int = 50) -> list[dict]

List stored genomes.

store_grammar(name: str, rules: dict, description: str = '', tags: str = '') -> str

Store a grammar rule set. Returns the assigned id.

list_grammars(limit: int = 50) -> list[dict]

List stored grammars.

get_grammar(name: str) -> dict | None

Retrieve a grammar by name.

store_preset(name: str, technique: str = '', params: dict | None = None, description: str = '', tags: str = '') -> str

Store a parameter preset. Returns the assigned id.

get_preset(name: str) -> dict | None

Retrieve a preset by name.

list_presets(limit: int = 50) -> list[dict]

List stored presets.

count_all() -> dict[str, int]

Functions

agentic_planner_enabled(default_enabled: bool = True) -> bool

Decide whether the agentic (LLM) translate path should be used.

validate_art_axes(axes: Any) -> dict[str, Any]

Fail-safe-normalise an axes blob (e.g. an LLM fallback result).

validate_translation(params: ArtParameters) -> ArtParameters

Assert the resolved ArtParameters carries only in-vocabulary controlled axes.

MCP Tools

Operation Source
generate_lsystem generative_art_mcp
generate_ca generative_art_mcp
generate_fractal generative_art_mcp
generate_grammar generative_art_mcp
generate_evolutionary generative_art_mcp
generate_noise generative_art_mcp
generate_random_walk generative_art_mcp
generate_style_transfer generative_art_mcp
set_modality generative_art_mcp
set_params generative_art_mcp
set_seed generative_art_mcp
artwork_save generative_art_mcp
artwork_get generative_art_mcp
artwork_list generative_art_mcp
artwork_delete generative_art_mcp
genome_save generative_art_mcp
genome_get generative_art_mcp
genome_list generative_art_mcp
grammar_store generative_art_mcp
grammar_list generative_art_mcp
preset_store generative_art_mcp
preset_list generative_art_mcp
preset_apply generative_art_mcp
set_palette generative_art_mcp
set_quality generative_art_mcp
generate_manim generative_art_mcp
palette_list generative_art_mcp
palette_preview generative_art_mcp
export_artwork generative_art_mcp
generate_reaction_diffusion generative_art_mcp
generate_attractor generative_art_mcp
generate_voronoi generative_art_mcp
generate_flow_field generative_art_mcp
generate_cppn generative_art_mcp
generate_domain_coloring generative_art_mcp
generate_neural_style generative_art_mcp
generate_shape_grammar generative_art_mcp
compose_layers generative_art_mcp
apply_filters generative_art_mcp
stats generative_art_mcp
get_info generative_art_mcp
op_inventory generative_art_mcp
artwork_preview generative_art_mcp
artwork_open generative_art_mcp
list_patterns generative_art_mcp
backend_capabilities generative_art_mcp
backend_validate_source generative_art_mcp
backend_render_source generative_art_mcp
backend_preview_source generative_art_mcp
backend_export_source generative_art_mcp