dream_attractor.htm

L´attracteur de rêve

Michel Bret & Marie-Hélène Tramus
Mars 2019 Laval-Virtuel



Certains liens ne seront pas actifs s´il n´y a pas de connexion internet.

Principe
Rêves animés créés par les visiteurs
Images
Interaction
Utilisation
Menus
Raccourcis clavier
Options
Fichiers spéciaux
Principaux paramètres
Make ima





























Principe

Intention
Musique
Technique

Intention

Suite à mon installation imaflow Marie-Hélène Tramus a proposé d´en faire un générateur visuel de rêves que nous avons décidés d´appeler attracteur de rêve:
L´idée était d´associer des extraits de certains de mes films avec de petites phrases les évoquant, le spectateur est alors invité à les combiner pour composer un court poème, lequel est interprété visuellement par une animation en temps réel des séquences correspondantes en accord avec une musique.

Musique

Elle peut être générée de deux fçons:

Mode displaylist

N´importe quelle musique est jouée en entrée du dispositif.

Mode sample

production automatique de musiques à partir d´un ensemble de fichiers *.wav. env/audio_server.func via une mémoire partagée.
Cliquer sur start_wav.js qui lance audio_server.js et dream_attractor_wav.js, audiuo_server est fermé automatiquement sur une fin normale du programme (par q ou EXIT), en cas de sortie anormale il faudra le stopper manuellement.

Technique

Cette installation reprend plusieurs procédés:
1) l´ automapping (1988)
2) l´algorithme de la cohérence de flux (2006) pour produire une harmonie entre la musique et le résultat visuel.
3) l´analyse fréquentielle de la musique (par fft)
4) un modèle dynamique (forces, couples, ...) agissant sur des surfaces déformables et sur différents paramètres contrôlant les transparences, les vitesses des animations, etc...



























>

Rêves animés créés par les visiteurs

Lors de l´exposition RECTO-VERSO, LAVAL-VIRTUEL mars 2019, les visiteurs sont repartis avec une trace de leur rêve animé comportant deux images de celui-ci accompagnées du texte l´ayant généré.
Musiques de Janvier Payrard et Christian Heintz

rêve 1
rêve 2
rêve 3
rêve 4
rêve 5

Images des rêves créés par les visiteurs






























Interaction


Spécial
Enregistrement des images
Interaction programmée

Spécial

Cliquer sur le petit rectangle (en bas et à droite de l´écran), ou enfoncer la touche P pour faire apparaitre:
Modifier les 3 échelles y1 y2 y3 pour ajuster les positions du texte à gauche, des images au centre et du texte à droite.
Cliquer sur WRITE pour enregistrer les paramètres dans le fichier DREAM.

Cliquer sur dir pour modifier les variations des dossiers: et
cliquer sur inc pour changer la vitesse de ces variations.
cliquer sur active pour modifier le nombre de pistes audio actives.
    -2: variation aléatoire des dossiers audio (valeur par défaut)
    -1: variation périodique des dossiers audio.
    0,1,... seulement ce dossier.
dans ce cas modifier amp,proba amplitude de la variation (maximum=nombre de dossiers de *.wav ,2 par défaut) et probabilité de variation du doissier autour de celui choisi (.75 par défaut).
Dans les 3 cas le choix du fichier wav est aléatoire dans le dossier choisi.

Enregistrement des images

Cliquer sur enregistrer image 1.
Cliquer sur enregistrer image 2.
Cliquer sur imprimer pour imprimer les 2 images sauvées et la liste des mots cliqués.
La touche b permet d´afficher les carastéritiques des volumex (les 2 dernières colonnes sont le numéro du dossier et celui du fichier wav).

Interaction programmée

L´option fun ou la touche F provoque l´exécution de la fonction
FUNC.func à image.
Dans cette fonction on peut appeler n´importe quelle commande ou fonction anyflo, par exemple:
set_dir(d): modifie le numéro du dossier courant.
set_amp_proba(amp,proba): modifie l´amplitude et la probabilité de la variation des dossiers (proba=0 pour un dossier fixe).
set_active(act): modifie le nombre act de pistes audio actives.



























