Skip to content

Canvas Design Skill 详解

创建博物馆级别的静态视觉艺术作品

基本信息

属性
名称canvas-design
类别创意设计
输出格式PNG / PDF
许可证Apache 2.0
yaml
name: canvas-design
description: Create beautiful visual art in .png and .pdf documents
using design philosophy. You should use this skill when the user asks
to create a poster, piece of art, design, or other static piece.
Create original visual designs, never copying existing artists' work
to avoid copyright violations.

1. 核心概念

1.1 与 Algorithmic Art 的区别

特性Canvas DesignAlgorithmic Art
输出静态图像交互式 HTML
技术PIL/reportlabp5.js
变化单一作品种子变体
用途海报、艺术品、设计稿生成式探索

1.2 两步创作流程

mermaid
graph LR
    A[用户请求] --> B[创建设计哲学]
    B --> C[画布创作]
    C --> D[静态 PNG/PDF]

2. 设计哲学

2.1 哲学结构

markdown
**命名运动** (1-2 词): "野兽派欢乐" / "色彩沉默" / "新陈代谢梦境"

**阐述哲学** (4-6 段落):
- 空间与形式
- 色彩与材质
- 尺度与节奏
- 构图与平衡
- 视觉层次

2.2 哲学示例

名称核心理念视觉表达
混凝土诗歌通过纪念性形式沟通巨大色块、雕塑般字体、空间张力
色彩语言色彩作为主要信息系统几何精确、色彩区域传递意义
模拟冥想通过纹理和呼吸空间的视觉沉思纸张颗粒、墨迹渗透、大量负空间
有机系统自然聚类和模块化生长模式圆润形式、有机排列、自然色彩
几何沉默纯粹秩序与克制网格精确、大胆摄影、戏剧性负空间

2.3 写作要点

markdown
**关键指南**
- 避免冗余:每个设计方面只提及一次
- 强调工艺:反复强调最终作品应显得精心打磨
- 留有空间:具体但简洁,给实现留有创意空间
- 视觉优先:信息通过空间、形式、色彩传达,而非段落

3. 核心原则

3.1 文字使用原则

markdown
核心原则:文字是稀少的、必要的、作为视觉元素融入

✗ 避免:段落、解释性文字、过多标签
✓ 追求:短语、单词、融入设计的字体

上下文决定尺度:
- 朋克演出海报 → 可能有更大、更激进的字体
- 极简陶艺工作室 → 低语般的小字
- 无论尺度如何,都必须是设计导向的

3.2 品质标准

markdown
**关键**:创造看起来像花费无数小时的作品

- 构图、间距、色彩选择——一切体现专家级工艺
- 没有重叠,格式完美,每个细节都精准
- 博物馆或杂志级别的品质
- 可以展示给人们证明专业能力

3.3 边界与呼吸空间

markdown
**非谈判原则**
- 没有内容落出页面
- 没有元素重叠
- 所有元素必须在画布边界内,有适当边距
- 所有文字、图形、视觉元素都有呼吸空间和清晰分离

4. 视觉语言

4.1 设计方法

markdown
将抽象哲学设计视为科学圣经般对待:

- 借用系统观察的视觉语言
- 密集的标记累积、重复元素、分层图案
- 通过耐心重复和奖励持续观看来构建意义
- 稀疏、临床的字体和系统参考标记
- 暗示这可能是某个想象学科的图表
- 用通常保留给可观察现象的敬畏来对待不可见主题

4.2 色彩使用

markdown
- 有限的调色板,感觉有意且连贯
- 用简单短语或细节作为锚点
- 拥抱用分析性视觉语言表达人类体验的悖论
- 结果应感觉像一个证明某种短暂事物可以被研究、映射和理解的工件

5. 技术实现

5.1 使用 PIL (Pillow)

python
from PIL import Image, ImageDraw, ImageFont

# 创建画布
width, height = 1200, 1600
canvas = Image.new('RGB', (width, height), color='#FAFAFA')
draw = ImageDraw.Draw(canvas)

# 绘制形状
draw.rectangle([100, 100, 500, 500], fill='#2C3E50')
draw.ellipse([600, 100, 1000, 500], fill='#E74C3C')

# 添加文字(使用自定义字体)
font = ImageFont.truetype('path/to/font.ttf', 72)
draw.text((100, 600), "MINIMAL", font=font, fill='#1A1A1A')

# 保存
canvas.save('artwork.png')

5.2 使用 ReportLab (PDF)

python
from reportlab.lib.pagesizes import A3
from reportlab.pdfgen import canvas
from reportlab.lib.colors import HexColor

# 创建 PDF
c = canvas.Canvas("artwork.pdf", pagesize=A3)
width, height = A3

# 绘制形状
c.setFillColor(HexColor('#2C3E50'))
c.rect(100, height-500, 400, 400, fill=1)

# 添加文字
c.setFont("Helvetica-Bold", 48)
c.setFillColor(HexColor('#1A1A1A'))
c.drawString(100, height-600, "DESIGN")

c.save()

5.3 字体使用

markdown
**重要**:搜索 `./canvas-fonts` 目录获取可用字体

字体选择原则:
- 使用不同字体创造视觉层次
- 字体本身成为艺术的一部分
- 如果艺术是抽象的,将字体带入画布,不只是数字排版
- 下载并使用任何需要的字体来实现愿景

6. 精炼流程

6.1 最终步骤

markdown
**重要**:用户已经说过 "还不够完美。必须是完美的杰作,
如同即将在博物馆展出。"

**关键**:精炼时,避免添加更多图形;而是精炼已有的,
使其极其清晰,完全尊重设计哲学和极简主义原则。

如果本能是调用新函数或绘制新形状,停下来问:
"如何让已有的更像一件艺术品?"

6.2 第二遍打磨

markdown
回到代码,进一步精炼/打磨,使其成为哲学设计的杰作。

检查清单:
- [ ] 所有元素对齐精确
- [ ] 色彩和谐统一
- [ ] 负空间使用得当
- [ ] 字体选择合适
- [ ] 整体构图平衡

7. 多页选项

7.1 当用户请求多页时

markdown
创建更多创意页面,沿着设计哲学但又独特不同。
将它们打包在同一个 PDF 或多个 PNG 中。

将第一页视为整本咖啡桌书中的一页。
使后续页面成为原作的独特变奏和记忆。
让它们几乎以非常有品味的方式讲述一个故事。
行使完全的创意自由。

8. 使用示例

8.1 触发方式

"帮我设计一张音乐节海报"
"创建一个极简主义艺术作品"
"设计一张品牌宣传图"
"create a poster for tech conference"
"make abstract art about nature"

8.2 输出

  1. 设计哲学 (.md 文件)
  2. 最终作品 (.pdf 或 .png 文件)

9. 本节小结

要点说明
哲学先行先定义美学方向,再创作
文字稀少作为视觉元素融入,而非信息载体
品质至上博物馆级别,专家级工艺
边界清晰无重叠,有呼吸空间
精炼优化第二遍打磨是必需的

返回:Skills 目录

基于 MIT 许可证发布。内容版权归作者所有。