Liquid✨ Premium

Deep Dream Pattern

Un plasma arc-en-ciel plein cadre : trois ondes sinus qui se croisent et dérivent dans le temps, converties en couleurs qui passent par tout le spectre et ondulent sans fin — calculé en direct sur un canvas 2D, 3,1 Ko de JavaScript, lissé sur écran Retina, en pause hors écran, image fixe si l'utilisateur réduit les animations.

CanvasPlasmaGeneratif

Mis à jour le

Cet effet fait partie d'Effect.Labs — 840 effets vanilla, une partie gratuite, une partie premium. Liquid comprend 31 effets, dont 6 gratuits. Découvrir la catégorie →

3 exemples d'usage

Affiche animée d'un festival de rock psychédélique — Deep Dream Pattern exemple 1

① Affiche animée d'un festival de rock psychédélique

QuandLe nom du festival, « Spirale Électrique », en grandes capitales au centre de l'affiche, sur le plasma ; les dates, le lieu et les groupes en dessous.
PourquoiLes ondes de couleurs saturées qui se déforment sont l'esthétique des affiches et des projections lumineuses de la fin des années 60.
RéglagesBloc plein cadre (position: absolute; inset: 0), aria-hidden="true" ; halo sombre ovale au centre (dégradé radial à 62 %) sous le titre ; titre en Arial Black 50 et 38 px, ombre décalée de 3 × 4 px.
Collection « Spirales & ondes » — bannière d'une boutique de t-shirts teints à la main — Deep Dream Pattern exemple 2

② Collection « Spirales & ondes » — bannière d'une boutique de t-shirts teints à la main

QuandLa bannière de la collection, titre et accroche sur le plasma en haut ; en dessous, trois t-shirts avec leur nom et leur matière.
PourquoiLes bandes de couleur qui ondulent rappellent les marbrures d'une teinture nouée, sans photo à charger : chaque t-shirt montre un motif différent à chaque instant.
RéglagesUn seul plasma plein cadre ; bandeau sombre du bas en SVG (fill-rule: evenodd) percé de trois silhouettes de t-shirt, à travers lesquelles le plasma passe comme une teinture ; titre en Georgia italique 34 px avec ombre portée.
Pourquoi voit-on des couleurs ? — borne d'accueil de la salle des couleurs d'un musée de l'optique — Deep Dream Pattern exemple 3

③ Pourquoi voit-on des couleurs ? — borne d'accueil de la salle des couleurs d'un musée de l'optique

QuandLa question en grand sur une carte sombre au centre de l'écran, le bouton « Commencer » dessous ; toutes les teintes du spectre défilent autour.
PourquoiLes décalages de 120° entre rouge, vert et bleu font passer tout le spectre dans le cadre : un support direct pour parler du mélange des couleurs.
RéglagesPlasma plein cadre ; bandeau du haut en noir à 72 % ; carte centrale de 360 px en noir à 74 %, coins de 18 px ; le bouton affiche la première réponse (script de scène).

Comment ça marche

Le bloc .fx-0418-root fait 300 px de haut et toute la largeur disponible. Il contient un <canvas class="ai-dream-canvas"> en display: block à 100 % de son conteneur : la hauteur vient du CSS de la racine et le canvas s'y cale (20 redimensionnements de suite, 0 px de dérive, Chromium et Firefox). Malgré son nom, l'effet n'utilise ni réseau de neurones, ni fractale, ni « deep dream » : c'est un plasma, une figure classique de la démo graphique, faite d'une somme de fonctions sinus. Le nom reste celui du catalogue.

Pour chaque point, le script ramène la position sur une échelle de 0 à 4 (nx, ny) et additionne trois ondes : sin(3·nx + t) · cos(2·ny + 0,7·t), un damier de cellules qui glissent ; sin(3·√(nx² + ny²) − t), des anneaux qui partent du coin haut gauche ; cos(nx·ny + 0,5·t), des bandes courbes. Leur moyenne v, entre -1 et 1, donne la couleur : rouge, vert et bleu valent 128 + 127 · sin(π·v + décalage), avec des décalages de 0, 120 et 240° qui glissent eux aussi dans le temps à trois vitesses (t, 0,7·t, 0,3·t). Une même valeur de v change donc de teinte au fil des secondes : le cadre passe par tout le spectre. Le temps t avance de 0,01 par image, soit un tour complet des couleurs en environ 630 images (10 s à 60 Hz).

