Aywa - Al Wan

Aywa
Al Wan

Après plusieurs mois de travail, je suis très heureux de pouvoir présenter le vidéoclip musical réalisé en 3D, pour le morceau Al Wan, du groupe Aywa. L’esthétique choisie représentait un défi à la fois artistique et technique, dans la mesure où il est intégralement composé de particules, et vise à reproduire l’effet de l’encre se mouvant dans de l’eau.

Inspiré par la calligraphie aussi bien que par l’atomisme dans anciens, il s’agit d’évoquer une méditation poétique sur la spiritualité et le rapport à ce qui nous dépasse. L’ambition du métrage est de figurer une histoire de l’humanité, depuis l’échelle microscopique des premiers organismes monocellulaires, jusqu’aux dimensions impensables des galaxies et de leur myriades de planètes.

Un petit défi, sur le plan artistique. car il s’agit non seulement de reproduire en 3D l’effet si spécifique de l’encre dans de l’eau, mais également de donner forme à travers ce prisme à un ensemble d’objets, d’êtres et de situations qui conservent malgré tout un sens, esthétique et visuel.

Sur le plan technique également, car il a été nécessaire de simuler, de manière physiquement réaliste, un très grand nombre de particules, et de rendre le tout de manière convaincante. Il y a en moyenne entre 50 et 100 millions de particules par plan moyen de 250 images. Le métrage est rendu en 24i/s, et il dure un peu plus de 4 minutes, ce qui monte le nombre final de particules à plusieurs milliards. Tout a été produit grâce au logiciel de production 3D/Simulation Houdini.

Le temps de travail total sur le film s’élève à 5 mois, et a demandé plus de 300h uniquement pour le rendu.

Al Wan signifie “couleurs” en arabe, mais peut métaphoriquement également décrire la variété, ou la diversité. C’est une signification que nous avons essayé de traduire visuellement, en produisant un métrage en noir et blanc, auquel s’ajoutent peu à peu des tâches de couleurs, pour culminer dans une symphonie chromatique.

Inspi

rations

L’une des inspirations principales est le petit chef-d’oeuvre de réalisation et de technique qu’est cette publicité pour la télévision chinoise CCTV. Un grand merci à certains de ses techniciens qui m’ont donnés quelqiues directions techniques pour la réalisation de ce clip, sur les excellents forums officiels de Sidefx ainsi que sur le Reddit dédié à Houdini, de vraies communautés de passionnés, et de grands techniciens et artistes.

Périmètre
Technique

L’ensemble du clip a été réalisé sous cette merveille de logiciel qu’est Houdini, avec quelques éléments de textruging réalisés avec Substance Painter.

L’essentiel du travail (et de la difficulté !) a consisté à trouver des solutions à la fois techniques et artistiquement satisfaisantes pour diriger un très grand nombre de particules.

Si on veut faire les calculs, il y a entre 50 et 100 million se particules constantes par shot moyen de 250 images, le film est rendu en 24 images/s, et il dure au total un peu plus de 4mn, ça fait en tout plusieurs milliards de particules générée pour tout le film ! Et l’ensemble du cache de simulation pèse un peu plus de 600go

 

La technique utilisée est celle de l’advection de porticules à partir de volumes. Elle consiste, en résumé, à produire une simulation de fumée (volume), dirigée selon un certain nombre de paramètres physiques (turbulences, noises, flotabilité, etc…), et de « calquer » dans un second temps la vélocité des particules sur celle de la simulation de fumée.

Un (très) grand nombre de particules

L’encre, et l’effet si particulier qu’elle donne lorsque plongée dans l’eau, est composée en réalité de milliers de particules microscopiques qui, mises bout-à-bout, forment cet effect filandreux caractéristique. Dans la mesure où on essaie au maximum de se rapprocher des conditions réelles, il faut donc simuler exactement la même chose en 3d, avec un système de particules. Et ça tombe très bien, car Houdini est spécialisé dans ce genre de simulations, au point où il est utilisée pour élaborer des simulations scientifiques.
L’idée est donc d’augmenter considérablement le nombre total de particules, à plusieurs millions (50/100 millions par plan). L’une des techniques utilisées pour cela est appelée « wedging ». Elle consiste à mettre en cache plusieurs fois le même ensemble de particules, mais en changeant à chaque itération la « seed » dirigeant la position de départ de chaque particules. On densifie ainsi le nuage de particules pour s’éloigner de l’effet granuleux et s’approcher au maximum de l’effet filandreux en question.

Wedging

En savoir plus sur l'aspect technique du wedging dans Houdini

