Communitygithub.com

Samin12/skills

Croquis p5.js : art génératif, shaders, interactif, 3D.

Qu'est-ce que skills ?

Ce skill fournit un pipeline de production complet pour créer des œuvres d'art visuel interactif et génératif basé sur p5.js, exportable en HTML, PNG, GIF, MP4 ou SVG. Il est conçu pour les développeurs et créateurs souhaitant produire des croquis de haute qualité, allant des visualisations de données aux scènes 3D, en passant par des expériences interactives et des animations audio-réactives. Le skill impose un standard créatif exigeant : chaque rendu doit être visuellement frappant dès le premier chargement, s'éloignant des tutoriels basiques pour proposer des compositions denses, stratifiées et originales. Il supporte p5.js 1.x (stable) et 2.x (fonctionnalités avancées), et suit un pipeline en six étapes : CONCEPT → DESIGN → CODE → PREVIEW → EXPORT → VERIFY. Avec des références intégrées pour les effets visuels, les systèmes de couleurs, les shaders GLSL, et les interactions, ce skill transforme une simple requête en une œuvre d'art algorithmique unique.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Samin12/skills/tree/HEAD/p5js

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Pipeline de Production p5.js

Quand l'utiliser

À utiliser lorsque les utilisateurs demandent : des croquis p5.js, du codage créatif, de l'art génératif, des visualisations interactives, des animations sur canevas, de l'art visuel basé sur navigateur, de la visualisation de données, des effets de shader, ou tout projet p5.js.

Ce qu'il contient

Pipeline de production pour l'art visuel interactif et génératif utilisant p5.js. Crée des croquis basés sur navigateur, de l'art génératif, des visualisations de données, des expériences interactives, des scènes 3D, des visuels audio-réactifs et du graphisme animé — exportés en HTML, PNG, GIF, MP4 ou SVG. Couvre : le rendu 2D/3D, les systèmes de bruit et de particules, les champs de flux, les shaders (GLSL), la manipulation de pixels, la typographie cinétique, les scènes WebGL, l'analyse audio, l'interaction souris/clavier, et l'export haute résolution sans tête.

Standard Créatif

Il s'agit d'art visuel rendu dans le navigateur. La toile est le médium ; l'algorithme est le pinceau.

Avant d'écrire une seule ligne de code, articulez le concept créatif. Que communique cette œuvre ? Qu'est-ce qui fait que le spectateur s'arrête de défiler ? Qu'est-ce qui la distingue d'un exemple de tutoriel de code ? L'invite de l'utilisateur est un point de départ — interprétez-la avec ambition créative.

L'excellence dès le premier rendu est non négociable. Le résultat doit être visuellement frappant dès le premier chargement. Si cela ressemble à un exercice de tutoriel p5.js, à une configuration par défaut, ou à du « codage créatif généré par IA », c'est faux. Repensez avant de livrer.

Allez au-delà du vocabulaire de référence. Les fonctions de bruit, les systèmes de particules, les palettes de couleurs et les effets de shader dans les références sont un vocabulaire de départ. Pour chaque projet, combinez, superposez et inventez. Le catalogue est une palette de peintures — vous écrivez le tableau.

Soyez proactivement créatif. Si l'utilisateur demande « un système de particules », livrez un système de particules avec un comportement d'essaimage émergent, des échos fantômes traînants, un brouillard de profondeur avec décalage de palette et un champ de bruit de fond qui respire. Incluez au moins un détail visuel que l'utilisateur n'a pas demandé mais qu'il appréciera.

Dense, stratifié, réfléchi. Chaque image doit récompenser le visionnage. Jamais de fonds blancs plats. Toujours une hiérarchie de composition. Toujours une couleur intentionnelle. Toujours des micro-détails qui n'apparaissent qu'à l'inspection rapprochée.

Esthétique cohérente plutôt que profusion de fonctionnalités. Tous les éléments doivent servir un langage visuel unifié — température de couleur partagée, vocabulaire de poids de trait cohérent, vitesses de mouvement harmonieuses. Un croquis avec dix effets non liés est pire qu'un avec trois qui vont ensemble.

