IMAFLOW



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

Principe
Sounds
mini enu
Menus
Mini menu
Raccourcis clavier
Options
Options programmées
Outils
Temps différé
Programmes

































Principe

intention
Description
Interaction
Dechnique
Programmation
En mémoire
Sur le disque
Changement des paramètres
Dimension des images

Intention

Cette installation reprend deux techniques:
automapping (1988)
et l´algorithme de la cohérence de flux (2006)
pour produire une harmonie entre les actions du spectateur et le résultat.
Plusieurs jeux de paramètres et d´animations compactées dans des multi images (comprenant toute une série de plans de pixels) sont disponibles:
un univers floral (animation accélérée d´éclosion de fleurs).
animations diverses issues de mes films.

Plusieurs dimensions d´images sont disponibles.

Description

Il faut:
1) un local obscur d´environ 3m X 3m X 2.50m dont les 6 faces sont peintes en blanc.
2) un vidéo projecteur grand angle assez puissant dont l´image couvre toute la pièce (immersion).

vidéo projecteur ===> image <


3) un ordinateur PC: 4GHz, 8Go, système Windows, bonne carte graphique (NVIDIA récente).
4) plusieurs micros sur pied de hauteurs différentes (pour les enfants, les adultes et leur interaction, dont les signaus sont mixés vers l´entrée micro externe de l´ordinateur.

micros => input audio externe PC

Interaction

Les menus donnent accès à tous les paramètres.
Les raccourcis clavierdonnent accès à un mini menu permettant d´interagir avec ou sans affichage.
Une fonction string_.func peut être exécutée avec le paramètre chaine tapé après S. Le nom de cette fonction peut être changé avec l´option S=string_new.
Par défaut les numéros des dossiers actifs varient aléatoirement, la touche L passe en mode variation dans un intervalle [d,d+amp], avec d=numéro du dossier actif, pour choisir amp enfoner la touche l,amp augmente (touche +) ou diminue (touche -) ou cliquer sur l´échelle amp (si a est actif).

Technique

Un vecteur capteur (dimension = nombre de capteurs) et ses deux dérivées successives (vitesse et accélération) sont connectés aux paramètres de l´ automapping qui reproduit récursivement une scène 3D de surfaces mappées par des images animées stockées sous forme d´images 3D et également aux paramètres de génération de musique.

audio => fft => dynamique => automapping


Une couche "intelligente" est interposée entre la capture et l´ autommaping: les capteurs nourricent les entrées de réseaux neuronaux complètement connectés dont les entrées sont connectées aux variations de fft du signal audio et dont les sorties agisent sur les paramètres dynamiques de l´automapping.
Ces réseaux sont continuement entrainés par l´algorithme de la coherence de flux de façon à assurer une harmonie entre l´action des interacteurs et l´effet visuel ou musical obtenu.

audio => réseau neural => output => fft => dynamique => automapping => feed back

Programmation

Le programme sensor.func gère les capteurs.
Le programme net.func gère les réseaux neuronaux.
Et le programme principal imaflow.func gère l´automaping.
Ces programmes sont écrits en langage anyflo, commentés et modifiables.
Les paramètres courants sont stockés dans le fichier IMAFLOW et lus à chaque lancement du programme, les paramètres par défaut sont stockés dans le fichier IMAFLOW0 et ne doivent pas être modifiés.
Le menu PARAM_CHANGE permet de les modifier et le menu PARAM_WRITE permet de les sauver dans le fichier IMAFLOW.

Cette installation gère, en fonction des capteurs, un flux d´images animées stockées selon plusieurs modes:

En mémoire

Option def=FICFIC est une liste de dossiers diri supposées contenir des images 3D *.ima.
En cours d´animation la commande interpol texture speed(s)vol(id); change la vitesse des bitmaps du volume id.

Sur le disque

Option dis=FICFIC est une liste de dossiers diri supposées contenir des images 3D *.ima.

Changement des paramètres

Le menu PARAM_CHANGE donne accès à tous les paramètres.
Des raccourcis claviers permettent d´en changer certains sans afficher les menus correspondants (public show).

Dimension des images

L´installation peut se lancer suivant 3 dimensions d´images:

Dimension 128

Faible définition mais très rapide (convient pour de petites machines).
L´extension des fichiers de lancement est 128:
imaflow_def_128: images en mémoire
imaflow_def_fic_128 images en mémoire à partir du fichier FIC-128
imaflow_dis_fic_128 images lues à partir du fichier FIC-128

Dimension 256

Définition moyenne (convient pour la plupart des machines).
L´extension des fichiers de lancement est 256:
imaflow_def_fic_256 images en mémoire à partir du fichier FIC-256
imaflow_dis_fic_256 images lues à partir du fichier FIC-256

Dimension 512

Haute définition mais lent (ne convient que pour des machines rapides).
L´extension des fichiers de lancement est 512:
imaflow_def_fic_512 images en mémoire à partir du fichier FIC-512
imaflow_dis_fic_512 images lues à partir du fichier FIC-512

Sounds

Le menu SOUNDS permet de lire des fichiers .wav et de les jouer. Les commandes audio play(n) jouent le son n dépendant des variations des capteuurs.
Un fonctionnement avec feed-back peut être très simplement obtenu en rapprochant le micro des enceintes (en évitant le Larsen).
Remarque:
Pour modifier les paramètres: enfoncer la touche : (deux points).
Les sons sont joués par le programme principal imaflow.func, le capteur audio est lu par le driver audio_server.func lancé par audio_server.js, lui-même lancé automatiquemant pae imaflow_wav.js.

Sounds automatique

Cliquer sut imaflow_wav.js qui lance le driver audio_server.func de mémoire partagée, et aussi imaflow au bout de 2 secondes, ce qui permet à la fenêtre de ce dernier de couvrir le premier et ainsi de pouvoir interagir à la souris at au clavier.































Menus

Enfoncer la touche : (deux points) 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.
































Mini menu

Enfoncer la touche : (deux points) 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.
































Mini menu

Certaines touches (B D g M S s) donnent accès à un mini menu (non affiché par défaut mais pouvant être affiché par a) au bas de l´écran (couleur Col_Key=.5,.5,.5) permettant d´interagir de façon transparente.

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.
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.
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 la fonction modèle STRING0.func:
   _ 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

acc=n Coe_Acc[2]=n.
aud=n Sensor_Coe_Audio[2]=n.

bas=n: nombre de bases

cen: lit ../../../ima/cen/*.ima, voir make_cen pour construire de tellse images.
coe=c: Coe2[2]=Coe2[3]=e.


dis: lecture continue de toutes les imsges *.ima du directory ../../ima.
deb: mode debug
def: paramèstres par défaut, modifier les paramètres après létiquette (case("def").
def=FIC: Le fichier FIC contient une liste de dossiers d´images 3D.
dis: paramèstres par défaut, modifier les paramètres après létiquette (case("dis").
dis=FIC: Le fichier FIC contient une liste de dossiers d´images 3D.

fil=noms des dossiers contenant des images 3D *.ima
fil=File1 File2 ...: dosiers *.ima.
fil0="../../ima0": dossier de toutes les images *.ima (par défaut ../../ima).
for=c: force add vertex vol(Base0)
glo=c: coefficient multiplicateur global.
imanam=dir/name.eee nom des images sauvées, l´option num=im1,ni est obligatoire.
imo: immobile, il faut faire m pour mettre en mouvement.
mul=n: n surfaces multiples intercallées entre le ciel et les bases.
net réseaux neuronaux.
nombre: modifier le code aprè:s else /* imaflow(number) */
dans la fonction option(w)
num=im1,ni premier numéro et nombre des images sauvées par l´option nam.

r_i=nnn.eee: lecture des images sous les noms *nnn.eee (../../ima/sav_image/A.jpg par défaut).
r_s: read sensor memory; les valeurs des capteurs sont lues depuis le fichier mémoire écrit lors de la phase Enregistrement des capteurs

w_i=nnn.eee: enregistre les images sous les noms *nnn.eee (../../ima/sav_image/A.jpg par défaut).
w_s=nnn.mem: enregistre les capteurs dans le fichier mémoire nnn.mem (sensor.mem par défaut).
sensinwri: écriture du capteur sin.
sha: capteur via la m&eaute;moire partagée A.
sinsav: capteur SIN
sin: capteur SIN et sauvegarde des images.

tes=TEST: lir le fichier TEST de paramètres partuculiers.
tra: active la transparence automatique modifiable dans Coe_Transp.
TRA: PARAM_TRAN

wav=Wav: directory *.wav
wri: paramèstres par défaut de l´option senwri d´écriture du capteur, modifier les paramètres après létiquette (case("wri").

com

com=d1 d2 ...: calcule toutes les images à partir de dossiers di contenant des images 3D.

Options programmées

Les fichiers *.js donnent des exempled d´options programmées.
Les options peuvent être ajoutées dans la fonction option():

imaflow_senwri.js: écrit les valeurs du capteur dans le fichier sensor.mem.

imaflow_reasav.js: lit les valeurs du capteur depuis le fichier sensor.mem et sauve les images dans les fichiers ../../A/A[0001,500].bmp

imaflow_sinsav.js">: capteur type sin et sauve les images dans les fichiers ../../A/A[0001,500].bmp.

imaflow_wav.js: fonctionnement autonome, les sons captés produisent d´autres sons qui peuvent être réinjectés en boucle.

Montage:
Aller dans ../mount et monter les séquences d´images.
Aller dans ../ima_song et générer la musique à partir des images de ../../ima/title.

Finalement monter les images et les sons par exemple dans premiere ou videopad.































sensor.func

Outils

make_ima

make_ima.func lancé par make_ima.js

Il est nécessaire de modifier le code de la fonction:
name1="../../../images/AUTOMAPPE/.jpg"; /* nom des images à compacter */
num=8; /* premier numéro */
ni=12; /* nombre d'images */
d=256; /* taille de l'image compactée */
digit="6D"; /* nombre de chiffres des numéros */
dir2="../../ima/ima256/AUTOMAPPE-256/";
construit le fichier name2.ima dont les couches sont les images A[num,num+ni-1].zzz/D de dimension d.

make_cen

make_cen.func lancé par make_cen.js construit les images ../../../ima/cen/*.ima par:
image(i)dim(x,y,z)sin center.
Il est nécessaire de modifier le code de env/make_cen.func

redim

redim.func lancé par redim.js change les dimensions d´image 3D *.ima
Il est nécessaire de modifier le code de env/redim.func

Temps différé

Méthode
Enregistrement des capteurs
Enregistrement des images

Méthode

Pour des images de grande taille (>256) et/ou de grandes bases de donnée le temps réel n´est plus possible.

Enregistrement des capteurs

Lancer l´application avec l´option w_s: write sensors.

Enregistrement des images

Lancer l´application avec les options:
       r_s: read sensor memory,
       w_i: write image, les images sont écrites dans les fichiers de nom w_i: name image nnn.eee.

Des capteurs automatiques:
RAND
SIN
permettent d´enregistrer directement les images .
Exemples:
       imaflo_rand_wri.js
       imaflo_sin_wri.js
modifier le code après l´étiquette case("wri"):

Programmes


imaflow
sensor
network

imaflow

nb=Nb_Base[2] grilles de base de numéros [Base1,Base1+nb[ supportent ni textures [Read,Read+ni[ lues par texture directory et interpolées par interpol texture.
la dynamique de ces grilles est fonction des valeurs Sensor_Val du capteur calculées dans la fonction sensor_get().
L´image est reprise par automapping sur ns=Nb_Sky[2] et nm=Nb_Mult[2] grilles animées de la même façon.
Le vecteur Sensor_Val est transformé par des réseaux neuronaux presque complètement connectés entraînés par l´algotithme de la cohérence de flux.