Utilisation

Marche à suivre
Prompt
Mode spécial
Fichiers
Initialisation

Marche à suivre

Au lancement du programme:
Les noms des dossiers apparaissent, cliquer gauche pour naviguer dans tous les noms.
Cliquer sur l´un d´eux provoque le chargement des fichiers *.ima qu´il contient et le premièr d´entre eux est joué. Les connexions sont figurées par des segments.
On peut répéter cette opération.
Cliquer sur UNDO pour supprimer le dernier.

liste des mots et images correspondante aux mots cliqués



Cliquer sur OK lance la compilation du rêve, un directory Datas/Dream_dddd est créé et la liste des mots cliqués est écrite dans le fichier Datas/Dream_dddd/Dream_dddd, les images sauvées en cliquant sur write iilmagew le seront dans ce directory sous les noms A_dddd_0001 et A_dddd_0002
Une image Datas/Dream_dddd/A_dddd.jpg contenant ces 2 images et la liste des mots peut alors être imprimée.
Ces datas peuvent s´accumuler, pour les réinitialiser.

image en interaction avec la musique


Après 10 secondes la souris disparait, il suffit de la manipulet pour qu'elle réaparaisse ainsi que l´onglet AGAIN (sur lequel on clique pour construire un nouveau rêve).

Prompt

Un compteur Cpt_1 initialisé à 3*25=75 (soit 3 secondes) permet de n´afficher la souris et certaines informations que durant ce temps.
Un compteur Cpt_Time initialisé à 10*60*25 (soit 10 minutes) active le menu AGAIN et revient au choix de mots pour construire un nouveau rêve.

L'amplitude du son est gérée par nircmd.EXE.

Mode spécial

Cliquer sur le petit cadre (en bas et à droite de l´écran) rend actives les propriétés:
>ini num pour réinitialiser Num_Dream=0
Ce numéro peuvt être réinitialisé à 1 en cliquant sur dream_attractor_ini.js qui écrit 1 dans le fichier num_dream.
francais lit le fichier NAMx des noms.
english lit le fichier NAMx_eng des noms en anglais.

Cliquer sur les échelles nir max pour changer la valeur maximum du son, sur inc pour changer la vitesse de variation du son, et sur WRITE pour sauver les paramètres dans le fichier Dream_xxxx.