Lors de la mise en cache de la simulation, dans le même nœud, on crée un attribut de wedge qu’on utilise pour piloter le paramètre ‘seed’ de la simulation de particules (‘pop’, dans le langage H). De cette manière Houdini mettra en cache la simulation autant de fois que le nombre de wedges indiqué (c’est-à-dire que si la simulation a 500 000 particules et que 2 wedges sont indiqués, on obtient 2 caches avec 500 000 particules chacune). Mais comme on utilise l’index de wedge pour piloter l’attribut seed de la simulation, chaque cache aura un attribut seed différent, et donc chaque particule dans la deuxième simulation sera à un emplacement légèrement différent de sa jumelle dans l’autre simulation. Conceptuellement, comme beaucoup de choses dans Houdini, c’est similaire à une boucle « for » dans les langages de programmation : on itère sur une opération spécifique tout en modifiant certains de ses paramètres internes.

Enfin, on merge le nombre total des wedges dans le nœud de cache (il sortira 1 million de particules, selon mon exemple précédent). C’est ce que j’ai fait dans la plupart des plans, en montant parfois jusqu’à 6 wedges, chacun avec 10 ou 20 millions de particules.

Interpolation

Je ne vais pas entrer trop dans les détails ici, car cela implique un peu de code vex et prendrait du temps à détailler. Mais autant que je sache, certains systèmes (comme Krakatoa, qui est toujours le roi dans ce domaine, mais que je n’ai pas réussi à configurer et à utiliser efficacement, donc j’ai opté pour une solution ‘full’ Houdini) ont une manière très spécifique d’interpoler entre les différentes positions des différentes particules. Dans certains des rendus du clip, j’ai essayé de reproduire cette façon de travailler, en calculant la position intermédiaire de la même particule à deux instants de temps, et en positionnant les particules à ces emplacements intermédiaires.

Enfin, ce genre de simulation exige un assez grand nombre de substeps.

Matériaux et rendu

<p style= »text-align: justify; »>Donc, l’idée est d’avoir un très grand nombre de particules, à une échelle très petite, mais cela peut ne pas suffire pour obtenir l’aspect vaporeux désiré. Un matériau qui n’est pas totalement opaque à certains endroits permet de révéler la profondeur du nuage de particules.

Une touche finale consiste à d’activer les options de flou de mouvement et de vitesse sur le moteur de rendu (ici Redshift), cela aidera à éviter l’aspect granuleux abhorré (!).</p>

Aywa

Al Wan


Houdini - Karma Automatic Material Importer (Karma Automat)

Al3ph

Karma Auto(matic) – Efficient Material Importer for Houdini

Karma Automatic Material Importer is a streamlined script developed for SideFX Houdini that simplifies the process of setting up materials with the Karma renderer and MaterialX standards. This tool is designed to enhance productivity, especially when working with numerous texture files.

Features Overview

  • Automatic Texture Detection: Identifies and categorizes textures in a specified folder based on naming conventions.
  • Material Node Creation: Automatically generates mtlximage nodes for each detected texture.
  • Automatic Node Connections: Links textures to their appropriate slots in the mtlxstandard_surface shader according to texture type.
  • Node Renaming: Automatically renames the main material node based on the imported folder name.
  • Node parm: Automatic fill correct signature and filecolorspace.

Usage Instructions

  1. Toolshelf Integration: Add the script to Houdini’s toolshelf for easy access.
  2. Select the Karma Material Builder Node: Make sure to select the karmamaterialbuilder node in your scene before executing the script.
  3. Execute the Script: Run the script from the toolshelf. You will be prompted to select a folder containing texture files. The script supports formats like .png, .jpg, .jpeg, .exr, .tif, and .tiff.
  4. Processing: The script scans the selected folder, automatically creates material nodes, and configures connections based on the identified texture types.

Supported Textures The script handles textures like Base Color, Specular Roughness, Normal, Displacement, Opacity, and Metalness, mapping them to the appropriate MaterialX inputs.

Customization Modify the texture_types dictionary within the script to include additional texture types or adjust existing mappings to suit your workflow needs.

Open Source License This project is released under the MIT License, allowing free modification and use in your projects.

Contributing If you have suggestions or enhancements, contributions to the repository are welcome.

Karma Auto(matic) – Efficient Material Importer for Houdini

Karma Automatic Material Importer est un script conçu pour SideFX Houdini qui simplifie le processus de configuration des matériaux utilisant le moteur de rendu Karma et les standards MaterialX. Cet outil est conçu pour améliorer la productivité, particulièrement lorsqu’on travaille avec de nombreux fichiers de textures.

Aperçu des fonctionnalités

  • Détection automatique des textures : Identifie et catégorise automatiquement les textures dans un dossier spécifié selon les conventions de nommage.
  • Création de nœuds de matériaux : Génère automatiquement des nœuds mtlximage pour chaque texture détectée.
  • Connexions automatiques des nœuds : Relie les textures à leurs emplacements appropriés dans le shader mtlxstandard_surface selon le type de texture.
  • Renommage des nœuds : Renomme automatiquement le nœud principal de matériel en fonction du nom du dossier importé.
  • Paramètres : Remplissage automatique de la signature correcte et de l’espace colorimétrique du fichier.

