跳到主要内容
哒哒星球DADA PLANET

Skill · 已公开版本

algorithmic-art · 用代码画可调的生成艺术

用 p5.js 做粒子、流场等生成艺术,保留随机种子和参数,方便继续调画面。

先看看示例

作者提供的示例,实际效果取决于你的输入和使用工具。

输入

视觉:深蓝底、浅色短线像风场;画布 600×400;种子 42;参数为采样间距与噪声尺度。

输出

编辑示例 · 未运行

const seed = 42;
function setup() {
  createCanvas(600, 400); pixelDensity(1);
  randomSeed(seed); noiseSeed(seed);
  background("#142238"); stroke("#b7d7e8");
  const gap = 16, scale = 0.006;
  for (let y=20; y<height-20; y+=gap) {
    for (let x=20; x<width-20; x+=gap) {
      const a = noise(x*scale, y*scale) * TWO_PI * 2;
      line(x, y, x+cos(a)*10, y+sin(a)*10);
    }
  }
  noLoop();
}

后续控件:seed、gap、scale;每次变更先清画布再重绘。

方法说明

用 p5.js 做粒子、流场等生成艺术,保留随机种子和参数,方便继续调画面。

具体任务

绘制可复现的风向粒子线:用 p5.js 做粒子、流场等生成艺术,保留随机种子和参数,方便继续调画面。

建立参数探索界面:提供种子、重置和导出控件,用参数影响图形关系而非随机堆叠效果。

必需材料

希望表达的视觉方向

尺寸、颜色和可调参数

可选材料

参考情绪板

导出需求

使用门槛

能在浏览器运行 p5.js 并检查不同参数与随机种子的结果。

这个 Skill 额外提供的方法

用固定种子保证可复现,再开放少量有意义的参数,让作品可以探索而非只得到一张图。

编辑示例(未运行)

绘制可复现的风向粒子线

任务:请根据下面的示例材料完成绘制可复现的风向粒子线,把判断依据和待确认事项写清楚。

输入:
视觉:深蓝底、浅色短线像风场;画布 600×400;种子 42;参数为采样间距与噪声尺度。

结果片段:
```javascript
const seed = 42;
function setup() {
  createCanvas(600, 400); pixelDensity(1);
  randomSeed(seed); noiseSeed(seed);
  background("#142238"); stroke("#b7d7e8");
  const gap = 16, scale = 0.006;
  for (let y=20; y<height-20; y+=gap) {
    for (let x=20; x<width-20; x+=gap) {
      const a = noise(x*scale, y*scale) * TWO_PI * 2;
      line(x, y, x+cos(a)*10, y+sin(a)*10);
    }
  }
  noLoop();
}
```

后续控件:seed、gap、scale;每次变更先清画布再重绘。

用固定种子保证可复现,再开放少量有意义的参数,让作品可以探索而非只得到一张图。 该片段是编辑示例,用于说明交付形态,未运行上游技能。

首次任务

请使用「用代码画可调的生成艺术」完成「绘制可复现的风向粒子线」。
任务要求:用固定种子保证可复现,再开放少量有意义的参数,让作品可以探索而非只得到一张图。

我的必需材料:
- 希望表达的视觉方向:[请填写或粘贴]
- 尺寸、颜色和可调参数:[请填写或粘贴]

请基于上述实际材料输出:可在浏览器打开的 HTML/JavaScript 作品、参数控件和种子设置。缺少依据的地方单列为待确认,不编造事实;未执行的操作或测试明确标为未执行。

验收要求:
1. 相同种子与参数得到相同构图。
2. 参数范围不会让浏览器明显失去响应。
3. 重置和导出与当前画布状态一致。

验收方法

相同种子与参数得到相同构图

参数范围不会让浏览器明显失去响应

重置和导出与当前画布状态一致

依赖与准备

需浏览器与 p5.js;来源提供交互页面模板,外部脚本加载受网络与 CSP 影响,可按项目允许方式本地托管依赖。

使用边界

创作应为原创算法表达,不能照搬在世艺术家的具体作品。

浏览器性能和导出尺寸存在约束,大量粒子需控制计算负载。

排错

每次刷新构图都不一样:同时固定 randomSeed 与 noiseSeed,并排除时间相关输入。

滑动参数页面卡死:减少粒子或采样密度,对高频输入节流并避免重复动画循环。

固定来源

https://github.com/anthropics/skills/blob/34040c9c568585f6929bedeaad110ad08f079624/skills/algorithmic-art/SKILL.md