Le calcul se fait sur une grille d'un point pour 2 × 2 pixels CSS, dans un petit canvas hors de la page (320 × 150 pour un bloc de 640 × 300), puis cette image est agrandie avec lissage sur le canvas visible, à la densité de l'écran (jusqu'à 2) : les dégradés restent continus, sans marches, et l'écran Retina ne coûte pas plus de calcul. Mesuré par image : 2,8 ms dans Chromium, 3 ms dans Firefox et 1 ms dans WebKit à 640 × 300 ; 9, 9 et 4 ms à 1 200 × 500. La boucle se met en pause dès que le bloc sort de l'écran (IntersectionObserver, 0 image calculée, mesuré) et quand l'onglet est caché. Le script anime chaque .fx-0418-root de la page séparément.

Accessibilité

  • Mouvement réduit : sous prefers-reduced-motion: reduce, la boucle ne démarre pas : le canvas affiche une seule image du plasma (au temps 0). Mesuré dans Chromium, Firefox et WebKit : 0 % de pixels qui changent en 500 ms. Sans cette préférence, tout le cadre change en continu (100 % des pixels en 500 ms) : réservez l'effet à un fond court ou à une zone que le visiteur peut faire défiler.
  • Lisibilité : le plasma passe du jaune très clair au bleu nuit en quelques secondes, sous le même texte. Aucune couleur de texte ne tient seule : posez le texte sur un panneau sombre à 70 % ou plus, ou donnez-lui une ombre portée épaisse, comme les trois exemples.
  • Couleurs saturées en mouvement : de grandes surfaces très saturées qui changent sans cesse peuvent gêner certaines personnes sensibles aux stimulations visuelles. Le changement reste lent (aucun clignotement : une couleur met plusieurs secondes à céder la place), mais évitez de l'étendre à toute une page de lecture.
  • Contenu décoratif : le canvas ne porte aucune information. Ajoutez aria-hidden="true" sur la racine quand le plasma sert de fond, comme dans les exemples.

Compatibilité navigateur

Canvas 2D (createImageData, putImageData, drawImage avec lissage), ResizeObserver, IntersectionObserver, matchMedia : 3,1 Ko de JavaScript, aucune dépendance. Mesuré dans Chromium 151, Firefox 153 et WebKit 26 : même plasma, canvas à 1 280 × 600 sur écran Retina, pause hors écran, image fixe sous mouvement réduit, 0 erreur. Le temps avance par image affichée : sur un écran à 120 Hz, les couleurs défilent deux fois plus vite qu'à 60 Hz.

Chrome 64+✓ Complet
Firefox 69+✓ Complet
Safari 13.1+✓ Complet
Edge 79+✓ Complet
Mobile iOS 13.4+✓ Complet
Android Chrome 64+✓ Complet

Sans ResizeObserver, le script suit l'événement resize de la fenêtre ; sans IntersectionObserver, la boucle continue hors écran. Sans JavaScript, le bloc reste un rectangle sombre (#0a0a0f) : prévoyez un dégradé de secours sur .ai-dream-container si le fond doit rester coloré.

Le code

Structure HTML à coller dans votre page (le CSS + JS sont inclus avec votre achat) :

index.html — structure
<div class="fx-0418-root">
  <div class="ai-dream-container">
    <canvas class="ai-dream-canvas"></canvas>
  </div>
</div>

Paiement unique, sans abonnement — le code est à toi pour toujours

Personnaliser

Options passées à l'API ou attributs data-* :

Option / propriétéDéfautEffet
Vitesse (JS — time += 0.01) 0,01 par image : un tour de couleurs en 10 s environ à 60 Hz 0.004 pour un fond lent derrière un texte long ; 0.02 pour une affiche plus nerveuse.
Taille des motifs (JS — x / w * 4 et y / h * 4) 4 2 donne de grandes nappes de couleur ; 8, des motifs deux fois plus serrés. Changez les deux valeurs ensemble pour garder des motifs ronds.
Intensité des couleurs (JS — 128 + 127 * Math.sin(…), trois lignes) de 1 à 255 sur chaque canal 190 + 60 * Math.sin(…) donne un plasma pastel, plus facile à couvrir de texte ; 60 + 60 * Math.sin(…), un plasma sombre.
Palette (JS — décalages 2.094 et 4.188) 0, 120 et 240° : tout le spectre Des décalages proches (0.6 et 1.2) resserrent la palette sur quelques teintes voisines.
Finesse du calcul (JS — y += 2, x += 2, w / 2, h / 2 et les deux * 2 de drawImage) un point calculé pour 2 × 2 pixels CSS Passez ces six 2 à 4 pour un calcul 4 fois moins coûteux, utile sur un grand bandeau : le lissage garde des dégradés continus, à peine plus doux.
Hauteur (CSS — height de .fx-0418-root) 300px Le canvas suit la hauteur du bloc. Pour un fond de bannière, placez la racine en position: absolute; inset: 0.

FAQ

Non. Malgré son nom, Deep Dream Pattern ne fait appel à aucun modèle d'IA et ne dessine aucune fractale (aucun motif ne se répète en plus petit). C'est un plasma : trois ondes sinus additionnées, dont la somme est traduite en couleur. Tout le calcul tient dans une seule fonction de quelques lignes, sans dépendance ni donnée chargée.
Fluid Gradient est en CSS pur : quatre taches de couleur floutées à 40 px tournent lentement en 15 s, dans une gamme indigo, violet et cyan. Deep Dream Pattern calcule chaque point en JavaScript et parcourt tout le spectre, avec des bandes et des anneaux plus nets. Choisissez Fluid Gradient pour un fond discret sans script ; Deep Dream Pattern pour un fond qui se remarque, coloré et changeant.
Le plasma est fait de dégradés doux : calculer un point sur quatre puis agrandir avec lissage donne à l'œil la même image, pour quatre fois moins de calcul. Sur écran Retina, l'agrandissement se fait directement à la densité de l'écran, donc sans coût de calcul en plus : 2,9 ms par image dans Chromium à 640 × 300, comme sur un écran standard.