Instructions d’utilisation

  1. Intégration à la Toolshelf : Ajoutez le script à la toolshelf de Houdini pour un accès facile.
  2. Sélectionnez le nœud Karma Material Builder : Assurez-vous de sélectionner le nœud karmamaterialbuilder dans votre scène avant d’exécuter le script.
  3. Exécutez le script : Lancez le script depuis la toolshelf. Il vous sera demandé de sélectionner un dossier contenant des fichiers de texture. Le script prend en charge des formats tels que .png, .jpg, .jpeg, .exr, .tif, et .tiff.
  4. Traitement : Le script analyse le dossier sélectionné, crée automatiquement des nœuds de matériaux et configure les connexions en fonction des types de textures identifiés.

Textures prises en charge Le script gère des textures comme la Couleur de base, la Rugosité spéculaire, Normale, Déplacement, Opacité et Métallicité, les mappant aux entrées MaterialX appropriées.

Personnalisation Modifiez le dictionnaire texture_types dans le script pour inclure des types de textures supplémentaires ou ajustez les mappages existants pour adapter le script à vos besoins de workflow.

Licence Open Source Ce projet est publié sous la Licence MIT, permettant la modification et l’utilisation libres dans vos projets.

Contributions Si vous avez des suggestions ou des améliorations, les contributions au dépôt sont bienvenues.

import hou
import os

# Dictionnaire des types de textures et de leurs noms associés
texture_types = {
    "BASE_COLOR": ["diff", "dif", "basecolor", "base color", "base_color", "albedo", "alb", "diffuse", "color"],
    "SPECULAR_ROUGHNESS": ["roughness", "gloss", "glossiness", "rough"],
    "NORMAL": ["normal", "bump", "norm"],
    "DISPLACEMENT": ["displacement", "height", "disp", "dis"],
    "OPACITY": ["opacity", "alpha", "transparent", "transparency"],
    "METALNESS": ["metal", "metalness", "mtl", "metallic"]
}

# Fonction pour déterminer le type de texture en fonction du nom du fichier
def get_texture_type(file_name):
    for texture_type, keywords in texture_types.items():
        for keyword in keywords:
            if keyword in file_name.lower():
                return texture_type
    return None

# Fonction pour créer un nœud mtlximage à l'intérieur du nœud sélectionné
def create_mtlximage_in_selected_node(selected_node, image_path, texture_type):
    try:
        mtlximage_node = selected_node.createNode('mtlximage')
        if mtlximage_node is not None:
            mtlximage_node.setName(os.path.basename(image_path), unique_name=True)
            filename_parm = mtlximage_node.parm('file')
            if filename_parm is not None:
                filename_parm.set(image_path)
                return mtlximage_node
            else:
                return None
        else:
            return None
    except Exception as e:
        hou.ui.displayMessage(f"Error creating mtlximage node: {e}")
        return None

# Obtenir le premier nœud sélectionné
selected_nodes = hou.selectedNodes()
if not selected_nodes:
    hou.ui.displayMessage("Please select a node.")
else:
    selected_node = selected_nodes[0]  # Prend le premier nœud sélectionné
    # Demander à l'utilisateur de choisir un dossier
    folder_path = hou.ui.selectFile(start_directory='/', file_type=hou.fileType.Directory, title='Select Folder')
    if folder_path:
        # Extraire le nom du dossier à partir du chemin du dossier sélectionné
        folder_name = os.path.basename(os.path.normpath(folder_path))

        # Renommer le noeud principal sélectionné avec le nom du dossier
        selected_node.setName(folder_name, unique_name=True)

        # Scanner tous les fichiers images dans le dossier
        image_files = [f for f in os.listdir(folder_path) if os.path.isfile(os.path.join(folder_path, f)) and f.lower().endswith(('.png', '.jpg', '.jpeg', '.exr', '.tif', '.tiff'))]

        if not image_files:
            hou.ui.displayMessage("No image files found in the selected folder.")
        else:
            # Variable pour compter le nombre d'images créées
            image_count = 0

            # Créer un nœud mtlximage pour chaque fichier image
            for image_file in image_files:
                image_path = os.path.join(folder_path, image_file)
                texture_type = get_texture_type(image_file)
                if texture_type is not None:
                    image_node = create_mtlximage_in_selected_node(selected_node, image_path, texture_type)
                    if image_node:
                        image_node.setComment(texture_type)  # Définir le type de texture dans le commentaire du nœud
                        image_count += 1

                        # Connecter les nœuds d'image au nœud mtlxstandard_surface
                        if texture_type == "BASE_COLOR":
                            selected_node.node('mtlxstandard_surface').setInput(1, image_node)  # Index pour 'base_color'
                        elif texture_type == "SPECULAR_ROUGHNESS":
                            selected_node.node('mtlxstandard_surface').setInput(6, image_node)  # Index pour 'specular_roughness'
                            image_node.parm("signature").set("default")
                            image_node.parm("filecolorspace").set("Raw")
                        elif texture_type == "NORMAL":
                            normal_map_node = selected_node.createNode("mtlxnormalmap")
                            normal_map_node.setInput(0, image_node)
                            selected_node.node('mtlxstandard_surface').setInput(40, normal_map_node)
                            image_node.parm("signature").set("vector2")
                        elif texture_type == "DISPLACEMENT":
                            mtlxdisplacement_node = selected_node.node('mtlxdisplacement')
                            if not mtlxdisplacement_node:
                                mtlxdisplacement_node = selected_node.createNode("mtlxdisplacement")
                            mtlxdisplacement_node.setInput(0, image_node)
                            image_node.parm("signature").set("default")
                            image_node.parm("filecolorspace").set("Raw")
                        elif texture_type == "OPACITY":
                            selected_node.node('mtlxstandard_surface').setInput(368, image_node)
                        elif texture_type == "METALNESS":
                            selected_node.node('mtlxstandard_surface').setInput(36, image_node)  # Index pour 'metalness'
                            image_node.parm("signature").set("default")
                            image_node.parm("filecolorspace").set("Raw")

            # Layout automatique des nœuds enfants du subnet
            selected_node.layoutChildren()

            if image_count > 0:
                hou.ui.displayMessage(f"{image_count} mtlximage nodes created and connected.")
            else:
                hou.ui.displayMessage("No mtlximage nodes created.")


