算法艺术创作
algorithmic-art
通过代码和可调参数创作生成艺术与交互式视觉效果。
generative-painting【设计与创意】Make hand-painted-looking generative paintings and short art films in code, in a chosen painting style — watercolour (translucent glazes, graphite and ink on paper, the "Beautiful Collisions" look), pointillism (Seurat-style divided-colour dots), charcoal with red conté, graphite or pen-and-ink sketch, woodcut / linocut print, or 2D cel animation — o…
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
One engine, several painting styles. Every film is a sequence of finished plates (paintings drawn once by code, then held), edited with hard cuts, with rare deterministic particle motion and a quiet score. The style decides how a plate's drawing becomes paint, and it can be set per film or per plate.
All paths are relative to this skill's folder.
| Style | Look | Best for | Read |
|---|---|---|---|
watercolour | translucent glazes that bleed and mix like pigment; graphite and ink lines, hatching and speckle on varied paper; antique scientific illustration colliding with editorial design | botanical, archival, delicate or tactile subjects; pale papers, diagrams, grounds under text | styles/watercolour/STYLE.md |
pointillism | thousands of distinct divided-colour dabs; form, light and edges built from dot density and colour families | luminous, textural, "made of dots" work; forms that dissolve into points; repainting an existing film | styles/pointillism/STYLE.md |
charcoal | directional charcoal strokes and smudge on toothy paper, eraser highlights, one red conté accent | weight, tension, grief, aftermath, figures; things drawn on stroke by stroke | styles/charcoal/STYLE.md |
sketch | graphite hatching and searching contours, or crisp pen and ink; red pencil accent | calm openings, notes, diagrams, cracks, counts; draw-on | styles/sketch/STYLE.md |
woodcut | relief print: standing ink, carved paper, gouged greys, a misregistered red block, wood grain | force, violence, declaration: lightning, a charge, a hammer, stairs | styles/woodcut/STYLE.md |
cel | 2D animation: flat paint, hard cel shadow, thick-thin ink line, line boil on twos | gauges, clocks, machines, impacts; anything with moving parts | styles/cel/STYLE.md |
| mixed | any of the above chosen per plate, switched at cuts | montages about variety or change, emotional arcs, launches | references/choosing-and-mixing-styles.md |
Look at each style's examples/ before choosing. If the user doesn't name a style:
references/choosing-and-mixing-styles.md has the decision table and the rules for when a cut should change material.
Run scripts/new-film.sh --list to see the installed styles. New styles plug in without changing the engine (references/adding-a-style.md).
references/editing.md:
references/experimenting.md says what is fixed and what to vary.scripts/new-film.sh --style <style> <project-dir> <film-id>, then npm run export once to confirm the machine works. Each style's demo exercises every feature.src/scenes/ and register it in src/scenes/index.js.styles/<style>/scene-library/; the recipes copy straight in, and any scene works in any style.references/drawing-kit.md. Build silhouettes before texture.npm run plates -- --only <id>, then look at out/<film>/plates/<id>.png at full size.PLATES[id].material (profile, coverage, dot size).PLATES[id].style per plate.STYLE.md.dust, radial, school or jelly particles (references/editing.md → Motion). The replay materials also have motion of their own: draw-on (the drawing appears stroke by stroke) and boil (the hand-drawn 2D line). See references/motion-in-the-medium.md.references/sound.md). Each shot declares a sound character.npm run export. It refuses to finish if any check fails.python3 tools/cut_audit.py out/<film>.references/verifying.md.A single painting is the same flow with one shot covering all frames; the deliverable is the plate PNG from npm run plates.
16:9, on-screen text or characters: plates can be any size (plateSetup(…, 1920, 864)). Read references/widescreen-and-titles.md for the compositor, the phrase track, glyph-mask contrast, locked fonts and pixel characters.
p.random/k.R) so a plate's seed controls it. Never use Math.random() in a scene.references/widescreen-and-titles.md), never text painted into plates.| Path | Contents |
|---|---|
engine/ | the runnable project copied into every film: src/ (capture, pointillism, materials/ charcoal · sketch · woodcut · cel, kit, sea, ocean, particles, renderer, scores), scripts/export.mjs, tools/ (cut audit, ΔE, playback check) |
styles/<style>/STYLE.md | how the style looks, how its material works, how it mixes, its hard rules |
styles/<style>/demo/ | the style's demo film.js and scenes (used by new-film.sh) |
styles/<style>/scene-library/ | finished paintings to copy and adapt |
styles/<style>/examples/ | contact sheets of finished films |
styles/_template/ | the starting point for a new style |
styles/watercolour/style-dna.md, archetypes.md | palette families and composition archetypes |
styles/pointillism/material.md, translating.md | material parameters and calibration; repainting a film |
references/choosing-and-mixing-styles.md | which style for which brief; when a cut changes material |
references/motion-in-the-medium.md | draw-on (with drawOnTail) and line boil |
references/experimenting.md | invariants versus style laws versus defaults; the dials worth changing first |
references/editing.md | rhythm, cut rule, archetypes, motion |
references/drawing-kit.md | the drawing kit, p5.brush behaviour, determinism rules |
references/widescreen-and-titles.md | 16:9 at 1080p, phrase tracks, text contrast, fonts, pixel characters |
references/sound.md | score characters and seeds |
references/verifying.md | automated checks, compression, audit, review checklist |
references/adding-a-style.md | how to add a new painting style |