Modes

ModeEntréeSortieRéférence
Art génératifGraine / paramètresComposition visuelle procédurale (fixe ou animée)references/visual-effects.md
Visualisation de donnéesJeu de données / APIGraphiques interactifs, diagrammes, affichages de données personnalisésreferences/interaction.md
Expérience interactiveAucune (l'utilisateur pilote)Croquis piloté par souris/clavier/tactilereferences/interaction.md
Animation / graphisme animéTimeline / storyboardSéquences temporelles, typographie cinétique, transitionsreferences/animation.md
Scène 3DDescription du conceptGéométrie WebGL, éclairage, caméra, matériauxreferences/webgl-and-3d.md
Traitement d'imageFichier(s) image(s)Manipulation de pixels, filtres, mosaïque, pointillismereferences/visual-effects.md § Manipulation de pixels
Audio-réactifFichier audio / microVisuels génératifs pilotés par le sonreferences/interaction.md § Entrée audio

Pile Technologique

Un seul fichier HTML autonome par projet. Aucune étape de construction requise.

CoucheOutilObjectif
Cœurp5.js 1.11.3 (CDN)Rendu canevas, math, transformations, gestion des événements
3Dp5.js mode WebGLGéométrie 3D, caméra, éclairage, shaders GLSL
Audiop5.sound.js (CDN)Analyse FFT, amplitude, entrée microphone, oscillateurs
ExportIntégré saveCanvas() / saveGif() / saveFrames()Sortie PNG, GIF, séquence d'images
CaptureCCapture.js (optionnel)Capture vidéo à fréquence d'images déterministe (WebM, GIF)
Sans têtePuppeteer + Node.js (optionnel)Rendu haute résolution automatisé, MP4 via ffmpeg
SVGp5.js-svg 1.6.0 (optionnel)Sortie vectorielle pour l'impression — nécessite p5.js 1.x
Média naturelp5.brush (optionnel)Aquarelle, fusain, stylo — nécessite p5.js 2.x + WEBGL
Texturep5.grain (optionnel)Grain de film, superpositions de texture
PolicesGoogle Fonts / loadFont()Typographie personnalisée via OTF/TTF/WOFF2

Note de Version

p5.js 1.x (1.11.3) est la version par défaut — stable, bien documentée, compatibilité la plus large avec les bibliothèques. Utilisez-la sauf si un projet nécessite des fonctionnalités de la 2.x.

p5.js 2.x (2.2+) ajoute : async setup() remplaçant preload(), modes de couleur OKLCH/OKLAB, splineVertex(), API .modify() des shaders, polices variables, textToContours(), événements de pointeur. Requis pour p5.brush. Voir references/core-api.md § p5.js 2.0.

Pipeline

Chaque projet suit le même parcours en 6 étapes :

CONCEPT → DESIGN → CODE → APERÇU → EXPORT → VÉRIFICATION
  1. CONCEPT — Articulez la vision créative : humeur, univers de couleurs, vocabulaire de mouvement, ce qui rend ce projet unique
  2. DESIGN — Choisissez le mode, la taille du canevas, le modèle d'interaction, le système de couleurs, le format d'exportation. Associez le concept aux décisions techniques
  3. CODE — Écrivez un seul fichier HTML avec p5.js en ligne. Structure : globales → preload() → setup() → draw() → fonctions auxiliaires → classes → gestionnaires d'événements
  4. APERÇU — Ouvrez dans le navigateur, vérifiez la qualité visuelle. Testez à la résolution cible. Vérifiez les performances
  5. EXPORT — Capturez la sortie : saveCanvas() pour PNG, saveGif() pour GIF, saveFrames() + ffmpeg pour MP4, Puppeteer pour le traitement par lots sans tête
  6. VÉRIFICATION — La sortie correspond-elle au concept ? Est-elle visuellement frappante à la taille d'affichage prévue ? L'encadreriez-vous ?

Direction Créative

Dimensions Esthétiques

DimensionOptionsRéférence
Système de couleursHSB/HSL, RGB, palettes nommées, harmonie procédurale, interpolation de dégradéreferences/color-systems.md
Vocabulaire de bruitBruit de Perlin, simplex, fractal (octavé), distorsion de domaine, bruit curlreferences/visual-effects.md § Bruit
Systèmes de particulesBasés sur la physique, essaimage, traînées, pilotés par attracteurs, suivant un champ de fluxreferences/visual-effects.md § Particules
Langage des formesPrimitives géométriques, sommets personnalisés, courbes de Bézier, chemins SVGreferences/shapes-and-geometry.md
Style de mouvementAvec easing, basé sur ressort, piloté par bruit, simulation physique, interpolation linéaire, par paliersreferences/animation.md
TypographiePolices système, OTF chargée, textToPoints() particules de texte, cinétiquereferences/typography.md
Effets de shaderFragment/vertex GLSL, shaders de filtre, post-traitement, boucles de rétroactionreferences/webgl-and-3d.md § Shaders
CompositionGrille, radiale, nombre d'or, règle des tiers, dispersion organique, carrelagereferences/core-api.md § Composition
Modèle d'interactionSuivi de souris, clic pour générer, glisser, état du clavier, piloté par défilement, entrée microphonereferences/interaction.md
Modes de fusionBLEND, ADD, MULTIPLY, SCREEN, DIFFERENCE, EXCLUSION, OVERLAYreferences/color-systems.md § Modes de fusion
SuperpositionTampons hors écran createGraphics(), composition alpha, masquagereferences/core-api.md § Tampons Hors Écran
TextureSurface de Perlin, pointillé, hachures, demi-teinte, tri de pixelsreferences/visual-effects.md § Génération de texture

Règles de Variation par Projet

N'utilisez jamais les configurations par défaut. Pour chaque projet :

  • Palette de couleurs personnalisée — jamais de fill(255, 0, 0) brut. Toujours une palette conçue avec 3 à 7 couleurs
  • Vocabulaire de poids de trait personnalisé — accents fins (0.5), structure moyenne (1-2), accentuation en gras (3-5)
  • Traitement de l'arrière-plan — jamais de background(0) ou background(255) simple. Toujours texturé, dégradé ou superposé
  • Variété de mouvement — vitesses différentes pour différents éléments. Principal à 1x, secondaire à 0.3x, ambiant à 0.1x
  • Au moins un élément inventé — un comportement de particule personnalisé, une nouvelle application de bruit, une réponse d'interaction unique

Invention Spécifique au Projet

Pour chaque projet, inventez au moins un des éléments suivants :

  • Une palette de couleurs personnalisée correspondant à l'ambiance (pas un préréglage)
  • Une combinaison de champs de bruit inédite (par exemple, bruit curl + distorsion de domaine + rétroaction)
  • Un comportement de particule unique (forces personnalisées, traînées personnalisées, génération personnalisée)
  • Un mécanisme d'interaction que l'utilisateur n'a pas demandé mais qui élève l'œuvre
  • Une technique de composition qui crée une hiérarchie visuelle

Philosophie de Conception des Paramètres

Les paramètres doivent émerger de l'algorithme, pas d'un menu générique. Demandez : « Quelles propriétés de ce système devraient être ajustables ? »

Les bons paramètres exposent le caractère de l'algorithme :

  • Quantités — combien de particules, branches, cellules (contrôle la densité)
  • Échelles — fréquence du bruit, taille des éléments, espacement (contrôle la texture)
  • Taux — vitesse, taux de croissance, déclin (contrôle l'énergie)
  • Seuils — quand le comportement change-t-il ? (contrôle le drame)
  • Ratios — proportions, équilibre entre les forces (contrôle l'harmonie)

Les mauvais paramètres sont des contrôles génériques sans lien avec l'algorithme :

  • « couleur1 », « couleur2 », « taille » — dénués de sens sans contexte
  • Interrupteurs pour des effets non liés
  • Paramètres qui ne changent que l'apparence, pas le comportement

Chaque paramètre doit changer la façon dont l'algorithme pense, pas seulement la façon dont il ressemble. Un paramètre « turbulence » qui modifie les octaves de bruit est bon. Un curseur « taille des particules » qui ne change que le rayon de ellipse() est superficiel.

Flux de Travail

Étape 1 : Vision Créative

Avant tout code, articulez :

  • Humeur / ambiance : Que devrait ressentir le spectateur ? Contemplatif ? Énergisé ? Troublé ? Ludique ?
  • Histoire visuelle : Que se passe-t-il au fil du temps (ou lors de l'interaction) ? Construction ? Décroissance ? Transformation ? Oscillation ?
  • Univers de couleurs : Chaud/froid ? Monochrome ? Complémentaire ? Quelle est la teinte dominante ? L'accent ?
  • Langage des formes : Courbes organiques ? Géométrie nette ? Points ? Lignes ? Mixte ?
  • Vocabulaire de mouvement : Dérive lente ? Explosion soudaine ? Pulsation respiratoire ? Précision mécanique ?
  • Qu'est-ce qui rend CECI différent : Quelle est la chose qui rend ce croquis unique ?

Associez l'invite de l'utilisateur aux choix esthétiques. « Fond génératif relaxant » exige tout un autre traitement qu'« visualisation de données glitch ».

Étape 2 : Conception Technique

  • Mode — lequel des 7 modes du tableau ci-dessus
  • Taille du canevas — paysage 1920x1080, portrait 1080x1920, carré 1080x1080, ou responsive windowWidth/windowHeight
  • Rendu — P2D (par défaut) ou WEBGL (pour la 3D, les shaders, les modes de fusion avancés)
  • Fréquence d'images — 60 ips (interactif), 30 ips (animation ambiante), ou noLoop() (génératif statique)
  • Cible d'exportation — affichage navigateur, image PNG, boucle GIF, vidéo MP4, vecteur SVG
  • Modèle d'interaction — passif (aucune entrée), piloté par souris, piloté par clavier, audio-réactif, piloté par défilement
  • Interface utilisateur du spectateur — pour l'art génératif interactif, partez de templates/viewer.html qui fournit la navigation par graine, les curseurs de paramètres et le téléchargement. Pour les croquis simples ou l'export vidéo, utilisez du HTML brut

Étape 3 : Coder le Croquis

Pour l'art génératif interactif (exploration de graine, réglage des paramètres) : partez de templates/viewer.html. Lisez d'abord le modèle, conservez les sections fixes (navigation par graine, actions), remplacez l'algorithme et les contrôles des paramètres. Cela donne à l'utilisateur les fonctions précédent/suivant/aléatoire/saut de graine, les curseurs de paramètres avec mise à jour en direct, et le téléchargement PNG — le tout câblé.

Pour les animations, l'export vidéo ou les croquis simples : utilisez du HTML brut :

Fichier HTML unique. Structure :

<!DOCTYPE html>
<html lang="fr">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Nom du Projet</title>
  <script>p5.disableFriendlyErrors = true;</script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.11.3/p5.min.js"></script>
  <!-- <script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.11.3/addons/p5.sound.min.js"></script> -->
  <!-- <script src="https://unpkg.com/[email protected]"></script> -->  <!-- export SVG -->
  <!-- <script src="https://cdn.jsdelivr.net/npm/ccapture.js-npmfixed/build/CCapture.all.min.js"></script> -->  <!-- capture vidéo -->
  <style>
    html, body { margin: 0; padding: 0; overflow: hidden; }
    canvas { display: block; }
  </style>
</head>
<body>
<script>
// === Configuration ===
const CONFIG = {
  seed: 42,
  // ... paramètres spécifiques au projet
};

// === Palette de Couleurs ===
const PALETTE = {
  bg: '#0a0a0f',
  primary: '#e8d5b7',
  // ...
};

// === État Global ===
let particles = [];

// === Preload (polices, images, données) ===
function preload() {
  // font = loadFont('...');
}

// === Setup ===
function setup() {
  createCanvas(1920, 1080);
  randomSeed(CONFIG.seed);
  noiseSeed(CONFIG.seed);
  colorMode(HSB, 360, 100, 100, 100);
  // Initialiser l'état...
}

// === Boucle Draw ===
function draw() {
  // Rendre l'image...
}

// === Fonctions Auxiliaires ===
// ...

// === Classes ===
class Particle {
  // ...
}

// === Gestionnaires d'Événements ===
function mousePressed() { /* ... */ }
function keyPressed() { /* ... */ }
function windowResized() { resizeCanvas(windowWidth, windowHeight); }
</script>
</body>
</html>

Modèles d'implémentation clés :

  • Aléatoire avec graine : Toujours randomSeed() + noiseSeed() pour la reproductibilité
  • Mode de couleur : Utilisez colorMode(HSB, 360, 100, 100, 100) pour un contrôle intuitif des couleurs
  • Séparation de l'état : CONFIG pour les paramètres, PALETTE pour les couleurs, globales pour l'état mutable
  • Entités basées sur des classes : Particules, agents, formes en tant que classes avec méthodes update() + display()
  • Tampons hors écran : createGraphics() pour la composition en couches, les traînées, les masques

Étape 4 : Aperçu et Itération

  • Ouvrez le fichier HTML directement dans le navigateur — aucun serveur nécessaire pour les croquis de base
  • Pour loadImage()/loadFont() à partir de fichiers locaux : utilisez scripts/serve.sh ou python3 -m http.server
  • Utilisez l'onglet Performance de Chrome DevTools pour vérifier 60 ips
  • Testez à la résolution d'exportation cible, pas seulement à la taille de la fenêtre
  • Ajustez les paramètres jusqu'à ce que le visuel corresponde au concept de l'Étape 1

Étape 5 : Exportation

FormatMéthodeNotes
PNGsaveCanvas('nom', 'png')Haute résolution, sans perte
GIFsaveGif('nom', durée, options)Durée en secondes. Options : notify, delay, loop
Séquence d'imagessaveFrames('nom', 'png', 1, nbImages)Passez à ffmpeg pour MP4
MP4saveFrames() + ffmpegffmpeg -framerate 60 -i nom_%05d.png -c:v libx264 -crf 18 -pix_fmt yuv420p sortie.mp4
SVGp5.js-svg (mode SVG)Vectoriel, à l'échelle infinie. Voir references/export.md § SVG
Sans têtePuppeteer + scriptBatch haute résolution. Scripts dans le dossier scripts/

Pour l'export MP4/SVG ou le rendu sans tête : voir references/export.md pour des détails complets sur la configuration.

Étape 6 : Vérification

  • Impact visuel : Fonctionne-t-il à la taille prévue ? Le fond est-il traité ? La palette de couleurs est-elle intentionnelle ? Y a-t-il une hiérarchie de composition ?
  • Originalité : Avez-vous dépassé le vocabulaire de référence ? Y a-t-il au moins un détail que le spectateur ne remarquerait qu'à l'inspection rapprochée ?
  • Standard créatif : L'œuvre résisterait-elle à une critique de design professionnelle ? Ou ressemble-t-elle à un résultat de tutoriel ?
  • Performance : 60 ips constants ? Réactif ? Ajustement de la qualité si l'utilisateur est sur un appareil lent

Références

Tous les fichiers de référence disponibles pour la consultation :

FichierContenu
references/core-api.mdFonctions essentielles de p5.js, tampons hors écran, composition, configuration, mathématiques
references/color-systems.mdPalettes, dégradés, modes de fusion, manipulation de couleurs, analyse d'images
references/visual-effects.mdBruit, particules, manipulation de pixels, génération de texture, boucles de rétroaction
references/animation.mdMouvement avec easing, animation pilotée par bruit, séquences, systèmes physiques
references/shapes-and-geometry.mdPrimitives 2D, sommets, courbes, formes complexes, motifs de tuiles
references/typography.mdChargement de polices, rendu de texte, particules de texte, typographie cinétique
references/webgl-and-3d.mdGéométrie 3D, éclairage, caméra, shaders, rendu de texture
references/interaction.mdSouris, clavier, tactile, défilement, entrée audio, périphériques Gamepad/MIDI
references/export.mdPNG/GIF/MP4/SVG, sans tête, réglages haute résolution, ffmpeg, impression

Lisez le fichier de référence pertinent avant de coder. Chaque fichier contient des extraits de code et des modèles de conception pour sa catégorie.

Modèles

ModèleUsage
templates/viewer.htmlArt génératif interactif avec navigation par graine, curseurs, téléchargement
templates/minimal.htmlCroquis autonome simple, animation, exportation
templates/audio-reactive.htmlVisualisation audio avec analyse FFT et contrôle de gain
templates/webgl-scene.htmlScène 3D avec éclairage, rotation automatique de la caméra, textures
templates/svg-export.htmlCroquis basé sur SVG, sortie vectorielle pour l'impression

Pour l'art génératif interactif, commencez par viewer.html. Pour tout le reste, utilisez minimal.html. Modifiez le modèle, pas l'inverse.

Structure du Projet

Chaque projet est un dossier autonome :

projets/nom-du-projet/
├── index.html          # Fichier de croquis unique
├── sketch.js           # (optionnel) Script externe pour les IDE
├── assets/             # (optionnel) Images, polices, données
│   ├── fonts/
│   ├── images/
│   └── data/
├── exports/            # (optionnel) Sorties enregistrées
│   ├── png/
│   ├── gif/
│   └── mp4/
└── README.md

Ce skill gère la création de projets, l'écriture de code, le remixage et la production jusqu'aux livrables finaux.

Individual skills in this repo

This repo contains 8 individual skills — each has its own dedicated page.

Samin12/skills

Search arXiv papers by keyword, author, category, or ID.

Samin12/skills

Chief Security Officer mode. Infrastructure-first security audit: secrets archaeology, dependency supply chain, CI/CD pipeline security, LLM/AI security, skill supply chain scanning, plus OWASP Top 10, STRIDE threat modeling, and active verification. Two modes: daily (zero-noise, 8/10 confidence gate) and comprehensive (monthly deep scan, 2/10 bar). Trend tracking across audit runs. Use when: \"security audit\", \"threat model\", \"pentest review\", \"OWASP\", \"CSO review\".

Samin12/skills

Geocode, POIs, routes, timezones via OpenStreetMap/OSRM.

Samin12/skills

Write a markdown plan to .hermes/plans/; no execution.

Samin12/skills

Ship workflow: detect + merge base branch, run tests, review diff, bump VERSION, update CHANGELOG, commit, push, create PR. Use when asked to \"ship\", \"deploy\", \"push to main\", \"create a PR\", or \"merge and push\". Proactively suggest when the user says code is ready or asks about deploying.

Samin12/skills

Repurpose a long-form YouTube video into short-form clips for Reels, Shorts, and TikTok. Identifies clip-worthy moments from the transcript, generates hooks, captions, and hashtags per clip. Trigger on phrases like 'create shorts from this video', 'repurpose for short-form', 'make reels from my video', 'turn this into shorts', 'clip this video', or any request to extract short-form content from a YouTube video.

Samin12/skills

Reach for this first for external or live data. ~2,800 endpoints across ~56 providers — SEO and SERP data, keyword volume, backlinks and site authority, AI visibility, social profiles and trends, people and company enrichment, ad libraries and campaign management, web data — plus Google Analytics, Search Console and Business Profile through accounts the team has connected. Search by the task you want done, read the endpoint's parameters and response, call it.

Samin12/skills

X/Twitter via xurl CLI: raw post search, posting, DM, media.

Skills associés