iZem feat. Flavia Coelho & Luiza

Al3ph

Le clip de Sua Pele se veut un hommage aux productions visuelles des années 80/90, dans un esprit « DIY ». Inspiré d’une esthétique lo-fi, légèrement kitsch, celle de l’époque des VHS, du magnétoscope et de sa lecture parfois aléatoire, où la matière visuelle était conservée sur bande, nous avons cherché à évoquer un temps révolu, mais pas si lointain, qui nourrit encore nos imaginaires visuels. Cela nous semblait intéressant, pour un morceau intitulé « Sua Pele » (« ta peau »), composé et interprété pendant les périodes de confinement du Covid, moment où les corps étaient par définition distants, de nous éloigner des rendus numériques modernes, et de leur perfection lissée. On leur a préféré la nostalgie organique des vidéos conservées sur bande, avec leurs nécessaires imperfections, erreurs d’encodage et autres glitchs venant perturber la matière visuelle. Cette esthétique nous semblait un contrepoint intéressant et ludique au thème du morceau, qui évoque l’éloignement contraint des corps, et donc aussi la perturbation du rapport à notre sensualité.


Tracking, keying & green screen for the Supermassive band

Tracking, green screen & keying

I conceptualized, did all the tracking and green screen work for this Instagram reel, for the social networking superstars, Supermassive.


We_Are_Making_Artist_Disappear

artistisdead.ai

This project was born from a reflection on the status of the artist, concerning the new technologies devoted to artificial intelligence and, in particular, those allowing the production of images from a simple textual « prompt » (MidjourneyStable Diffusion etc…).

Idea

We know that, as a social, conceptual, and imaginary category, the very notion of artist has a history. That is to say that one does not represent the artist in the same way according to whether one is a Greek of Antiquity, a painter of the 13th century, or a contemporary artist of the 20th century. To put it in a nutshell, before the 13th century, in the West, there were only craftsmen.[mfn]https://www.cairn.info/revue-la-pensee-de-midi-2000-2-page-6.htm[/mfn][mfn]https://www.cnrseditions.fr/catalogue/arts-et-essais-litteraires/le-geste-la-pensee/[/mfn]

Before that, the very notion of the artist as a true creator is not even conceivable: in the Christian context, the possibility of creation, in the true sense of the word, is a divine prerogative, and in no way human.[mfn]https://www.persee.fr/doc/raipr_0033-9075_2011_num_179_1_4317[/mfn][mfn]https://www.librairie-gallimard.com/livre/9782070272617-l-oeuvre-d-art-et-ses-significations-essais-sur-les-arts-visuels-erwin-panofsky/[/mfn]

"Creatura non potest creare"
[The creature cannot create]

St Augustin - [354 - 330]

