Lemo-Opuscar Short Film Director
lemomo-ai/lemo-opuscar
Directs a short film made entirely in code in one of the Lemo-Opuscar library's named visual styles, from fetching the library through production and delivery.
Helps design, write and verify hash-seeded long-form generative art for onchain mint platforms and screen-based venues, covering determinism, rarity and plotter output.
$ npx skills add camilleroux/genart-skill --skill genart -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install camilleroux/genart-skill genart --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/camilleroux/genart-skill.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/genart .claude/skills/genart && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "genart" agent skill from https://github.com/camilleroux/genart-skill/tree/main/skills/genart into .claude/skills/genart/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "genart", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/camilleroux/genart-skill/tree/main/skills/genartType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add camilleroux/genart-skill --skill genart -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install camilleroux/genart-skill genart --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/camilleroux/genart-skill.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/genart .agents/skills/genart && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "genart" agent skill from https://github.com/camilleroux/genart-skill/tree/main/skills/genart into .agents/skills/genart/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "genart", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add camilleroux/genart-skill --skill genart -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install camilleroux/genart-skill genart --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/camilleroux/genart-skill.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/genart .cursor/skills/genart && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "genart" agent skill from https://github.com/camilleroux/genart-skill/tree/main/skills/genart into .cursor/skills/genart/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "genart", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/camilleroux/genart-skill.git --path skills/genart--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add camilleroux/genart-skill --skill genart -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install camilleroux/genart-skill genart --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/camilleroux/genart-skill.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/genart .gemini/skills/genart && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "genart" agent skill from https://github.com/camilleroux/genart-skill/tree/main/skills/genart into .gemini/skills/genart/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "genart", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install camilleroux/genart-skill genartInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add camilleroux/genart-skill --skill genart -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/camilleroux/genart-skill.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/genart .github/skills/genart && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "genart" agent skill from https://github.com/camilleroux/genart-skill/tree/main/skills/genart into .github/skills/genart/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "genart", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add camilleroux/genart-skill --skill genart -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install camilleroux/genart-skill genart --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/camilleroux/genart-skill.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/genart .opencode/skills/genart && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "genart" agent skill from https://github.com/camilleroux/genart-skill/tree/main/skills/genart into .opencode/skills/genart/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "genart", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
genartHelps design, write and verify hash-seeded long-form generative art for onchain mint platforms and screen-based venues, covering determinism, rarity and plotter output.
The skill lays out default practices for a generative edition where one algorithm produces every output from a hash handed over at mint time, each with a stated exception: variation should come from the hash alone unless the piece deliberately reads live onchain state; one seeded PRNG should consume values in a fixed order, though named sub-streams let you add a draw without shifting the whole edition; and sizes should stay relative to the canvas unless the piece is deliberately adaptive. The platform's render-done signal must always be emitted, since a blank thumbnail is a failure with no upside.
Breaking a default has to be the artist's explicit, documented choice, never an accident. The skill is told to point out what breaking a given default costs and then do what the artist asked, rather than refuse the request or lecture about it.
Separate reference files cover each supported platform, including Art Blocks, 256ART, Verse, Highlight, Plottables, bootloader.art, Artpoint and self-hosted drops, plus determinism, features and rarity design, resolution-agnostic rendering, debug and export tooling, pre-mint verification, and an ethics section that opens by ruling out ever reproducing a named living artist's signature work.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit e80ef8a. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
nodeFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
github.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Generative Art for Onchain Platforms loads about 1.9k tokens when it runs, and up to ~12k if it reads all its reference files. Until then it costs about 203 tokens; SKILL.md has 884 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from camilleroux/genart-skill at commit e80ef8a, republished under its MIT licence (© camilleroux). 884 words, ~1,924 tokens.
.claude/skills/genart/SKILL.md (or your agent's skills folder). This skill also uses 15 other files; get the full folder from GitHub.Help design, write and check long-form generative artworks — pieces where one algorithm produces a whole edition, each output derived from a hash the blockchain hands you at mint time.
These are defaults that work most of the time, not rules. Every one of them has legitimate counter-examples, and those are often the interesting pieces. State the default, then state what breaking it costs.
| Default | Breaking it is legitimate when… |
|---|---|
| All variation comes from the hash | The piece deliberately reads live onchain state (owner, block data). It is then no longer reproducible from the hash alone — own that choice and document it |
| One seeded PRNG, fixed consumption order | Almost never. But named sub-streams let you add a draw without shifting the whole edition — that is how you get flexibility without breaking the property |
| No network, no CDN, no system fonts | Some platforms have an explicit external-asset mode, under their own rules |
| No wall clock | The piece is about time passing, or is genuinely interactive. The preview render must stay stable regardless |
| Sizes relative to the canvas dimension | The piece is deliberately adaptive and reveals more detail with more room. A choice, not an accident — then know what size it will be captured at |
| Runs on current browsers and devices — Chrome, Firefox, Safari, mobile included | A piece built on a bleeding-edge API (WebGPU…) or needing real GPU power is a choice: state the requirement, keep the preview/capture path rendering everywhere, and remember collectors open links on phones |
| Emit the platform's render-done signal | Never. A blank thumbnail is a failure with no upside |
| Features computed before render, from the seed only | Where the platform computes features outside a browser, it is required. Elsewhere it is a convenience |
| Debug code is stripped from the submitted build | Where code is stored unminified and readable onchain, formatting is part of the work |
| Never claim "it's deterministic" without testing it, and without stating the scope | Never |
The firm part: breaking a default must be the artist's explicit choice, never an accident. Point out the deviation, explain what it costs, then do what the artist asked. Do not refuse and do not lecture.
<artist>", decline that
framing and offer the underlying technique instead.Full version: references/ethics.md.
Platform APIs change and the fiches in references/platforms/ deliberately hold
no versions, no numbers and no field names — only the stable mental model, the
canonical URLs and the questions to ask.
So the sequence is always: open the fiche → fetch the URLs it lists → then write code. Never write platform-specific code from memory, and never from the fiche alone. If a doc is unreachable, say so and flag what could not be confirmed.
| Target | Fiche |
|---|---|
| Art Blocks (incl. Engine / Flex) | references/platforms/artblocks.md |
| 256ART | references/platforms/256art.md |
| Verse | references/platforms/verse.md |
| Highlight | references/platforms/highlight.md |
| Plottables (pen plotter, AB Engine) | references/platforms/plottables.md |
| bootloader.art — ask which bootloader | references/platforms/bootloader.md |
| Self-hosted / no platform | references/platforms/self-hosted.md |
| Artpoint — art on screen, you deliver a video, not code | references/platforms/artpoint.md |
| Undecided between two | references/platforms/comparison.md |
| When the question is about… | Read |
|---|---|
| Seeding from a hash, PRNG choice, sub-streams, distributions, things that silently break reproducibility | references/determinism.md |
| Output that changes with canvas size, stroke weights, noise frequency, element density, print or plotter output | references/resolution.md |
| Designing traits, rarity tables, weights, distribution that came out wrong | references/features.md |
| Originality, attribution, licences, disclosing AI use | references/ethics.md |
| Debug panel, param tweaking, keyboard shortcuts, PNG and video export, contact sheets | references/tooling.md |
| "Is my sketch actually deterministic?", pre-mint checking, what a test can and cannot prove | references/verification.md |
| Techniques, tutorials, libraries, inspiration, what other artists use | Fetch https://github.com/camilleroux/awesome-generative-art — a maintained list; do not paraphrase it from memory |
Two scripts ship with the plugin and run in place — never copy them into a
project. They need Playwright installed in the artist's project and print the
install command if it is missing. Contract and details: references/verification.md.
| Command | Does |
|---|---|
node "$CLAUDE_PLUGIN_ROOT/scripts/check.mjs" <dir> | Determinism: repeatability, distinctness, global-state contamination, feature stability |
node "$CLAUDE_PLUGIN_ROOT/scripts/render.mjs" <dir> --hash 0x… | One PNG — render it, then look at it with Read before judging any visual change |
node "$CLAUDE_PLUGIN_ROOT/scripts/render.mjs" <dir> --grid N | Contact sheet, hash + features under each tile |
node "$CLAUDE_PLUGIN_ROOT/scripts/render.mjs" <dir> --census N --edition-size E | Real feature distribution vs the rarity table |
node "$CLAUDE_PLUGIN_ROOT/scripts/render.mjs" <dir> --batch N --size 2400 | N individual full-res PNGs, hash-named — portfolio/print export |
When asked to change how a piece looks, close the loop yourself: edit → render one hash → Read the PNG → judge → adjust. Do not describe a visual change you have not looked at.
references/platforms/comparison.md. Once decided,
open its fiche and fetch its docs before writing anything.render.mjs --grid exists for this.check.mjs, then references/verification.md for
what the green result does and does not prove.© camilleroux, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 15 other files (references) in skills/genart of camilleroux/genart-skill.
Open the folder on GitHubat commit e80ef8a
Generative Art for Onchain Platforms next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Generative Art for Onchain Platforms this skillcamilleroux/genart-skill | 147 | — | ~1.9k | Automated safety check: Pass | MIT | |
| Lemo-Opuscar Short Film Directorlemomo-ai/lemo-opuscar | 1.4k | — | ~596 | Automated safety check: Pass | Custom licence | |
| Painted Animationtuzhechen2005/opus-video-skills | 137 | 1 repos | ~1.9k | Automated safety check: Pass | Custom licence | |
| Awwwards-Level React AnimationsHainrixz/editor-pro-max | 264 | — | ~4.4k | Automated safety check: Pass | Custom licence | |
| Image to Three.js Modelimg2threejs/img2threejs | 18k | 1 repos | ~8.2k | Automated safety check: Pass | Apache-2.0 | |
| Algorithmic Art with p5.jsanthropics/skills | 180k | 38 repos | ~4.9k | Automated safety check: Pass | Apache-2.0 |
lemomo-ai/lemo-opuscar
Directs a short film made entirely in code in one of the Lemo-Opuscar library's named visual styles, from fetching the library through production and delivery.
tuzhechen2005/opus-video-skills
Make hand-painted watercolour-and-ink cartoon videos (MP4) with code — p5.js + p5.brush rendered frame by frame in headless Chrome, encoded with ffmpeg — starring Clawd or any character.
Hainrixz/editor-pro-max
Guides React animation work with GSAP, Motion, Anime.js and Lenis for scroll effects, page transitions, text effects and generative visuals, with a library decision table.
img2threejs/img2threejs
Rebuilds the object in a reference image as a procedural, animation-ready Three.js model written entirely in code, using staged sculpting with quality checks.
anthropics/skills
Creates original generative art in two steps: a written algorithmic philosophy, then a p5.js sketch with seeded randomness and an interactive viewer for exploring parameters.
anthropics/skills
Creates original posters and static art as PNG or PDF by first writing a short design philosophy, then expressing it visually on a canvas.
Works with
Categories
Helps design, write and verify hash-seeded long-form generative art for onchain mint platforms and screen-based venues, covering determinism, rarity and plotter output. The skill lays out default practices for a generative edition where one algorithm produces every output from a hash handed over at mint time, each with a stated exception: variation should come from the hash alone unless the piece deliberately reads live onchain state; one seeded PRNG should consume values in a fixed order, though named sub-streams let you add a draw without shifting the whole edition; and sizes should stay relative to the canvas unless the piece is deliberately adaptive. The platform's render-done signal must always be emitted, since a blank thumbnail is a failure with no upside.
Generative Art for Onchain Platforms fits situations like: writing a hash-seeded sketch for an onchain mint platform; designing a feature and rarity system for a generative edition; checking a sketch's determinism and render-done signal before minting; exporting a generative piece as SVG for a plotter or as video for a screen channel.
Run `npx skills add camilleroux/genart-skill --skill genart -a claude-code`. Or copy the skill folder (skills/genart in camilleroux/genart-skill) into .claude/skills/genart in your project. Claude Code loads it when a task matches its description.
Run `npx skills add camilleroux/genart-skill --skill genart -a codex`. Or copy the skill folder (skills/genart in camilleroux/genart-skill) into .agents/skills/genart in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add camilleroux/genart-skill --skill genart -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/genart, .gemini/skills/genart, .github/skills/genart and .opencode/skills/genart in your project.
Going by SKILL.md and its folder, Generative Art for Onchain Platforms needs the command-line tools its instructions call (node).
SKILL.md names 1 domain. As links in the text: github.com. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Generative Art for Onchain Platforms is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.9k tokens (SKILL.md is roughly 7.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 10k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Generative Art for Onchain Platforms: Lemo-Opuscar Short Film Director (lemomo-ai/lemo-opuscar, 1.4k stars), Painted Animation (tuzhechen2005/opus-video-skills, 137 stars), Awwwards-Level React Animations (Hainrixz/editor-pro-max, 264 stars) and Image to Three.js Model (img2threejs/img2threejs, 18k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
camilleroux (a GitHub user) maintains it in camilleroux/genart-skill, which has 147 GitHub stars. The repository was last updated on October 2, 2026.
Source: camilleroux/genart-skill on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.