| name | canvas-design |
| description | Create original visual art, static infographics, and data-backed visual artifacts in PNG and PDF formats using design philosophy principles. Use for museum-quality visual artifacts, design manifestos, artistic compositions, and stakeholder-facing risk/safety infographics. |
| type | reference |
| version | 2.0.0 |
| category | business |
| last_updated | "2026-01-02T00:00:00.000Z" |
| related_skills | ["algorithmic-art","frontend-design","theme-factory"] |
| capabilities | [] |
| requires | [] |
| tags | [] |
Canvas Design
Overview
This skill guides creation of original visual art, static infographics, and data-backed visual artifacts in PNG and PDF formats using design philosophy principles. Emphasize craftsmanship and visual hierarchy; use minimal text for art pieces, but allow concise evidence labels and provenance for stakeholder-facing infographics.
When to Use
- Creating museum-quality visual artifacts
- Generating design manifestos with visual expression
- Building artistic compositions for presentations or publications
- Producing abstract art for branding or decoration
- Creating data-backed risk infographics from a source document plus repository datasets
- Any project requiring 90%+ visual design with minimal text
Data-Backed Risk Infographics
When the artifact is meant to show avoidable risk using operational or incident data, use the workflow in references/data-backed-risk-infographics.md: extract document themes, compute a statistics sidecar, produce HTML plus PNG/PDF exports, and verify rendered readability/clipping before handoff.
Quick Start
- Write design philosophy (4-6 paragraphs articulating visual essence)
- Choose visual style (geometric, organic, structured chaos, typographic)
- Select implementation (PIL/Pillow, Cairo, SVG)
- Execute with precision (museum-quality craftsmanship)
- Export (PNG at 300 DPI or vector PDF)
from PIL import Image, ImageDraw
import math
canvas = Image.new('RGB', (2400, 3200), '#0a0a0a')
draw = ImageDraw.Draw(canvas)
phi = (1 + math.sqrt(5)) / 2
center_x, center_y = 1200, 1600
for i in range(50):
angle = i * phi * 2 * math.pi
radius = i *
x = center_x + radius * math.cos(angle)
y = center_y + radius * math.sin(angle)
size = (, - i * )
draw.ellipse([x-size, y-size, x+size, y+size], fill=)
canvas.save(, quality=)