["This creative axis from nothingness constitutes the proper of God alone, and does not constitute the proper of any other creature."J

Jean Scot Érigène - [815 - 877]

This reflection is accompanied by Pierre Bourdieu’s analyses of the notion of art, taste, and creation. In a famous book (La Disctinction, essai pour une critique sociale du jugement [mfn]http://www.leseditionsdeminuit.fr/livre-La_Distinction-1954-1-1-0-1.html[/mfn]),

he shows in particular how the social category of « art » or « artist » can be analyzed according to a logic copied from an economic model. What makes the value, the recognition of a work or an artist, is also his position in a « market », which is not to be understood only in the strict sense of the economy (without excluding it). There is thus a market of the taste, a market of the artist, in the specifically sociological sense of the term.

And in this market, what makes the value of work, the value of an artist, is notably his rarity, how he distinguishes himself from his other competitors in the same market (hence the main title of the book: La Distinction). This rarity can be understood in at least two senses. For a long time, in pre-20th century art, rarity was fundamentally related to the technical capacity of the artist/craftsman: the greater mastery of technique ensured the production of works or objects of high quality, which allowed one to distinguish oneself in the market in question, and thus to have a higher rarity index. In the art of the 20th century, it is not so much the technical quality that is important, but the capacity to make legitimate and original a specific idea, and to make it legitimate in the eyes of the social world. That is done by a vast system of validation (institutional in particular), by a curriculum in fine arts, by the awarding of prizes, etc…

However, it seems to me that the new technologies of image creation by artificial intelligence come, in part, to question this very concept of scarcity, which is what our modern conception of the artist is based on. With these new technologies, anyone can create very high-quality images, in infinite styles, with a few clicks of the mouse. The possible consequence is that with such a leveling of all by this technology, the rarity is diluted, and thus the very concept of artist (visual, in our case), which is based on it, loses its prestige. Or in any case, be subject to profound upheavals.

We_Are_Making_Artist_Disappear

The goal of the WAMAD project is to illustrate these questions, at the intersection of computer science and artistic creation.

The idea is to create an Instagram account, which is fully self-powered, automatically, via code programmed in Python language and the artificial intelligence Stable Diffusion.

Stable Diffusion is an open-source image creation AI, which allows the production of images from a simple textual « prompt », filled in by the user. For example, the following image was automatically generated by Stable Diffusion from the following prompt:

“weird and disturbing portrait of mike patton puking blood, vivid colors, death, neon, art by ( ( ( kuvshinov ilya ) ) ) and wayne barlowe and francis bacon and artgerm and wlop and william - adolphe bouguereau”

The specificity here is that the prompt itself was generated by artificial intelligence, and not by a user.
Thus, the whole process of image creation happens without any human intervention.

To summarize the workflow:

  • When the script is launched,
  • A prompt is automatically generated,
  • Which automatically produces an image via S.D,
  • This image is « upscaled » via another python script (By default, Stable Diffusion produces images of 512 x 512px, we can increase this resolution, but at the cost of computation times much too long. So we use here a new algorithm that allows to enlarge the image, without losing quality, to reach 1024 x 12024px)
  • Hashtags are created automatically
  • This image is automatically uploaded on Instagram.

artistisdead.ai

Ce projet est né d’une réflexion sur le statut de l’artiste, en regard des nouvelles technologies concernant l’intelligence artificielle, et en particulier celles permettant de produire des images à partir d’un simple « prompt » textuel (Midjourney, Stable Diffusion etc…).

Idea

On sait que, en tant que catégorie sociale, conceptuelle et imaginaire, la notion-même d’artiste a une histoire. C’est-à-dire qu’on ne se représente pas l’artiste de la même manière suivant si l’on est un grec de l’Antiquité, un peintre du 13e s., ou un artiste contemporain du 20e siècle. Pour le dire de manière ramassée, avant le 13e siècle, en Occident, il n’y avait que des artisans.[mfn]https://www.cairn.info/revue-la-pensee-de-midi-2000-2-page-6.htm[/mfn][mfn]https://www.cnrseditions.fr/catalogue/arts-et-essais-litteraires/le-geste-la-pensee/[/mfn]

Auparavant encore, la notion même d’artiste comme véritable créateur n’est même pas pensable : en contexte chrétien, la possibilité d’une création, au sens propre du terme, est une prérogative divine, et en aucun cas humaine.[mfn]https://www.persee.fr/doc/raipr_0033-9075_2011_num_179_1_4317[/mfn][mfn]https://www.librairie-gallimard.com/livre/9782070272617-l-oeuvre-d-art-et-ses-significations-essais-sur-les-arts-visuels-erwin-panofsky/[/mfn]

"Creatura non potest creare"
[La créature ne saurait créer]

St Augustin - [354 - 330]

"Cet axe créateur à partir du néant constitue le propre de Dieu seul, et ne constitue le propre d’aucune autre créature."J

Jean Scot Érigène - [815 - 877]

Cette réflexion s’accompagne des analyses de Pierre Bourdieu, sur la notion d’art, de goût, et de création. Dans un livre fameux (La Disctinction, essai pour une critique sociale du jugement [mfn]http://www.leseditionsdeminuit.fr/livre-La_Distinction-1954-1-1-0-1.html[/mfn]), il montre notamment comment la catégorie sociale d’ « art » ou d’ « artiste » peut s’analyser selon une logique calquée sur un modèle économique. Ce qui fait la valeur, la reconnaissance d’une œuvre ou d’un artiste, c’est aussi sa position dans un « marché », qui n’est pas à entendre uniquement au sens strict de l’économie (sans pour autant l’exclure). Il y a donc un marché du goût, un marché de l’artiste, au sens spécifiquement sociologique du terme.

Et sur ce marché, ce qui fait la valeur d’une œuvre, la valeur d’un artiste, c’est notamment sa rareté, la manière dont il se distingue de ses autres concurrents sur un même marché (d’où le titre principal de l’ouvrage : La Distinction). Cette rareté peut être comprise en au moins deux sens. Pendant longtemps, dans l’art pré-20e siècle, la rareté est fondamentalement reliée à la capacité technique de l’artiste/artisan : la plus grande maitrise de la technique assure la production d’œuvres ou d’objets de grande qualité, ce qui permet de se distinguer sur le marché en question, et donc d’avoir un indice de rareté plus haut. Dans l’art du 20e siècle, ce n’est plus tant la qualité technique qui prime, mais la capacité à rendre légitime et originale une idée spécifique, et de la rendre légitime aux yeux du monde social. Cela se fait par un vaste système de validation (institutionnelle notamment), par un cursus aux beaux-arts, par la remise de prix, etc…

Or, il me semble que les nouvelles technologies de création d’image par intelligence artificielle viennent, en partie, remettre en cause ce concept même de rareté, qui est ce sur quoi se fonde notre conception moderne de l’artiste. Avec ces nouvelles technologies, n’importe qui peut créer des images de très grande qualité, dans des styles infinis, en quelques clics de souris. La conséquence possible, c’est qu’avec une telle mise à niveau de tous par cette technologie, la rareté se dilue, et donc que le concept même d’artiste (visuel, dans notre cas), qui se fonde dessus, perde de son prestige. Ou en tout cas soit sujet à de profonds bouleversements.

We_Are_Making_Artist_Disappear

Le but du projet WAMAD est d’illustrer ces questions, au croisement de l’informatique, des nouvelles technologies et de la création artistique.

L’idée est de créer un compte Instagram, qui soit intégralement auto-alimenté, de manière automatique, via du code programmé en langage Python et l’intelligence artificielle Stable Diffusion.

Stable Diffusion est une IA de création d’image, en open source, qui permet de produire des images à partir d’un simple « prompt » textuel, renseigné par l’utilisateur. Par exemple, l’image suivante a été automatiquement générée par Stable diffusion à partir du prompt suivant :

“weird and disturbing portrait of mike patton puking blood, vivid colors, death, neon, art by ( ( ( kuvshinov ilya ) ) ) and wayne barlowe and francis bacon and artgerm and wlop and william - adolphe bouguereau”

La spécificité ici, est que le prompt lui-même a été généré de manière informatique, par une intelligence artificielle.

Ainsi, la totalité du processus de création d’image se déroule sans aucune intervention humaine

Pour résumer le workflow :

  • Quand on lance le script,
  • Un prompt est généré automatiquement,
  • qui produit automatiquement une image via S.D.,
  • Cette image est « mise à l’échelle » via un autre script python (Par défaut, Stable Diffusion produit des images de 512 x 512px, on peut augmenter cette résolution, mais au prix de temps de calculs beaucoup trop longs. On utilise donc ici un nouvel algorithme qui permet d’agrandir l’image, sans perdre en qualité, pour atteindre 1024 x 12024px)
  • Des hashtags sont créés automatiquement
  • Cette image est automatiquement uploadée sur Instagram.

Technique

The different scripts used for this project are the following:

  • The main script is written in Python
  • Stable diffusion
  • txt2imghd, is used to upscale images to a higher resolution.
  • The prompts are generated automatically from a custom script based on a mix of GPT-3 and a combination of words classified according to a python dictionary.


Aywa - Hada Saadi

Aywa
Hada Saadi

Le concept : un clip centré autour de la figure d’Adil Smaali, chanteur de Aywa. Son visage, extérieur, qui porte les marques de son histoire, et son visage intérieur, comme en miroir, un paysage à parcourir par un ensemble de métaphores visuelles.


Techniques

Zbrush & Substance Painter

Plusieurs techniques ont été utilisées pour la réalisation de ce clip.

Tout d’abord, nous avons eu la chance de filmer avec une caméra de très haute qualité, une Arri Alexa, manipulée par le talentueux Enzo Pianetti.

Pour la création 3d, le visage d’Adil a été intégralement reconstitué par photogrammétrie, via Meshroom, le modèle retravaillé dans Zbrush, et retexturé dans Substance Painter, de manière à pouvoir sortir des textures photoréaliste en 8K, de très haute qualité. Le montage et le compositing ont été fait dans DaVinci Resolve

Houdini

De nombreux assets et scènes ont été créés avec l’un des plus merveilleux logiciels que le monde ait jamais porté, j’ai nommé : Houdini.

Houdini est un logiciel de création 3d procédurale, qui emprunte une grande partie de son workflow aux techniques de programmation informatique. Ces deux caractéristiques (la logique procédurale, et le fait qu’on puisse manipuler la géométrie à bas niveau, selon une logique de programmation) le rendent particulièrement souple et puissant pour produire des VFX ou des simulations d’eau, de particules, de tissu, etc… au point qu’il est devenu le logiciel standard de l’industrie cinématographique (et du jeu-vidéo!) pour ce genre d’effets (Game of Thrones etc…).

Houdini nodetree

Unreal Engine 5

Exactement pendant la période de création du clip, une toute nouvelle version du moteur Unreal Engine 5 est sortie, grâce à laquelle plusieurs plans de la vidéo ont été réalisés. Le gros avantage d’UE5, c’est son tout nouveau moteur de rendu, qui est une véritable révolution. Il présente une qualité quasiment équivalente aux moteurs de rendu Off-line, mais avec des temps de rendu en quasi temps-réel. Concrètement, il peut rendre en quelques minutes, et avec une qualité presque équivalente, ce qu’un moteur de rendu classique met des heures, ou des jours entiers, à rendre.

Deux scènes ont été intégralement réalisée vie UE5.

UE5 renders

Influences

Ghost in the Shell

Adam Savage / Weta Workshop a conçu ces impressionnants robots, pour le film Ghost in the Shell (Rupert Sanders), inspiré du grand classique du manga de Masamune Shirow.

Giuseppe Arcimboldo

Giuseppe Arcimboldo, Arcimboldi, ou Arcimboldus (vers 1527 à Milan – 11 juillet 1593 à Milan) est un peintre maniériste italien, célèbre pour ses nombreux portraits suggérés par des végétaux, plantes, fruits et fleurs.

Clair-obscur

Avec l’aide d’Enzo Pianetti (cadrage/chef-op), nous nous sommes beaucoup inspirés du clair-obscur, en particulier dans sa période hollandaise (Rembrandt), pour mettre en valeur le visage d’Adil, et la dualité que nous souhaitions faire ressortir à l’image

Équipe technique & artistique

Vincent / JS Prod : Administratif, Management
Enzo Pianetti : Cadreur, Chef Op
Audrey Brunel : Maquilleuse
Adil Smaali : Acteur, Musicien
Julien Peronnet / Al3ph : réal, fx

Un grand merci à Alizée pour son soutien et ses retours !

La création du clip a pris environ 10 mois, si on compte la préprod, la réunion de toute l’équipe et du matériel, le tournage lui-même, et la création 3d+montage proprement dite, en comptant environ 8 de ces 10 mois dédiés à la création des assets, aux rendus et au montage/postprod. L’ensemble des rushs, pour une vidéo finale de moins de 4mn, pèse environ 1.5 Teraoctet, (1500 giga), et le dossier de travail contenant les assets 3D 1 teraoctet !

Vous pouvez avoir accès au dossier de production complet du clip, storyboard, essayages, maquillages, planning ,influences et références etc… Et plus globalement avoir un perçu de l’importante organisation que demande la préparation et la création d’un projet de ce genre, en cliquant sur ce lien suivant


La pietà - Pas désolé

La Pietà
Création du clip vidéo - Pas désolé

J’ai passé environ 4 mois à produire un clip intégralement en 3d, pour le morceau ‘Pas désolé’, de La Pietà. Le parti-pris était de proposer une esthétique en bichromie, mettant en scène la vie d’un personnage, à travers des tranches de vie, quasiment de sa naissance à sa mort, dans un style à la fois naïf et évocateur. On suit ainsi la courbe d’une existence, avec ses joies et ses peines, de ce personnage qui est à la fois toi, moi, personne et tout le monde, le tout présenté comme une longue rêverie symbolique. L’usage de la bichromie, et du rendu très schématique permet à tout un chacun de s’identifier au personnage principal, quasiment le seul dont on perçoit le regard blanc, un peu à la manière dont la «ligne claire» d’Hergé autorise, par son abstraction, à se projeter facilement dans le héros.

La technique repose intégralement sur un rendu en bichromie, sur l’utilisation de lumières volumétriques (‘godrays’), et sur l’utilisation du « negative space », ce qui apparente son rendu à des ombres chinoises. Les techniques de 3d modernes permettant ainsi plus de relief et de profondeur de champ que les ombres chinoises traditionnelles.

Logiciels utilisés

Influences

Another World

Eric Chahi, Delphine Software, 1991

Another World est un jeu mythique du début des
années 90, connu non seulement pour son gameplay,
mais peut-être et surtout pour sa patte graphique,
entièrement dessinée à la main, pour un rendu en
polygone et en aplats de couleurs. Limité à 16 couleurs
(16 bit), la direction artistique est considérée comme
un chef-d’œuvre du genre.

Limbo / Inside

Playdead, Microsoft Studio, 2010 & 2016

Limbo et inside sont deux jeux vidéos indépendants
salués par la critique, à la fois pour leur ambiance,
leur gameplay, et plus fondamentalement pour la
direction artistique et le rendu visuel. Celui-ci repose
essentiellement sur de la bichromie (noir et blanc),
et sur un personnage principal sans visage, ou
uniquement avec des yeux blancs. Ainsi qu’un usage
très esthétique des lumières volumétriques.

Kirikou

Kirikou et la sorcière, Michel Ocelot, les Amateurs
prod., 1998

Kirikou, pour son usage de modèles épurés, flirtant
souvent avec les ombres chinoises, dans un style
proche du théâtre d’ombre.

La nuit du chasseur

La nuit du chasseur, Charles Laughton, Paul Gregory
prod., 1955

Le chef-d’œuvre incontesté de Laughton fait un usage
très spécifique des découpes, des ombres et du travail
sur les espaces négatifs, pour créer un univers à la fois
onirique et effrayant, à la manière d’un conte de fée
morbide.

Princes et princesses

Michel Ocelot, les Amateurs
prod., 2000

Princes et Princesses est un film d’animation en théâtre
d’ombres (papier découpé) de Michel Ocelot, réalisé
en 1989, sorti en 2000, et composé de six contes.

Blade Runner 2049

Denis Villeneuve, Scott Free Productions

La grande œuvre de Denis Villeneuve utilise de manière
extrêmement élégante les lumières volumétrique, les
espaces négatifs, et un nombre réduit de couleurs,
pour donner une ambiance extrêmement pesante à
son univers.

Esthétique

Negative

Space

Plus qu’un simple remplissage du cadre, la photographie et la composition d’image sont un jeu de composition, d’assemblage de formes et d’agencement de couleurs. Il est ainsi possible de mettre en valeur un personnage ou un objet en accordant une grande importance à l’espace vide qui l’entoure. Semblant peut-être à première vue paradoxale, cette pratique met à profit ce qu’on appelle l’espace négatif. L’exemple le plus connu de l’usage de l’espace négatif est l’illusion d’optique présentant deux visages qui se font face vus de profil : on peut ou bien discerner les visages, ou bien voir la forme qu’ils dessinent (le plus souvent un vase, dans cette illusion).

“Godrays”

Les rayons crépusculaires sont des rayons de la lumière solaire qui semblent provenir d’un unique point dans le ciel, du Soleil lui-même. Ils apparaissent sous formes de raies lumineuses divergentes entrecoupées de zones ombragées.
L’exemple le plus fameux est l’effet que l’on peut constater dans les églises, quand les rayons du soleil passent à travers les vitraux pour créer une découpe lumineuse dans la pièce plus sombre.


"Linda la Cumbia" - La Yegros

Conception

Il y a environ trois mois, j’ai été embauché par l’équipe du groupe La Yegros (qui avait vu mes deux précédents clips en 3d, que j’avais réalisé pour mon propre groupe, que vous pouvez retrouver et ) pour réaliser le clip d’un morceau de son prochain album : « Linda la cumbia ».

Voici quelques détails sur la création du clip.

Logiciels utilisés :

Blender (modélisation / retarget des fichiers de motion capture / création des animations)

– Cinema 4D (composition générale de la scène / rendu)

– Moteurs de rendu : Octane render / Sketch & Toon

– Zbrush (modélisation de l’oeil)

– Substance painter (texturing)

– Marvelous Designer (création des tissus / robe etc…)

– Illustrator (création d’assets)

– After Effect (montage et compositing)

Meshroom (photogrammétrie)

Modèle d'oiseau sous licence CC par Hypnosis sur Blendswap

Toutes les animations de l’oiseau ont été faites sous l’excellent Blender (ainsi que toutes les modélisations des assets du clip), qui est un logiciel dont j’adore l’efficacité et sur lequel j’ai vraiment mes marques. Les anim ont été exportées ensuite en .fbx vers Cinema 4d, qui était le logiciel central de mon workflow.


La modélisation principale de la chanteuse a été faite également sous Blender, et sur l’incroyable Manuel Bastioni Lab, qui m’a permis de produire un modèle de base de haute qualité, avec une anatomie réaliste, et une topologie rendant le modèle parfaitement animable.

Je disposais également d’une 60aines de photos du visage de La Yegros, prises par un photographe, qui m’ont permis de faire un modèle HD en 3d de son visage (via Meshroom).

Je comptais au début me servir de ce modèle après l’avoir retopologisé, pour le rendre directement animable. mais finalement après plusieurs essais qui ne me donnaient pas satisfaction, je ne m’en suis servi que comme référence. J’ai donc remodélisé directement le mesh en sortie de Manuel Bastioni Lab (7 versions différentes du modèle avant d’arriver au définitif !), afin qu’il soit le plus réaliste possible et se rapproche au maximum du visage de La Yegros.

Blender / Manuel bastioni Lab

octane node setup landscape

Deux esthétiques dans le clip, une plutôt photoréaliste, rendue via le très véloce Octane render, et une esthétique « sketchy », réalisée avec le moteur de rendu non-réaliste interne de C4d, « Sketch and Toon », qui permet de rendre des lignes stylisées avec un très grand nombre de paramètres modifiables. Les temps de rendus sont par contre extrêmement longs. Assez paradoxalement, les parties « sketchy » du clip ont mis énormément plus de temps à rendre que les parties plus photoréalistes.


Autres réalisations