FR 3151456 A1 20250124 FR 2307668 A 20230718 Procédé (P) de génération d’un flux d’images par une unité de calcul, chacune des images étant formée d’une pluralité de plans, chacun des plans présentant une pluralité d’objets (O1, O2) disposés sur ledit plan, chacun des objets d’un plan présentant une pluralité de paramètres (P1, P2, P3), le procédé comportant : • une étape d’attribution (A1), pour chacun des paramètres des objets : de données dites de primitives (E2), comportant des données de mouvement, des données de rythme et des données d’intensité ; • une étape d’attribution (A2), pour chacun des plans : de données d’objet (E1) comportant une pluralité d’objets, chacun des objets comportant des coordonnées, dites associées à l’objet, dans le plan, de données dites de primitives (E2), comportant des données de mouvements, des données de rythme et des données d’intensité ; • une étape de génération (G) du flux d’images (E3) dans laquelle, pour chacun des plans, chacun des objets est initialement disposé à ses coordonnées associées, les paramètres de chaque objet initialement placé sur le plan sont déterminés et évoluent à partir des données de primitives qui leurs sont attribuées, une suite de déplacements est appliquée à chaque objet initialement placé sur le plan, la suite de déplacements étant déterminée à partir des données de primitives du plan. Figure 1 PROCEDE ET MODULE DE GENERATION DE DONNEES VISUELLES OU AUDIOVISUELLES EN TEMPS REEL Domaine de l’invention La présente invention concerne le domaine audiovisuel au sens large, à la fois en tant que représentation visuelle (conception, manipulation et diffusion d’imagerie digitale, conception et manipulation de visuels de couleurs et de lumières via des appareils de projection et d’éclairage ou bien des écrans d’affichage), ainsi qu’en tant que représentation et expression sonore (manipulation, captation, création et diffusion de flux sonores, qu’ils soient de l’ordre du bruitage, du Sound Design, ou bien de la création musicale en studio ou en public, soliste ou concert, DJ…). L’invention concerne et touche également le domaine de l’installation et de la diffusion événementielle digitale ou analogique (son et lumière) ; elle se veut être un pont direct entre la fabrication, la manipulation, la diffusion de contenus multimédias audiovisuels, et l’impact sur le public lié à une organisation événementielle. Elle touche ainsi particulièrement au domaine dit du VJing, qui est un terme large qui désigne la performance visuelle en temps réel, qui se caractérise par la diffusion de contenu visuel pendant un événement musical. Enfin, l’invention peut concerner également la création, manipulation, et diffusion multimédia pour les domaines du design d’espaces intérieurs ou extérieurs, de la domotique ou bien de la publicité sur lieu de vente, ainsi que les domaines de la chromothérapie, de l’art-thérapie, ou de toute forme de thérapie qui ferait intervenir des éléments visuels et sonores. Le son et l’image ont complètement envahi notre style de vie moderne, et tous les modes d’expression et de communication correspondants qui, aujourd’hui, sont quasiment intégralement basés sur deux de nos sens : la vue et l’ouïe. La volonté de trouver une corrélation entre la lumière, la couleur et les sonorités relatives à la création musicale est loin d’être nouvelle. Isaac Newton, dès sa découverte de la décomposition de la lumière blanche en sept couleurs primitives différentes, avait d’instinct associé ces sept couleurs aux sept notes d’une octave musicale, tentant de démontrer ainsi une structure mentale sous-jacente à ces deux champs situés dans la perception humaine. Puis ce sera le philosophe, physicien, musicien et inventeur allemand Athanasius Kircher qui théorisera plus fermement un lien entre l’œil et l’oreille dans sa Musurgia Universalis écrite en 1650. Les premiers plans d’un appareil associant son et lumière seront réalisés par Louis Bertrand Castel en 1725 à travers son invention : le clavecin oculaire, permettant de jouer selon lui un concert à un sourd avec des couleurs et de la lumière. Cependant son invention restera à l’état de plans et ne fut pas construite. Le premier appareil réel ne fera son apparition qu’avec l’inventeur américain Bainbridge Bishop qui déposa le brevet d’un orgue à couleur en 1877. Il s’agissait d’un ensemble de lumières qui se fixait sur un orgue à tube et qui projetait des couleurs sur un écran en fonction de la note jouée. Ce fut ensuite l’anglais Alexander Wallace Rimington qui fabriqua et déposa également le brevet de son clavier à lumière en 1893. Au XXème siècle, avec le développement du cinéma, de l’audiovisuel et de l’électronique apparaissent de nouveaux systèmes plus poussés : les synthétiseurs vidéo. Conçus par les artistes et électroniciens les plus ambitieux comme Nam Jun Paik ou bien Steve Rutt et Bill Etra, ces appareils permettaient de transformer les vidéos sources selon des paramètres spatiaux (largeur, hauteur, position), temporels (vitesse, fréquence d’affichage), ou encore visuels (couleurs), selon les souhaits des artistes pour obtenir des objets visuels abstraits intéressants. Ces systèmes visuels accompagneront, pendant toutes les années 70 et 80, l’apparition de la culture des clubs et des Disk Jockey (DJ), jusqu’à devenir un atout indispensable lors de l’organisation des soirées, donnant naissance à ce que la vidéaste Merrill Aldighieri appellera les Video Jockey (VJ), contrepoint visuel des DJ, et qui sont chargés de l’ambiance visuelle et multimédia des scènes. Les années 80 voient également le boom des technologies électroniques avec la venue des microprocesseurs. Les premiers synthétiseurs vidéo sont alors commercialisés, permettant d’appliquer de nombreux effets générés par ordinateur à des sources vidéo. Parmi ces appareils, on peut retenir le nom du Fairlight Computer Video Instrument (CVI), qui révolutionna le monde de la télévision et de l’édition vidéo temps réel en permettant d’obtenir rapidement depuis une source des images abstraites de bonne qualité. A partir des années 90, la technologie micro-informatique permit une explosion des systèmes de conceptions visuels, avec des logiciels comme Photoshop, After Effects, ou encore Flame et Inferno, poussés par la demande toujours plus créative des Effets Visuels au cinéma, la génération d’images artificielles figuratives ou abstraites devint rapidement un outil de communication indispensable. Le milieu audiovisuel voit ainsi le développement de disciplines basées entièrement sur la fabrication et l’animation et la mise en mouvement de contenu visuel pour la communication, la publicité ou le cinéma. On parlera alors de « Motion Design ». Le Motion Design (ou Motion Graphics) est une branche particulière du graphisme, dont le but est de mettre en mouvement des éléments graphiques. Il est devenu avec le temps une forme d’art à part entière. En détournant ces technologies pour les adapter au monde de la scène temps réel, les artistes peuvent ainsi se rapprocher un peu plus de la création visuelle instantanée, alliant prises de vues réelles et art génératif créé par ordinateur. Parmi les communautés de créateurs de contenus visuels informatisés, on trouve des participants de la DemoScene, appelés également DemoMakers. Il s’agit de programmeurs capables de créer des éléments visuels et sonores reposant sur le moins de lignes de code possible. Chaque année, des concours de DemoMaking ont lieu, permettant à chaque équipe de présenter leurs talents de programmation visuelle et auditive et de se lancer dans une compétition pour déterminer la meilleure équipe. La dernière évolution majeure en termes de communication visuelle événementielle a été l’arrivée dans les années 2000 du phénomène du Projection Mapping (ou vidéo mapping), qui consiste à projeter des vidéos sur des surfaces comme des murs, des monuments, ou des objets en volume et ainsi donner une dimension visuelle dynamique à un lieu particulier. Plusieurs logiciels ont fait leur apparition comme MadMapper, HeavyM, Resolume, ou Notch. Ils permettent de diffuser du contenu visuel en direct et de le déformer pour l’adapter aux surfaces. La présente invention s’inscrit directement dans la lignée précitée de toute la recherche et la pratique d’une forme d’art audiovisuel instantané. En tant que système génératif audiovisuel technique, elle permet une expression créative dans l’instant via ce système, avec possibilité d’improvisation. État de la technique Actuellement, il existe trois types de systèmes audiovisuels permettant de concevoir du contenu multimédia animé pouvant directement ou a posteriori , être utilisé pour une diffusion en temps réel dans un contexte événementiel, d’exposition, ou de scène : Les systèmes de création de contenu numérique, soit en anglais Digital Content Creation (DCC), tels que : After Effects, Cinema4D, Blender, Maya ou Smode. Les systèmes de programmation visuelle à états, soit en anglais Visual Coding , se manifestant la plupart du temps par une représentation graphique nodale (arbres de nœuds ou graphes), tels que : PureData, QuartzComposer, TouchDesigner, VVVV, Notch ou PraxisLive. Les interfaces de programmation pure : Processing ou GLSL avec Kodelife. Certains logiciels mélangent plusieurs aspects et permettent par exemple d’inclure des lignes de code tout en restant des logiciels de création de contenu ou de programmation visuelle à états. Les outils de création de contenu numérique ont été inventés à la base pour la création d’images numériques au cinéma et à la télévision, et leur évolution s’est faite en fonction de l’évolution de ces domaines, à savoir les Effets Visuels et le Motion Design. Ils héritent directement de la conception cinématographique des images et se basent donc sur un modèle issu de la pellicule. La création d’un visuel par un système de création de contenu numérique passe ainsi en premier lieu par la création d’une séquence qui contiendra l’évolution du visuel. Au sein de cette séquence, l’évolution de l’animation s’effectuera par « images clés » (en anglais key frames ), c’est-à-dire en marquant dans le temps les différents états des objets animés et en interpolant ces états. Une fois la séquence créée, elle doit être rendue sous forme d’un fichier vidéo possédant un code temporel immuable et elle n’est plus modifiable par la suite. Il s’agit donc d’un modèle de production linéaire. Les vidéos peuvent être diffusées, et des effets ou filtres peuvent leur être appliqués dans les systèmes de diffusion, mais leur contenu est fixé lors du rendu de la séquence et reste alors immuable. Les systèmes de programmation visuelle à états sont des outils de programmation allégés, où chaque fonction est représentée la plupart du temps par un bloc, et l’ensemble de l’exécution du script est représenté par un arbre reliant chacun des blocs : le graphe. En tant que système de programmation, ils permettent souvent une très grande flexibilité à l’utilisateur dans le choix des fonctions utilisées. La création d’un système procédural programmé prend beaucoup de temps, demande des connaissances en informatique, en programmation, et en matériel électronique s’il s’agit de diffuser le contenu. Ces systèmes demandent de concevoir la scène en amont puis de la déployer sur le terrain. Le savoir préalable nécessaire à leur utilisation freine leur démocratisation au sein du grand public et de la communauté artistique. Enfin, les langages de programmation créative sont réservés aux programmeurs et informaticiens qui souhaitent créer des visuels ou de l’art génératif à partir de lignes de code directement. Ces langages sont capables d’interpréter quasiment en temps réel les commandes. Il s’agit de programmation à l’état pur, même si celle-ci est simplifiée par le langage utilisé. Tous ces contenus une fois créés peuvent être envoyés à un système de diffusion ou de déformation par projection (projection mapping) afin de s’adapter à l’environnement. Parmi les logiciels courants de diffusion, on retrouve : Resolume, MadMapper ou HeavyM. Ces logiciels possèdent la plupart du temps des effets et filtres prédéfinis configurables, permettent de mélanger des éléments préexistants (créés par exemple dans des outils DCC) et d’appliquer ces filtres. Ces outils permettent également la plupart du temps de réagir à du matériel de pilotage externe comme des instruments de type MIDI ou OSC, afin de contrôler la diffusion et le comportement des filtres. Si un utilisateur veut partager un contenu entre tous ces outils de manière directe (sans avoir à préalablement calculer les rendus vidéo), il lui faut un dernier logiciel permettant de partager la mémoire graphique entre les différentes applications. A cette fin, sur PC on utilise Spout, tandis que sur Mac on préférera utiliser Siphon. Créer un environnement complet de diffusion et création de contenu multimédia dans un contexte temps réel est donc une tâche qui demande une grande technicité, plusieurs logiciels qu’il faut savoir manier et relier entre eux et qui, in fine , ne permettront pas réellement d’improviser, car limités la plupart du temps à du contenu produit selon une logique linéaire et rendu sous forme de fichier immuable. L’ensemble des outils actuels ne permet pas l’improvisation ni l’expression instantanée d’une intention artistique audiovisuelle en raison de cette linéarité. Le problème technique actuel de l’audiovisuel est que ses formes de manifestations courantes sont soumises à une linéarité issue d’un procédé de fabrication descendant : il est nécessaire de construire une première ligne temporelle en amont (appelée piste, séquence ou encore en anglais timeline ), à laquelle le reste du procédé sera soumis. Qu’il s’agisse de montage, de prises de vues, ou d’animation, l’ensemble des procédés actuels permettant la création d’un objet audiovisuel en vue de sa diffusion dans un contexte temps réel, est prisonnier de cette linéarité temporelle non modifiable une fois établie. Ce modèle linéaire est directement hérité d’un paradigme cinématographique qui consiste à voir le film, et par extension la vidéo, comme une suite d’images ; et les systèmes actuels ne prennent pas en compte les dernières recherches faites sur les procédés non linéaires. Le principal symptôme de cette limitation technique à une représentation linéaire est l’absence quasi totale de possibilité de créer directement sur le terrain ou de modifier un élément audiovisuel une fois celui-ci fabriqué, ce qui ferme la porte à toute forme d’improvisation. Il n’existe pas actuellement d’outil permettant une expression créative visuelle en mouvement instantanée. Il existe des systèmes audiovisuels permettant un développement d’objets visuels et sonores non linéaires, cependant ces systèmes sont extrêmement complexes et demandent des connaissances en programmation et donc en informatique et ne sont pas accessibles au premier abord. De plus, une fois les éléments programmés, ceux-ci ne sont plus réellement modifiables en vue d’une improvisation. L’invention se situe comme une passerelle entre les codes de la création visuelle, et la structure créative naturellement ouverte à l’improvisation qu’est la musique. L’invention peut être donc vue comme un instrument et vise à pallier l’un au moins des inconvénients précités. A cet effet, il est proposé, selon un premier aspect de l’invention, un procédé de génération d’un flux d’images par une unité de calcul, chacune des images étant formée d’une pluralité de plans, chacun des plans présentant une pluralité d’objets disposés sur ledit plan, chacun des objets disposés sur le plan présentant une pluralité de paramètres visuels et comportementaux, le procédé comprenant : une étape d’attribution, pour chacun des paramètres des objets : de données, dites de primitives, comportant des données de mouvement, des données de rythme et des données d’intensité, une étape d’attribution, pour chacun des plans : de données d’objet comportant une pluralité d’objets, chacun des objets comportant des coordonnées, dites associées, dans le plan, de données, dites de primitives, comportant des données de mouvements, des données de rythme et des données d’intensité, une étape de génération du flux d’images dans laquelle, pour chacun des plans : chacun des objets est initialement disposé à ses coordonnées associées, les paramètres visuels et comportementaux de chaque objet initialement placé sur le plan sont déterminés à partir des données de primitives attribuées et évoluent selon lesdites données de primitives, une suite de déplacements est appliquée à chaque objet initialement placé sur le plan, la suite de déplacement étant déterminée à partir des données de primitives du plan. Le procédé peut comporter d’autres étapes d’attribution ou de réattribution ultérieures à l’étape de génération du flux d’images. L’attribution des données de primitives aux paramètres d’un objet permet d’agir sur sa représentation et son comportement, à savoir par exemple : sa couleur, son opacité, sa taille, son angle de rotation, sa durée de vie. De préférence, les données de mouvements sont générées par l’utilisateur en temps réel au moyen d’un outil de pointage. De préférence, les données d’intensité sont générées par l’utilisateur en temps réel au moyen d’un outil de pointage. Selon un deuxième aspect de l’invention, il est proposé un module de génération d’un flux d’images, chacune des images étant formée d’une pluralité de plans, chacun des plans présentant une pluralité d’objets disposés sur ledit plan, chacun des objets d’un plan présentant une pluralité de paramètres, le module comportant une unité de calcul configurée pour : attribuer, pour chacun des paramètres des objets : des données dites de primitives, comportant des données de mouvement, des données de rythme et des données d’intensité, attribuer, pour chacun des plans : des données d’objet comportant une pluralité d’objets, chacun des objets comportant des coordonnées, dites associées à l’objet, dans le plan, des données dites de primitives, comportant des données de mouvements, des données de rythme et des données d’intensité, générer le flux d’images dans lequel, pour chacun des plans, chacun des objets est initialement disposé à ses coordonnées associées, les paramètres visuels et comportementaux de chaque objet initialement placé sur le plan étant déterminés à partir des données des primitives qui leur ont été attribuées et évoluent selon ces données de primitives. une suite de déplacements est appliquée à chaque objet initialement placé sur le plan, la suite de déplacements étant déterminée à partir des données de primitives du plan. Brève description des figures D’autres caractéristiques et avantages de l’invention apparaîtront au cours de la lecture de la description détaillée qui va suivre pour la compréhension de laquelle on se reportera aux dessins annexés sur lesquels : est un schéma de principe d’un mode de réalisation d’un système selon l’invention, et illustre différents profils d’intensités prédéterminés enregistrés dans une unité de stockage. Description détaillée de l’invention Les modes de réalisation décrits ci-après n’étant nullement limitatifs, on pourra notamment considérer des variantes de l’invention ne comprenant qu’une sélection de caractéristiques décrites, par la suite isolées des autres caractéristiques décrites, si cette sélection de caractéristiques suffit à conférer un avantage technique ou pour différencier l’invention par rapport à l’état de la technique antérieure. Cette sélection comprend au moins une caractéristique, de préférence fonctionnelle sans détails structurels, ou avec seulement une partie des détails structurels si cette partie uniquement suffit à conférer un avantage technique ou pour différencier l’invention par rapport à l’état de la technique antérieure. Il est maintenant décrit un mode de réalisation d’un procédé P de génération d’un flux d’images par une unité de calcul 2, en même temps qu’un système 100 selon l’invention, intégrant un module 1 de génération d’un flux d’images comportant ladite unité de calcul pour mettre en œuvre ledit procédé. Chacune des images du flux d’image est formée d’un ou plusieurs plans. L’unité de calcul 2 est configurée pour recevoir A2, pour chacun des plans : des données d’objet E1 comportant une pluralité d’objets, chacun des objets comportant une pluralité de paramètres (P1, P2, P3) et des coordonnées, dites associées à l’objet, dans le plan, des données, dites de primitives E2, comportant des données de mouvements, des données de rythme et des données d’intensité. L’unité de calcul 2 est configurée pour recevoir A1, pour chacun des paramètres des objets : des données, dites de primitives E2, comportant des données de mouvements, des données de rythme et des données d’intensité. L’unité de calcul 2 est en outre configurée pour générer G un flux d’images E3 dans lequel, pour chacun des plans : chacun des objets est initialement disposé à ses coordonnées associées, les paramètres visuels et comportementaux (P1,P2,P3) de chaque objet initialement placé sur le plan (par exemple sa couleur, son opacité, sa taille, son angle de rotation, sa durée de vie) sont déterminés à partir des données des primitives qui leur ont été attribuées et évoluent selon ces données de primitives, une suite de déplacements est appliquée à chaque objet initialement placé sur le plan, la suite de déplacements étant déterminée à partir des données de primitives du plan. Dans l’exemple représenté, le module 1 est réalisé sous forme de tablette tactile comportant l’unité de calcul 2, le pilotage du module 1 pouvant être matériel ou manuel. Données d’intensité : les forces Dans l’invention les données d’intensité sont appelées forces. Dans l’acception artistique du terme, on ne considère pas ici une forme vectorielle de force, mais plutôt une intensité I dont sera(ont) imprégné(s) un ou plusieurs paramètres d’objets ou plan. La notion d’objet est définie plus loin. Une force est une suite numérique définissant un profil d’évolution en fonction du temps. Ce temps est discrétisé selon l’expression classique t = nTe, où Te est la période d’échantillonnage. Plus la période d’échantillonnage est petite, plus la granularité du profil est fine. En contrepartie, le profil possède un plus grand nombre de points à calculer, impliquant une augmentation des temps de calcul. Selon une possibilité : La force est par nature périodique, mais on peut imaginer des cas où elle s’évanouirait après une application unique. Le profil de la force est donc défini sur exactement une période T = NTe. Sans perte de généralité, il est possible de fixer arbitrairement la durée de la période T à 1 minute (ce choix est lié à l’unité du rythme qui sera évoqué au prochain paragraphe). Ainsi, par défaut, tous les profils de force possèdent : points c’est-à-dire en mémoire un tableau de 600 nombres flottants en simple précision. L’unité de calcul peut être configurée pour mettre en œuvre un profil de force prédéterminé enregistré dans une unité de stockage. Le profil de force prédéterminé est par exemple un profil sinusoïdal, référencé f1 sur . Il s’agit d’un profil oscillant. L’expression mathématique est donnée par : Le profil sinusoïdal aurait pu être un sin au lieu d’un cos, mais l’avantage de ce dernier est qu’il commence à 1 (alors que le sin commence à 0), ce qui présente à l’usage quelques avantages au niveau de la synchronisation avec le rythme de la musique. Le profil de force est par exemple un profil logarithmique, référencé f2 sur . Il s’agit d’un profil « pulsant », avec des amplitudes assez fortes en début de période, mais pendant une courte durée, suivie d’une phase de décroissance quasi linéaire jusqu’à une valeur nulle. L’expression mathématique est donnée par : Le profil de force prédéterminé est par exemple un profil exponentiel, référencé f3 sur . Il s’agit d’un profil croissant, partant d’une amplitude unitaire pour culminer assez rapidement à la plus grande des amplitudes proposées. L’expression mathématique est donnée par : Il est possible de jouer sur l’« accélération » de la courbe en ajustant le coefficient 3/2. Le profil de force est par exemple un profil en échelon, référencé f4 sur . Il s’agit d’un profil de type « tout ou rien », avec une zone de transition abrupte en milieu de période. L’expression mathématique est donnée par : L’invention permet aussi de créer des forces personnalisées, issues non pas d’expressions mathématiques, mais directement déterminés par l’utilisateur au moyen de déplacement d’un outil sur un écran tactile, l’outil pouvant être le doigt de l’utilisateur. Données de rythme Dans le paragraphe précédent, nous avons fait intervenir la variable temporelle t. Ce temps ne correspond pas forcément à celui qui s’écoule dans la réalité. Si l’on souhaite modifier la fréquence des oscillations, la façon naturelle de faire serait de se ramener à et de vouloir changer la fréquence en lui appliquant un coefficient. Cette vision ne s’applique pas ici. En effet, le temps t associé à la force parcourt toujours l’intervalle [0 ; T]. Modifier la formule conduirait à construire soit une sinusoïde tronquée, soit un motif répété, mais pas forcément un nombre entier de fois, ce qui est un résultat indésirable dans les deux cas. L’invention propose d’introduire des données B de rythme. Le rythme, dont l’unité est en BPM (pour l’anglais beats per minute ), détermine dans le modèle le nombre de fois où le profil de la force est parcouru en une minute. Ainsi, pour un rythme de 1 BPM, le profil est parcouru 1 fois, et 1 minute s’écoule. C’est le seul cas où le temps apparent coïncide avec le temps absolu. Pour un rythme de 100 BPM, le profil de la force est parcouru 100 fois par minute. Le temps apparent, appelé également temps fréquentiel (il n’est d’ailleurs plus homogène à des secondes), s’écoule donc 100 fois plus vite que le temps absolu. Si on note la valeur du rythme, on a donc : Pour modifier la fréquence des oscillations, il suffit de modifier la valeur du rythme (par exemple, doubler le rythme pour doubler la fréquence des oscillations). Il est possible d’établir une correspondance entre le temps que l’on mesure et l’index correspondant de la case du tableau de force, pour la force en cours d’évaluation, soumise au rythme choisi. On fixe l’origine des temps au démarrage de l’application. On appelle l’instant absolu courant modulo T : L’index recherché n’est autre que : Supposons que le temps réel écoulé t soit en millisecondes, alors l’expression devient : En considérant un offset sur le temps, l’expression finale de l’index n est donc : L’unité de calcul peut être configurée pour mettre en œuvre un rythme prédéterminé enregistré dans une unité de stockage. L'invention permet aussi de créer des rythmes personnalisés, directement déterminés par l'utilisateur au moyen d'un outil sur un écran tactile, l'outil pouvant être le doigt de l'utilisateur. Données de mouvement : les champs de vecteurs L’unité de calcul est configurée pour appliquer un déplacement au centre de chaque objet, repéré par ses coordonnées . Ainsi, à tout point de l’espace on fait correspondre un vecteur V de déplacement formant un champ : Si, à l’instant t, les coordonnées du centre d’un objet sont , alors à l’instant , les nouvelles coordonnées du centre deviennent : est appelé période de rafraîchissement. C’est le temps qui s’écoule entre l’affichage de 2 images consécutives. C’est donc l’inverse de la fréquence de rafraîchissement, appelée FPS (pour l’anglais frames per second ). Sans perte de généralité, il est proposé de fixer arbitrairement une durée de référence pour la période de rafraîchissement à 40 millisecondes : ce choix correspond à une valeur de 25 FPS, valeur usuelle dans le domaine audiovisuel. Cependant, le module 1 de génération peut être réglé selon une plage préférentielle de 10 FPS à 100 FPS. Une constante est introduite dans la formule précédente, réécrite de façon allégée : Lorsque , les images sont rafraîchies à une fréquence deux fois plus grande que la fréquence de référence. Une autre constante est introduite pour contraindre les déplacements : D’autres valeurs de la constante σ sont possible, telles 0,01 ou encore 0,02. En incorporant la force (intensité de déplacement) appliquée à l’objet, l’expression de déplacement s’écrit : L’espace est discrétisé selon un nombre de points , par exemple selon une valeur L de points. L’unité de calcul peut être configurée pour mettre en œuvre un champ de vecteurs prédéterminé enregistré dans une unité de stockage. Le champ de vecteurs prédéterminé est par exemple un champ constant, dont l’expression mathématique est donnée par : Les objets sont alors déplacés en ligne droite. Il est également possible de jouer sur l’angle de la trajectoire, avec par exemple dans le cas ci-dessus . Le champ de vecteurs prédéterminé est par exemple un champ ondulant, dont l’expression mathématique peut être donnée par : Les objets sont alors déplacés horizontalement vers la droite (la valeur 3 est à ajuster selon la vitesse désirée et son signe selon la direction désirée), tout en oscillant légèrement verticalement. Le champ de vecteurs prédéterminé est par exemple un champ circulaire, dont l’expression mathématique peut être donnée par : Les objets se déplacent de façon concentrique, dans le sens inverse des aiguilles d’une montre. Le rayon de la trajectoire circulaire est d’autant plus grand que l’objet est posé éloigné du centre. Le champ de vecteurs prédéterminé est par exemple un champ en spirale, dont l’expression mathématique peut être donnée par : Les objets se déplacent de façon concentrique, dans le sens inverse des aiguilles d’une montre. Ils s’éloignent de plus en plus du centre au fur et à mesure de leur parcours. Le champ de vecteurs prédéterminé est par exemple un champ trigonométrique, dont l’expression mathématique peut être donnée par : L’invention permet aussi de créer des champs personnalisés, issus non pas d’expressions mathématiques, mais directement déterminés par l’utilisateur au moyen de déplacement d’un outil sur un écran tactile, l’outil pouvant être le doigt de l’utilisateur. Données d’objet Il existe quatre catégories d’objet : des contenus multimédias, pour l’anglais asset , des lanceurs, pour l’anglais launcher , des comportements, pour l’anglais behaviour , des plans. Les assets sont des objets déposés sur un plan, possédant des paramètres internes, ces paramètres pouvant être visuels ou comportementaux, tels que la position, l’angle de rotation, l'opacité, la couleur, la durée de vie, ou tout autre paramètre programmé à l’intérieur de l’objet permettant de définir sa représentation, son comportement ou son apparence. Les valeurs des paramètres des assets sont déterminées : soit par les données des primitives qui leur ont été attribuées ; soit de façon statique. Les assets se déplacent selon le mouvement déterminé par les données des primitives du plan sur lequel ils sont déposés. Il peut s’agir soit d’éléments : de nature visuelle tels que des bitmaps (images .bmp, .jpg, .png ou images animées .gif ou vidéos .mp4, .avi) ou d’entités procédurales (dessinées par des instructions de code) ; de nature sonore tels que des flux audio (sons .wav, .mp3, .ogg ou sons diffusés streaming ou microphone) ou d’entités procédurales (jouées par des instructions de code). Les lanceurs sont des objets virtuels déposés sur le plan. Les lanceurs disposent de leurs propres primitives, indépendamment de celles du plan sur lequel ils sont déposés. Ainsi, un lanceur peut se déplacer sans lien avec le plan, et déposer lui-même sur le plan le type d’objet désiré à intervalle de temps régulier. Ainsi, un lanceur peut par exemple déposer périodiquement soit un contenu multimédia, soit un autre lanceur. Afin de savoir comment se déplacer, le launcher reçoit 3 primitives : force, rythme, mouvement (en cas d’omission, le launcher restera immobile). Afin de savoir à quel intervalle déposer son objet, le launcher reçoit 1 primitive : rythme (obligatoire). Les comportements sont des objets virtuels pouvant s’appliquer à un (ou plusieurs) plans ou à un (ou plusieurs) objets. On entend par comportement tout changement de taille, couleur, rotation, échelle, opacité, ou tout autre comportement scripté (décrit par des instructions de code). Afin de savoir quelle transformation appliquer, le comportement peut exposer des entrées pour y recevoir des primitives : force, rythme ou mouvement (en cas de force constante, d’omission de force ou de rythme, le comportement adoptera les valeurs par défaut). La composition visuelle résulte d’une multitude d’objets dont les paramètres évoluent selon les données des primitives qui leur ont été attribuées. Un plan est un calque, c’est-à-dire une surface d’affichage ayant un fond transparent, apte à recevoir des objets se déplaçant selon les primitives attribuées au plan. La composition finale est constituée par la superposition d’un nombre quelconque de plans, du plus éloigné (arrière-plan), jusqu’au plus proche. La composition finale peut également être dispatchée sur plusieurs fenêtres de rendu. Chaque fenêtre de rendu diffuse alors tout ou partie des plans travaillés. Séquenceur Un séquenceur permet d’émuler des primitives de façon composite. Le type du séquenceur est déterminé par le type de la première primitive qu’on y insère. Une fois que le type est fixé, on ne peut y insérer que des primitives du même type. Le séquenceur devient tour à tour (en boucle ou en application unique) chacune des primitives le constituant, soit de manière successive, soit de manière aléatoire, soit selon un motif (pour l’anglais pattern) prédéterminé. Remarque : afin de savoir à quelle cadence il doit muter, le séquenceur reçoit 1 primitive : rythme (obligatoire). Par exemple, si on veut créer une force composite possédant une action montée (croissante), une action plateau (constante) et une action descente (décroissante), le tout de façon périodique et où chaque action dure 2 secondes, il suffit de créer un séquenceur en mode boucle et de type force (dans lequel on insérera les 3 forces croissante / constante / décroissante) recevant en entrée un rythme de 30 BPM. Instrument audiovisuel temps réel Un mode de réalisation de l’invention peut être un logiciel compilé, pouvant s’exécuter sur un ordinateur ou une tablette tactile. Ce logiciel embarque et implémente le procédé décrit dans l’invention, ce logiciel étant aussi appelé instrument dont l’utilisateur est appelé artiste A. L’instrument possède notamment : un système de gestion des forces, des rythmes et des mouvements ; un système de gestion des plans ; un système de gestion des objets et de leurs paramètres ; un espace de composition ; une bibliothèque d’assets permettant de les gérer, les manipuler, les trier et les ordonner L’instrument permet à l’artiste de créer son œuvre sur une fenêtre de travail et de la diffuser sur une pluralité de fenêtres de rendu (dont le contenu peut éventuellement varier d’une fenêtre à l’autre). Champs de mouvement personnalisés par « peinture » Dans une variante de réalisation de l’invention, les champs de mouvement ne sont plus forcément issus d’équations mathématiques, mais peuvent être directement tracés par l’utilisateur au moyen d’un outil de pointage, tel que son doigt sur un écran tactile, ou tel qu’une souris sinon. Les notations utilisées dans ce paragraphe sont les suivantes : Coordonnées d’un point d’ancrage, point initialement pointé par l’outil de pointage : Coordonnées d’un point courant, pointé par l’outil de pointage : Outils gradient En mettant en œuvre cet outil, l’artiste peut définir indirectement une ligne de partage, autour de laquelle s’organiseront des vecteurs lui étant orthogonaux et de normes atténuées selon son éloignement. Le point d’ancrage et le point courant suffisent à définir une droite. On veut déterminer l’équation de la droite qui lui est orthogonale, et qui passe par le point d’ancrage. Sachant que le produit des coefficients directeurs de 2 droites orthogonales vaut –1, celui de la droite de partage recherchée vaut donc : Les coordonnées du point d’ancrage doivent vérifier l’équation de la droite de partage, on peut donc déduire que l’ordonnée à l’origine est : Le champ que l’on souhaite peindre contiendra des vecteurs orthogonaux à cette droite (donc colinéaires à celle tracée par l’artiste) et dont la norme sera unitaire lorsqu’ils sont au contact, puis d’autant plus faible que leur point d’application sera éloigné et que la longueur du segment tracé par l’artiste sera courte. La distance entre la droite et le point d’application est donnée par : La longueur du segment tracé par l’artiste vaut : Condition pour respecter la colinéarité : Y=— X/a car et Condition pour respecter une décroissance exponentielle en fonction de la distance : . On peut donc résoudre le système : Finalement l’expression du champ de vecteurs recherché est : Pour obtenir des vecteurs uniquement du bon côté de la droite de partage, il suffit de s’assurer que . Une constante empirique est introduite uniquement dans le but d’améliorer l’expérience artistique. Dans le code source, la valeur retenue est . Outil pinceau En utilisant cet outil, l’artiste peut directement imprégner le champ de vecteurs du mouvement de l’outil de pointage. La vitesse de déplacement du pinceau (i.e. de la souris) reflétera l’intensité du champ au point considéré. Il n’y a pas besoin de point d’ancrage pour cet outil. Dans un exemple de réalisation, l’artiste travaille sur une grille de 21x21 tandis que le nombre de pixels à l’écran peut atteindre 1920x1080. Etant donné que le nombre de points du champ de vecteurs est faible en comparaison du nombre de pixels sur lesquels le pinceau peut réellement passer, l’idée est de ne pas se contenter de peindre les points du champ les plus proches de ceux survolés, mais de tous les peindre, avec une intensité d’autant plus faible qu’ils seront éloignés du coup de pinceau. La distance entre le point courant et le point d’application est donnée par : Si et caractérisent la position du pinceau à l’instant , alors leurs dérivées respectives caractérisent sa vitesse au même instant. Condition pour respecter le lien entre l’intensité et la vitesse : La notion de dérivée à temps continu se traduit par une simple différence (entre 2 valeurs consécutives) à temps discret. Condition pour respecter une décroissance exponentielle par rapport à la distance : Finalement l’expression du champ de vecteurs recherché est : Cette fois encore, la valeur de la constante est déterminée de façon empirique, dans le seul objectif d’améliorer l’expérience artistique. En pratique, une valeur pouvant être retenue est . Outil radial En utilisant cet outil, l’artiste peut tracer un cercle à l’intérieur duquel s’établira un champ newtonien, constitué de vecteurs centrifuges (ou centripètes) de normes atténuées selon leur éloignement, en suivant la loi dite « en carré inverse ». Ainsi, à chaque fois qu’on s’éloigne du centre du cercle d’un facteur 2, l’intensité du champ est divisée par 4. On souhaite également faire intervenir le rayon du cercle dans l’intensité du champ : plus le rayon est important, plus la norme des vecteurs sera augmentée. Le point d’ancrage est le centre du cercle. La distance entre le point courant et le point d’ancrage est le rayon du cercle : La distance entre le point d’application et le point d’ancrage est : Condition pour respecter le lien entre l’intensité et le rayon : Condition pour respecter la direction centrifuge (ou centripète) par rapport au point d’ancrage : Condition pour respecter une décroissance quadratique par rapport à la distance : On peut donc résoudre : Finalement l’expression du champ de vecteurs recherché est : La valeur de la constante pouvant être utilisée est . Outil magnus En utilisant cet outil, l’artiste peut définir une zone de turbulence inspirée de « l’effet Magnus » en mécanique des fluides. Ce dernier met en évidence la force tangentielle subie par un objet en rotation qui se déplace dans un fluide. C’est cette force qui explique la modification de trajectoire qui prend alors une forme incurvée. Cet outil a donc vocation à être utilisé par-dessus un champ constant par exemple afin de modifier asymétriquement le champ des vitesses autour de l’objet. Un champ NaN, pour l’anglais Not a Number , est imposé à l’intérieur de la zone de turbulence, de telle manière qu’aucun objet ne puisse y exister. Le point d’ancrage est le centre de la zone de turbulence. La distance entre le point courant et le point d’ancrage est le rayon de la zone de turbulence : On utilisera par la suite l’angle entre le point courant et le point d’ancrage par rapport à l’horizontale pour jouer sur le sens de la dépression : On décide de se placer dans un système de coordonnées polaires dont l’origine est le centre de la zone de turbulence : et La littérature en mécanique des fluides enseigne que, pour un champ de vitesse au repos constant horizontal d’amplitude V, le champ perturbé s’écrit dans le système de coordonnées défini ci-dessus comme : Le signe et l’amplitude de la constante G sont liés à la différence de pression dans le fluide de part et d’autre de la zone de turbulence. Selon l’invention, le champ constant et horizontal est remplacé par le champ moyen à l’intérieur de la zone de turbulence, avant l’étape où il est fixé à NaN. En notant respectivement et les amplitude et direction de ce champ moyen, les équations modifiées pour le champ perturbé sont : Les calculs pour obtenir ces expressions sont relativement classiques et ils n’ont donc pas été détaillés dans cette description. En revenant en coordonnées cartésiennes : La valeur retenue peut être . Outil displace En utilisant cet outil, l’artiste peut superposer des ondulations régulières par-dessus un champ existant, en étirant avec plus ou moins d’intensité dans une direction qui serait typiquement orthogonale au champ principal. Le point d’ancrage est un ventre d’ondulation, mais il n’a en réalité que peu d’importance car les « vagues » engendrées s’étendront sur tout le plan. La distance entre le point courant et le point d’ancrage correspond au segment étiré : Pour simplifier, on se place initialement dans le cas d’un champ principal horizontal, et d’un étirement vertical. Condition pour respecter le lien entre l’intensité et la taille du segment : Condition pour générer des ondulations régulières verticales : d’où Il faut maintenant généraliser à une orientation quelconque. Pour cela, on va considérer qu’on aura toujours une ondulation verticale, mais dans un repère tourné d’un angle : L’expression du champ de vecteurs recherché est : La constante peut être égale à . Outil twirl, pour l’anglais tourbillon En utilisant cet outil, l’artiste peut créer cercles, spirales et tourbillons, soit internes soit externes. Un champ NaN (Not a Number) sera imposé au centre du twirl, de telle manière qu’aucun objet ne puisse y exister. Le point d’ancrage est le centre du twirl. La distance entre le point courant et le point d’ancrage correspond à la puissance du twirl : On utilisera par la suite l’angle entre le point courant et le point d’ancrage par rapport à la verticale pour jouer sur l’inclinaison du twirl : Modifier l’inclinaison permet à l’artiste de créer des effets visuels très différents : Inclinaison nulle : effet radial Augmentation angulaire : effet spiral (externe) Point critique : effet circulaire Augmentation angulaire : effet spiral (interne) Deux cas particuliers sont donc facilement reconnaissables : Lorsque , le champ est radial Lorsque , le champ est spiral / circulaire On intuite les expressions trigonométriques (pondérées par l’intensité) suivantes : La valeur de la constante peut être . Combinaison de champs Seules les équations de champs individuels ont été évoquées jusque-là. Mais l’artiste a la possibilité de dessiner successivement plusieurs mouvements. Par exemple, un champ radial , puis deux coups de pinceau et , en terminant par un gradient . Le champ résultant est tout simplement la somme des champs individuels. Pour N mouvements dessinés par l’artiste, cela s’écrit donc : Champs de mouvement personnalisés par « gravure » Dans une variante de réalisation de l’invention, les forces ne sont plus forcément issues d’équations mais peuvent être directement tracées par l’artiste. Quelques exemples de profils ont été donnés précédemment. Mais l’artiste peut vouloir utiliser des profils plus complexes et/ou non réguliers. Dans tous les cas, l’idée est de ressentir l’évolution d’une « tension » en fonction du temps et du rythme de la musique, puis de « graver » ce qui résulte de la volonté artistique qui lui aura donné naissance au travers de ce geste. Dans le monde analogique, ce qui traduit au mieux ce phénomène est un fil ou une corde que l’on tend plus ou moins selon l’intensité qu’on veut appliquer. Dans l’instrument, il est proposé un cercle présentant un rayon de référence R(0), son rayon R peut être modifié à tout instant t par un outil de pointage déplacé par l’utilisateur (par exemple l’un de ses doigts): plus le rayon du cercle courant R(t) est grand, plus l’intensité est forte et inversement, plus le rayon du cercle courant R(t) est petit, plus l’intensité est faible. A chaque instant, l’intensité de la force (valeur gravée) sera calculée comme le rapport entre le rayon courant R(t) et le rayon de référence R(0): On peut bien sûr avoir des valeurs de forces inférieures à 1 et inversement, si on veut des valeurs de forces très grandes, il suffit d’avoir un cercle de référence petit. Une ligne de séparation est automatiquement tracée en pointillés dès que l’artiste pose son doigt. Tout franchissement de cette ligne inverse instantanément la polarité de la force pour les valeurs gravées après cet instant. Cela permet de générer une force négative. Enfin, il faut noter que cette méthode de gravure impose de facto que le premier point de la force soit toujours égal à 1, ce qui ne correspond pas nécessairement à la volonté de l’artiste. L’instrument est configuré pour proposer un système de recadrage (crop) qui permet, à l’issue de la gravure, d’ajuster les bornes de début et de fin du profil effectivement restitué. Système d’affichage décentralisé Dans une variante de réalisation de l’invention, les calculs pour la diffusion des fenêtres de rendu peuvent être déportés sur des boîtiers répartis en différents points de l’espace (salle(s) ou extérieur). Chaque boîtier peut alors être est connecté à au moins un système de diffusion associée à une fenêtre de rendu. Les systèmes de diffusions 102 peuvent être divers : un écran d’ordinateur, une télévision, un vidéoprojecteur, un mur-écran. L’instrument en tant que console matérielle Dans une variante de réalisation de l’invention, le logiciel laisse place à une console de contrôle partiellement ou entièrement matérielle. Les éléments la constituant peuvent être (liste non exhaustive) des écrans tactiles, des curseurs, des potentiomètres, des pavés tactiles ou plus généralement tout accessoire traditionnellement utilisé par les DJs / VJs. Contrôle à distance Dans une variante de réalisation de l’invention, le système peut être contrôlé à distance via Internet, afin d’en assurer son utilisation hors site dans le cadre d’une prestation évènementielle, ou bien sa maintenance dans le cadre d’une installation dédiée. Projection mapping Dans une variante de réalisation de l’invention, les fenêtres de rendu transmises aux systèmes de diffusion peuvent subir une transformation dite « déformation 4 coins » afin de pouvoir être projetées sur des volumes ou des structures en relief. Le mapping vidéo permet ainsi d’adhérer au plus près aux endroits choisis. Passage à la 3D Dans une variante de réalisation de l’invention, les champs de mouvements et les objets dessinés possèdent une dimension supplémentaire z en plus de x et y. Cela permet de créer une sensation de relief sur les compositions visuelles. Bien sûr, l’invention n’est pas limitée aux exemples qui viennent d’être décrits et de nombreux aménagements peuvent être apportés à ces exemples sans sortir du cadre de l’invention. De plus, les différentes caractéristiques, formes, variantes et modes de réalisation de l’invention peuvent être associés les uns avec les autres selon diverses combinaisons dans la mesure où ils ne sont pas incompatibles ou exclusifs les uns des autres. Procédé (P) de génération d’un flux d’images par une unité de calcul, chacune des images étant formée d’une pluralité de plans, chacun des plans présentant une pluralité d’objets (O1, O2) disposés sur ledit plan, chacun des objets d’un plan présentant une pluralité de paramètres (P1, P2, P3), le procédé comportant : une étape d’attribution (A1), pour chacun des paramètres des objets : de données dites de primitives (E2), comportant des données de mouvement, des données de rythme et des données d’intensité, une étape d’attribution (A2), pour chacun des plans : de données d’objet (E1) comportant une pluralité d’objets, chacun des objets comportant des coordonnées, dites associées à l’objet, dans le plan, de données dites de primitives (E2), comportant des données de mouvements, des données de rythme et des données d’intensité, une étape de génération (G) du flux d’images (E3) dans laquelle, pour chacun des plans, chacun des objets est initialement disposé à ses coordonnées associées, les paramètres visuels et comportementaux (P1,P2,P3) de chaque objet initialement placé sur le plan sont déterminés à partir desdites données de primitives attribuées et évoluent selon ces données de primitives. une suite de déplacements est appliquée à chaque objet initialement placé sur le plan, la suite de déplacements étant déterminée à partir des données de primitives du plan. Procédé selon la revendication 1, dans lequel les données de mouvements sont générées par l’utilisateur en temps réel au moyen d’un outil de pointage. Procédé selon la revendication 1 ou 2, dans lequel les forces sont générées par l’utilisateur en temps réel au moyen d’un outil de pointage. Module (1) de génération d’un flux d’images, chacune des images étant formée d’une pluralité de plans, chacun des plans présentant une pluralité d’objets (O1, O2) disposés sur ledit plan, chacun des objets d’un plan présentant une pluralité de paramètres (P1, P2, P3), le module comportant une unité de calcul (2) configurée pour : attribuer (A1), pour chacun des paramètres des objets : des données dites de primitives (E2), comportant des données de mouvement, des données de rythme et des données d’intensité, attribuer (A2), pour chacun des plans : des données d’objet (E1) comportant une pluralité d’objets, chacun des objets comportant des coordonnées, dites associées à l’objet, dans le plan, des données dites de primitives (E2), comportant des données de mouvements, des données de rythme et des données d’intensité, générer le flux d’images (E3) dans lequel, pour chacun des plans, chacun des objets est initialement disposé à ses coordonnées associées, les paramètres visuels et comportementaux (P1, P2, P3) de chaque objet initialement placé sur le plan sont déterminés à partir desdites données de primitives qui leur ont été attribuées et évoluent selon ces données de primitives, une suite de déplacements est appliquée à chaque objet initialement placé sur le plan, la suite de déplacements étant déterminée à partir des données de primitives du plan.