La durée de la compilation dépend du nombre d´images chargées.
Pour de nombreux fichiers préférer la lecture continue des fichiers images avec l´option dis afin de ne pas saturer la mémoire (il suffit de lancer dream_attractor("dis") voir dream_attractor_dis.js.

Utilisation en expo
Dans le programme principal dream_attractor() changer:
// interaction func(0,"F0")func(4,"F4")func(5,"F5")menu(0);Lock=1;
interaction func(0,"F0")func(4,"F4")func(5,"F5");Lock=0;

en:
interaction func(0,"F0")func(4,"F4")func(5,"F5")menu(0);Lock=1;
// interaction func(0,"F0")func(4,"F4")func(5,"F5");Lock=0;

ce qui a pour effet de lancer l´interaction avec l´option menu(0) ce qui bloquera l´usage des menus, la variable externe Lock est utilisée dans le programme à cet effet.

Exemples de ancements automatiques
dream_attractor_eve.js lance avec l´option eve (expension de l´image).

dream_attractor_kba.js lance avec l´option kba (expension de l´une des bases).

dream_attractor_eve.js lance avec l´option eve (expension de l´image).

dream_FUNC_0.js lance avec l´option fun=FUNC_0 qui exécute la fonction FUNC_0().
Même chose avec FUNC_1, FUNC_2, ... Cliquer sur des noms d´images (jusqu´ à 12).
Cliquer sur OK (lance la compilation du rêve).

Cliquer sur AGAIN pour construire un nouveau rêve.

Fichiers

L´application se lance en cliquant sur: start_displaylist.js qui lance dream_attractor_displaylist.js fonctionnement en mode displaylist.
start_sample.js qui lance dream_attractor_sample.js fonctionnement en mode sample.
Remarque: les options sont mises dans les fichiers dream_attractor_displaylist.js et dream_attractor_sample.js.

Le fichier FIC-256 contient la liste des dossiers contenant les fichiers *.ima
Le fichier NAM-256 contient la liste des noms associés qui ne doivent pas contenir d´espaces, le fichier NAM-256_eng contient les traductions en anglais de ces noms qui est activé en cliquant sur english.
Ces dossiers et ces noms peuvent être changés respectivement avec les options:
att=ddd et nam=nnn.
Les paramètres sont lus à partir du fichier DREAM, s´ils sont modifiés interactivement sur les échelles ils doivent être sauvés par:
PARAM->WRITE.
Ils peuvent aussi être modifiés directement dans le fichier DREAM.

Principaux paramètres
dim: change l´échantillonnage du signal
acc: influence de l´accélération du signal
rota: rotations
dila: dilatations
dil1: dilatation pour audio faible
dil2: dilatation pour audio fort
global: dilate tous les paramètres
event: contrôle l´effet E
memory: contrôle le lissage des valeurs
prompt: contrôle le timing du message CHANGE MOUSE, CLICK AGAIN
SENSOR->DISPL pour modifier les capteurs.

Le fichier
num_dream contient le numéro courant de Dream_dddd, liste des mots cliqués qui est sauvée à chaque clique sur OK.

Initialisation

Les dossiers Datas/Dream_dddd peuvent s´accumuler, utiliser l´optionn ini ou cliquer sur ini en mode spécial pour réinitialiser le numéro à 0, on peut aussi modifier le fichier num_dream avant le lancement ou encore cliquer sur dream_attractor_ini.js.
Il faut aussi détruire le contenu du directory Datas.

Réinitialisation des datas

Pour réinitialiser les datas cliquer sur dream_attractor_ini.js, ce qui a pour effet décrire 0 dans le fichier num_dream, puis détruire le contenu du directory Datas.

Make ima

make_ima.js lance la fonction make_ima.func
name1 est le nom du directory contenant les images jpg à compacter.
digit est le nombre de caractères sur lesquels sont écrits les numéros des images (4 ou 6, voir dans le dossier).
num est le premier numéro.
ni est le nombre d´:images à compacter.
name2 est le nom de l´image 3D compactée sous la forme name2-xxxxxx-yyyyyy.ima xxxxxx et yyyyyy sont calculés automatiquement.



























Fichiers spéciaux

*.js: lancement de programmes.
Datas/Dream_xxx: dossiers d´enregistrement des images.
env/*: fichiers de configuration.
exe/*: programmes utilitaires.
wav/*.wav: échantillons de musique.
DREAM: paramètres de lancement.
SENSOR: paramètres de lancement des capteurs.































Menus

Cliquer sur : (deux points) en bas de l´eeacute;cran ou enfoncer la touche : pour faire apparaitre et disparaitre les menus.

HEL
DOC
BUILD
DISPL
ANIM
NET
SENSOR
PARAM
SOUNDS
ILLUM
TEXT
TRANSP
DEBUG
CHANGE
DIR
VAR
INI
PROG
NUL
EXI

HEL

Aide.

DOC

Ce fichier.

BUILD

HEL
BASE
MULT

HEL

Aide.

BASE

Modifier:
nxy = définition des grilles.
nb = nombre de bases.

MULT

Modifier:
nb = nombre de mults.

DISPL

HEL
IMAGE

HEL

Aide.

IMAGE

Cliquer sur num1.

ANIM

Pour lancer l´animation (s´il n´y a pas d´image).

NET

Modifier:
       hide = nombre de couches cachées
       couples = nombre de couples d´apprentissage
memory(1)roll=.25*Sensor;
m=validate motif(memory(1))network(1);

PARAM

HEL
CHANGE
READ0
READ
WRITE
ROTA

HEL

Aide.

CHANGE

Modifier les échelles:
dim: dimension des motifs et des lois du réseau neuronal.
stif,visc: raideur et viscosité du ressort.
reac,visc,acc,exp: force de réaction fonction de l´accélération.
rota,tran,dila: rotation, translation et dilatation fonctions de l´accélération.
type: période du changement automatique de interpol texture number.
force: force add vertex vol(Base0).
stand: rotation au repos.
S_A: coefficient de valeur du capteur.
param: ensemble de paramètres.
directory: numéro du directory actif (option dis.
kdir: coefficient réglant l´amplitude des dossiers.
max_dir: nombre de dossiers.
disk: disk (fréquence de lecture des images).
global: coefficient multiplicateur global.

speed max: amplitude maximale de texture speed.
coe: coefficient multiplicateur de texture speed.
échelles des texture speed.

Tous ces paramètres sont lus et sauvés.

READ0

Lit et exeécute le fichier IMA_FLOW0 (ne pas modifier ce fichier).

READ

Lit et exeécute les fichier IMAFLOW et SENSOR, ces fichiers sont lus au lancement du programme.

WRITE

Écrit les paramètres dans les fichiers IMAFLOW et SENSOR.

DILA

yes/no dila vol(Base0)

TRAN

yes/no tran vol(SkyA)

SOUNDS

HEL
READ
PLAY
STOP
ON/OFF

HEL

Aide

READ

Cliquer sur des noms de fichiers wav: les charge.

PLAY

Cliquer sur n: joue wav numéro n.

STOP

Stoppe sounds.

ON/OFF

yes/no sounds.

DIR

HEL: aide
RAND: dossiers alétoires.
INV: dossier invariant, choisir num.

ILLUM

yes/no illum.

TEXT

yes/no texture.

TRANSP

Active/désactive la transparence automatique.

DEBUG

Mode debug, des messages sont émis.

CHANGE

Cliquer sur un nom d´image.

DIR

Si option dis (lecture des images sur le disque): modifier num:
       -1: dossiers variables
       >0: dossier invariable de numéro num

INI

Initialisation.

NUL

case vide du menu (juste avant EXI), supprime les messages.

EXI

EXI

Termine le programme.



























































Raccourcis clavier


a: yes/no displ mini menu.
B: cliquer sur le nombre de bases ou + -.
b: debug.
c: no/yes mult.
D: cliquer sur le numéro du directory ou + -.
d: yes/no dila.
F: active l´exécution de la fonction FUNC.func.
g: cliquer surle coefficient global ou + -.
h: help.
I initialisation.
i dossiers variables.
L: variation des dossiers dans un intervalle d´amplitude l.
l: cliquer sur amp ou + -, qui vaut [d,d+amp] avec d = numéro du directory courant. Pour revenir aux variations automatiques enfoncer la touche i.
M: cliquer sur le nombre de multiples ou + -. m: yes/no mobile.
N yes/no ="#NETWORK.
P: mode spécial.
q quitte le programme\n";
r: yes/no rota.

S: taper une chaine de caractères ccc suivie de ENTER,
la fonction STRING(ccc) est exécutée, permet de passer une commande sur plusieurs caractères du type "ccc"x1,x2,...
dans cette fonction:
   _ sort de ce mode
   ; yes/no mouse
   : yes/no menu
   h mini menu pour S
   b yes/no debug
   n yes:no name pour b
   Bx x bases
   gx global=x
   Mx mult=x
   sx coe sensor=x

s: cliquer sur le coefficient des capteurs.
T: yes/no transp.
t: yes/no tran.
L: dossiers variant dans un intervalle.
l: cliquer sur amp ou + -.
: cache les menus\n";
; cache la souris\n";
+: augmentation (selon le type B D g M S s)
-: diminutiion (selon le type B D g M S s)
v: yes/no variations automatiques
_: efface le mini menu.



























Options

: cache les menus
- cache la souris

att=xxx: fichier de dossiers contenant les séquences animées *.ima.

bas=n: nombre de bases

dis: lecture continue de toutes les imsges *.ima.
deb: mode debug
def=FIC: Le fichier FIC contient une liste de dossiers d´images 3D
dim=n: dimension des images (256 par défaut).
dir=../../ddd: Dir0 dossier des images (../../ima/ par défaut)
dis: lecture continue des images
dis=FIC: Le fichier FIC contient une liste de dossiers d´images 3D

eng: anglais
eve event

file=noms des dossiers contenant des images 3D *.ima
fi=File1 File2 ...: dosiers *.ima. fra: français (par défaut).
fun=FUNC: calls func FUNC, dans une telle fonction tous les paramètres peuvent être modifiés et toutes les fonctions appelées, on peut aussi faire: E(1), E(0), k(1), k(0), v(1) et v(0).
glo=c: coefficient multiplicateur global.
imanam=dir/name.eee nom des images sauvées, l´option num=im1,ni est obligatoire.
inc=d: incrément des dossiers (> 1 pour des machines rapides).
ini fait Num_Drem=Num_Write=1 et écrit le fichier DREAM_IMAGE=1,1.

jum=1: jump=1.

kba: k et E.

nam=nnn: noms associés apparaissant à gauche.
net réseaux neuronaux.
num=im1,ni premier numéro et nombre des images sauvées par l´option nam.
per: variation périodique de l´ordre des dossiers.
pro=s: durée (en secondes) du prompt CHANGE MOUSE, CLICK OK (180 = 3 minutes par défaut).
ale: variation alétoire de l´ordre des dossiers. rea: paramèstres par défaut de l´option senrea de lecture du capteur, modifier les paramètres après létiquette (case("rea").
reasav: paramèstres par défaut de l´option

options du capteur
senrea de lecture du capteur et des options sav et num, modifier les paramètres après létiquette (case("reasav").
sou=nnn: fichier de noms de sons (sounds)
sav: paramèstres par défaut de l´option imanam=dir/name.eee, après létiquette (case("sav") modifier les paramètres.
sensinwri: écriture du capteur sin.
sha: capteur via la mémoire partagée A.
sinsav: capteur SIN
sin: capteur SIN et sauvegarde des images.
sky=1,2,3,...: 1,2,3,... cieux.
spe: speak (annonce vocale en anglais)

tes=TEST: lir le fichier TEST de paramètres partuculiers.
tra: active la transparence automatique modifiable dans Coe_Transp.
ult: ultra
ult=n: fenêtre des dossiers d´amplitude n.
wav=Wav: mode sampledirectory wav/*.wav
wav=www: mode sampledirectory www/*.wav
Sans l´option Wwav: mode displaylist.
wri: paramèstres par défaut de l´option senwri d´écriture du capteur, modifier les paramètres après létiquette (case("wri").
































wav: nom du dossier des *.wav=wav.
wav=ddd: nom du dossier des *.wav.
S´il n´y a pas d´option wav fonctionnement en écoute d´une musique externe.



























Principaux paramètres

paramètres de dream attractor.
Paramètres spéciaux:
Sensor_Coe_Read: coefficient multiplicateur des mémoires.
Np_Wav contenant les durées (en nombre d´images) des échantillons de musique.
NP_Wav: nombre de fichiers *.wav, NIL si pas d´option wav.
Cpt_Wav: compteurs.
Np_Active: nombre d´audios actifs.
Music_Nb_Dir: nombre de sous dossiers du dossier wav.
Music_Nb_File: nombre de fichiers *.wa des sous dossiers du dossier wav.
Music_Num: noms des fichiers *.wav.
Music_Nb: nombre de fichiers *.wav.
Music_Ind: indice des numéros des fichiers *.wa dans chaque sous dossier.
Music_Perios=max(Np_Wav) durée maximum des fichiers *.wav.
Amp_Dir,Proba_Dir: amplitude et probabilité de la variation du numéro du dossier autour de celui choisi.
Period_Dir,Inc_Dir: variation périodique des dossiers.
Np_Active,Dir_Active,File_Active: pistes audio actives.
Func0: option fun: fonction FUNC.func exécutée à chaque umage.
Func="FUNC_n": option funFUNC_n: fonction FUNC.func exécutée à chaque umage.