Canvas Design Skill
SkillDocs & knowledgeCreate original visual design philosophies and express them as meticulously crafted, museum-quality PNG or PDF art with minimal text, generative art, data visualization, and abstract compositions.
Instructions available. Your AI can read the instructions. Execution depends on the setup they require.
Account requirements not reviewed. Check the skill instructions before use; ahel provides instructions and does not run this skill.
Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.
Then ask your AI: use the Canvas Design Skill skill
What this skill tells your AI
The instructions your AI receives, as published by bidewio/better-openclaw in skills/canvas-design/SKILL.md and read by ahel’s review.
When to use
- Creating generative art and abstract compositions
- Designing visual assets with HTML Canvas or SVG
- Building data visualizations as art
- Creating unique brand assets and illustrations
Canvas setup
const canvas = document.createElement("canvas");
const ctx = canvas.getContext("2d");
const dpr = window.devicePixelRatio || 1;
canvas.width = 1200 * dpr;
canvas.height = 800 * dpr;
canvas.style.width = "1200px";
canvas.style.height = "800px";
ctx.scale(dpr, dpr);
Composition patterns
Grid-based generative
const cols = 12, rows = 8;
const cellW = 1200 / cols, cellH = 800 / rows;
for (let x = 0; x < cols; x++) {
for (let y = 0; y < rows; y++) {
ctx.save();
ctx.translate(x * cellW + cellW / 2, y * cellH + cellH / 2);
ctx.rotate(Math.random() * Math.PI);
// Draw shape
ctx.fillStyle = `hsl(${200 + Math.random() * 60}, 70%, ${50 + Math.random() * 20}%)`;
ctx.fillRect(-cellW / 4, -cellH / 4, cellW / 2, cellH / 2);
ctx.restore();
}
}
Noise-based organic
// Use simplex/perlin noise for organic patterns
for (let x = 0; x < width; x += 2) {
for (let y = 0; y < height; y += 2) {
const n = noise(x * 0.005, y * 0.005);
const hue = 200 + n * 60;
ctx.fillStyle = `hsl(${hue}, 60%, ${40 + n * 30}%)`;
ctx.fillRect(x, y, 2, 2);
}
}
Export
// PNG
canvas.toBlob((blob) => {
const url = URL.createObjectURL(blob);
const a = document.createElement("a");
a.href = url; a.download = "artwork.png"; a.click();
}, "image/png");
// High-res: use 3x DPR for print-quality output
Design philosophy
- Constraint breeds creativity: Limit colors (3-5), shapes, and rules
- Randomness with structure: Random parameters within defined bounds
- Iteration: Generate many, curate the best
- Minimal text: Let the visual speak
Tips for AI Agents
- Ask about the desired mood, color palette, and output format.
- Generate multiple variations and let the user choose.
- Consider print resolution (300 DPI) for physical outputs.
Signals
- GitHub stars
- 58
- Forks
- 6
- Last commit
- Aug 2026
Advanced
- Item type
- skill
- Key
canvas-design-bidewio- Source
- github.com/bidewio/better-openclaw
github.com/bidewio/better-openclaw
Related picks
legacy-js
Skill · thedaviddias
The pick for JavaScriptmodern-javascript-patterns
Skill · wshobson
The pick for JavaScriptpdf-fill-studio
Skill · davila7
The pick for PDFpdf-explore
Skill · xuzhougeng
The pick for PDFcanvas-performance-optimization
Skill · 0xheycat
The pick for Canvassvg-optimization
Skill · thedaviddias
The pick for Svg
Skill · thedaviddias
The pick for JavaScriptmodern-javascript-patterns
Skill · wshobson
The pick for JavaScriptpdf-fill-studio
Skill · davila7
The pick for PDFpdf-explore
Skill · xuzhougeng
The pick for PDFcanvas-performance-optimization
Skill · 0xheycat
The pick for Canvassvg-optimization
Skill · thedaviddias
The pick for Svg