Skip to main content

morphogenesis-postcard

Generate deterministic science-art postcard PNGs inside a shell/container skill environment. Use when asked for morphogenesis visuals, reaction-diffusion art, Turing patterns, dynamics-inspired scientific social posts, prompt-written visual rules/code, or reliable 4B-model-friendly visual artifacts. Always writes an inspectable Python visual-rule file, then renders PNG, parameters JSON, caption text, and README with the bundled renderer.

Source facts

Repository
lamm-mit/graph-preflexor-grpo
Last source activity
June 19, 2026 at 11:33
Detected SKILL.md language
English
Stars
13
Forks
5

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

File Explorer
4 files

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
morphogenesis-postcard
description
Generate deterministic science-art postcard PNGs inside a shell/container skill environment. Use when asked for morphogenesis visuals, reaction-diffusion art, Turing patterns, dynamics-inspired scientific social posts, prompt-written visual rules/code, or reliable 4B-model-friendly visual artifacts. Always writes an inspectable Python visual-rule file, then renders PNG, parameters JSON, caption text, and README with the bundled renderer.
# Morphogenesis Postcard Create social-post-ready science art from a deterministic Gray-Scott reaction-diffusion simulation. The normal workflow must always write a prompt-specific Python visual rule file first, then pass that file to the renderer with `--rule-code`. The rule file is part of the artifact: it exposes the visual grammar used for the run. ## Required Workflow 1. Create or use the requested output directory, usually `skill_output_<timestamp>_morphogenesis-postcard`. 2. Write `agent_rules.py` from the user's creative request. Keep the prompt intact when possible: ```bash python3 skills/morphogenesis-postcard/scripts/write_visual_rules.py \ --out skill_output_<timestamp>_morphogenesis-postcard/agent_rules.py \ --profile-json skill_output_<timestamp>_morphogenesis-postcard/visual_rule_profile.json \ --prompt "stress-wave interference in hierarchical materials with branching cracks and glowing defects" \ --title "Stress-Wave Morphogenesis" \ --subtitle "Prompt-written reaction-diffusion rules" ``` 3. Render with that rule file. Do not omit `--rule-code` in a final skill run: ```bash python3 skills/morphogenesis-postcard/scripts/make_morphogenesis_postcard.py \ --out skill_output_<timestamp>_morphogenesis-postcard \ --rule-code skill_output_<timestamp>_morphogenesis-postcard/agent_rules.py \ --prompt "stress-wave interference in hierarchical materials with branching cracks and glowing defects" \ --title "Stress-Wave Morphogenesis" \ --subtitle "Prompt-written reaction-diffusion rules" \ --auto-style \ --format square \ --steps 220 ``` 4. Verify artifacts exist before answering: ```bash find skill_output_<timestamp>_morphogenesis-postcard -maxdepth 2 -type f -print ``` 5. Final answer must list exact artifact paths, including `agent_rules.py`. Do not claim success unless `find` lists the files. ## Parameters Use these command-line options for `write_visual_rules.py`: - `--prompt`: Natural-language visual brief. This is the main creative input. - `--title`: Short headline rendered on the poster. - `--subtitle`: Short caption rendered under the title. - `--out`: Path to the required `agent_rules.py` visual-rule file. - `--profile-json`: Optional JSON summary of derived prompt themes and style. Use these command-line options for `make_morphogenesis_postcard.py`: - `--rule-code`: Required for final outputs. Point to the generated `agent_rules.py`. - `--prompt`: Same visual brief passed to `write_visual_rules.py`. - `--auto-style`: Derives any unpinned style option from the prompt. - `--prompt-strength`: 0-1 strength for prompt-derived simulation/tone perturbations. Default is `0.78`. - `--title`: Short headline rendered on the poster. - `--subtitle`: Short caption rendered under the title. - `--seed`: String or number for deterministic variation. - `--preset`: One of `labyrinth`, `spots`, `coral`, `veins`, `membranes`. - `--palette`: One of `magma-cyan`, `biofilm`, `noir-neon`, `ice`, `graphite-fire`. - `--composition`: One of `poster`, `full-bleed`, `specimen`, `triptych`, `field-guide`. - `--motif`: One of `hybrid`, `flow`, `rings`, `fibers`, `fracture`, `constellation`, `none`. - `--symmetry`: One of `none`, `mirror-x`, `mirror-y`, `dihedral`. - `--title-mode`: One of `panel`, `caption`, `none`. - `--energy`: 0-1 field intensity and motif force. - `--contrast`: Field contrast multiplier. Use 0.7-1.8. - `--grain`: 0-1 deterministic print grain. - `--ink-density`: 0-1 density of lines, rings, fibers, and nodes. - `--accent-count`: Number of accent motifs/nodes. Use 4-24 for most posts. - `--format`: `square` or `portrait`. - `--steps`: Use 180-280 for normal runs, 80-120 for fast previews. - `--size`: Optional PNG width in pixels. Default is 1080; use 720 for fast tests. - `--field-size`: Optional internal simulation grid. Default is 152; use 124 for fast tests. The generated visual rule file defines `configure`, `seed_rule`, `tone_rule`, `color_rule`, `motif_paths`, and `postprocess`. It recognizes scientific and aesthetic language including stress, fracture, waves, interference, phase, morphogenesis, cells, membranes, fibers, hierarchy, graphs, bridges, nodes, crystals, lattices, thermal energy, plasma, and quiet/specimen-style prompts. The prompt hash changes the deterministic rule seed, so different prompts produce different code and images. If the user asks to pin a specific style option, pass that explicit flag too; prompt mode fills unpinned options and respects explicit `--preset`, `--palette`, `--composition`, `--motif`, `--symmetry`, `--title-mode`, `--seed`, `--energy`, `--contrast`, `--grain`, `--ink-density`, and `--accent-count`. ## Optional Manual Rule Editing If the user explicitly asks for hand-authored rules, write or edit `agent_rules.py` yourself. Keep the same API: ```bash cat > skill_output_<timestamp>_morphogenesis-postcard/agent_rules.py <<'PY' import math def configure(args): return { "composition": "full-bleed", "motif": "none", "title_mode": "none", "energy": 0.92, "contrast": 1.35, "grain": 0.14, } def tone_rule(fx, fy, x, y, activator, depletion, edge, ridge, tone, context): n = context["n"] wave = math.sin(fx * 0.21 + math.sin(fy * 0.08) * 2.5) cellular = math.sin((fx - n * 0.5) * 0.12) * math.sin((fy - n * 0.5) * 0.12) return max(0.0, min(1.0, tone * 0.72 + abs(wave) * 0.18 + abs(cellular) * 0.16 + edge * 0.18)) def motif_paths(context): return [ {"type": "circle", "x": 0.50, "y": 0.50, "radius": 0.42, "ring": True, "color": "accent", "alpha": 0.18, "thickness": 2}, {"type": "polyline", "points": [(0.08, 0.18), (0.25, 0.34), (0.52, 0.30), (0.80, 0.64), (0.94, 0.82)], "color": "muted", "alpha": 0.22, "thickness": 2}, ] PY ``` Then run: ```bash python3 skills/morphogenesis-postcard/scripts/make_morphogenesis_postcard.py \ --out skill_output_<timestamp>_morphogenesis-postcard \ --rule-code skill_output_<timestamp>_morphogenesis-postcard/agent_rules.py \ --title "Agent-Written Morphogenesis" \ --subtitle "Custom tone rules and motifs" \ --seed custom-01 \ --preset coral \ --palette noir-neon \ --format square \ --steps 180 ``` Supported functions in `agent_rules.py`: - `configure(args) -> dict | None`: Override command-line options before rendering. - `seed_rule(u, v, n, args) -> (u, v) | None`: Modify initial fields in place or return new fields. - `tone_rule(fx, fy, x, y, activator, depletion, edge, ridge, tone, context) -> float | None`: Override per-pixel tone. - `color_rule(r, g, b, tone, x, y, fx, fy, context) -> (r, g, b) | None`: Override per-pixel RGB. - `motif_paths(context) -> list[dict]`: Add line/polyline/circle/frame motifs using relative coordinates. - `postprocess(image, width, height, args, palette, helpers) -> bytearray | None`: Draw directly on the RGB bytearray using helper functions. Keep custom code short and deterministic. Import only Python standard-library modules. If a rule file fails, fix it and rerun the renderer; do not claim success. ## Defaults If the user does not specify parameters, use: ```text title=Morphogenesis From Local Rules subtitle=Prompt-shaped reaction-diffusion field prompt=<copy the user's visual/art/science request> auto-style=true rule-code=skill_output_<timestamp>_morphogenesis-postcard/agent_rules.py prompt-strength=0.78 seed=42 preset/palette/composition/motif/symmetry/title-mode/energy/contrast/grain/ink-density/accent-count=derived from prompt format=square steps=220 ``` ## Recipes ### Prompt-Driven Materials Interface ```bash python3 skills/morphogenesis-postcard/scripts/write_visual_rules.py \ --out skill_output_<timestamp>_morphogenesis-postcard/agent_rules.py \ --profile-json skill_output_<timestamp>_morphogenesis-postcard/visual_rule_profile.json \ --prompt "stress-wave interference in a growing hierarchical material interface with branching cracks, glowing defects, and nonlinear energy flow" \ --title "Stress Waves in a Growing Interface" \ --subtitle "Prompt-written reaction-diffusion rules" python3 skills/morphogenesis-postcard/scripts/make_morphogenesis_postcard.py \ --out skill_output_<timestamp>_morphogenesis-postcard \ --rule-code skill_output_<timestamp>_morphogenesis-postcard/agent_rules.py \ --prompt "stress-wave interference in a growing hierarchical material interface with branching cracks, glowing defects, and nonlinear energy flow" \ --title "Stress Waves in a Growing Interface" \ --subtitle "Prompt-written reaction-diffusion rules" \ --auto-style \ --format square \ --steps 220 ``` ### Prompt-Driven Museum Specimen ```bash python3 skills/morphogenesis-postcard/scripts/write_visual_rules.py \ --out skill_output_<timestamp>_morphogenesis-postcard/agent_rules.py \ --profile-json skill_output_<timestamp>_morphogenesis-postcard/visual_rule_profile.json \ --prompt "quiet museum specimen of cellular morphogenesis in ice-blue symmetry, like an archived biological crystal" \ --title "Specimen of Emergent Order" \ --subtitle "Cellular fields constrained into symmetry" python3 skills/morphogenesis-postcard/scripts/make_morphogenesis_postcard.py \ --out skill_output_<timestamp>_morphogenesis-postcard \ --rule-code skill_output_<timestamp>_morphogenesis-postcard/agent_rules.py \ --prompt "quiet museum specimen of cellular morphogenesis in ice-blue symmetry, like an archived biological crystal" \ --title "Specimen of Emergent Order" \ --subtitle "Cellular fields constrained into symmetry" \ --auto-style \ --format square \ --steps 200 ``` ### Prompt-Driven Research Graph Artwork ```bash python3 skills/morphogenesis-postcard/scripts/write_visual_rules.py \ --out skill_output_<timestamp>_morphogenesis-postcard/agent_rules.py \ --profile-json skill_output_<timestamp>_morphogenesis-postcard/visual_rule_profile.json \ --prompt "luminous graph of research ideas bridging distant modules, with nodes, links, hidden paths, and morphogenesis-like diffusion" \ --title "Bridge Field" \ --subtitle "A graph of ideas becomes a reaction field" python3 skills/morphogenesis-postcard/scripts/make_morphogenesis_postcard.py \ --out skill_output_<timestamp>_morphogenesis-postcard \ --rule-code skill_output_<timestamp>_morphogenesis-postcard/agent_rules.py \ --prompt "luminous graph of research ideas bridging distant modules, with nodes, links, hidden paths, and morphogenesis-like diffusion" \ --title "Bridge Field" \ --subtitle "A graph of ideas becomes a reaction field" \ --auto-style \ --format square \ --steps 240 ``` ### Prompt-Driven Scientific Triptych ```bash python3 skills/morphogenesis-postcard/scripts/write_visual_rules.py \ --out skill_output_<timestamp>_morphogenesis-postcard/agent_rules.py \ --profile-json skill_output_<timestamp>_morphogenesis-postcard/visual_rule_profile.json \ --prompt "three-panel scientific triptych of branching biofilm fibers, cellular growth fronts, and nonlinear wave coupling" \ --title "Three Views of a Reaction Field" \ --subtitle "One seed, shifted sampling windows" python3 skills/morphogenesis-postcard/scripts/make_morphogenesis_postcard.py \ --out skill_output_<timestamp>_morphogenesis-postcard \ --rule-code skill_output_<timestamp>_morphogenesis-postcard/agent_rules.py \ --prompt "three-panel scientific triptych of branching biofilm fibers, cellular growth fronts, and nonlinear wave coupling" \ --title "Three Views of a Reaction Field" \ --subtitle "One seed, shifted sampling windows" \ --auto-style \ --composition triptych \ --format portrait \ --steps 220 ``` ## Outputs The script writes: - `<title>_<preset>_<palette>_<seed>.png`: social-post PNG. - `parameters.json`: exact reproduction parameters. - `caption.txt`: short social caption. - `README.md`: plain-language explanation. - `agent_rules.py`: required prompt-written visual rule code. - `visual_rule_profile.json`: prompt theme/style profile, when written by `write_visual_rules.py`. Do not use `run_js`. This skill is for the shell/container environment used by `mistralrs_skill_cli.py`.
View on GitHub