Title: Vers un environnement gnrique daide au dveloppement dapplications interactives de simulations de mta
1Vers un environnement générique daide au
développement dapplications interactives de
simulations de métamorphoses
2Introduction
Introduction
- Applications
- Cinéma
- Jeux Vidéo
- Art Contemporain
- Domaine scientifique
3Introduction
Introduction
Croissance et évolution de plantes au cours du
temps
Phénomènes corpusculaires (Nuages, feu)
Applications ?
4Introduction
Introduction
Métamorphose Suite dobjets (O1 On) Oi -gt Oi1
appliquer des transformations géométriques et
topologiques
Où est le problème ?
5Difficulté
Introduction
Ce que lon voudrait faire
Pour chaque top dhorloge Faire Pour tous les
axes AX de larbre Faire Selon
Ordre(AX) Faire 1 gt Pour toutes
les aretes AR de AX Faire Si
Age(AR) lt AgeMax Alors
InterpolationAge0,AgeMax-gtLong0,LongMax
Sinon LongMax
FinSi FinPour Si (Age(AX) lt
AgeMax) Alors Si Date Modulo
Frequence1 0 Alors
Ajouter_Arete FinSi Si
Date Modulo Frequence2 0 Alors
Ajouter_Axe (Ordre gt 2) FinSi
FinSi Etc. Autres gt Rien
FinSelon FinPourFinPour
Ce quil faut faire pour lobtenir
?
6Problèmes
Introduction
- Cycle de codage/compilation/test
- Décalage mental entre les représentations
7Question
Introduction
for (i1iltnbrei) métamorphose()
fairemachine() etc encore
Comment amener plus dinteractivité dans le
domaine de la création de métamorphoses ?
Métamorphose pour les nuls
8Introduction
Introduction
- Plan
- Etude des différentes techniques danimation
(analyse des besoins) - Dialogue et Architecture logicielle (conception
logicielle) - Environnement de développement (réalisation
logicielle)
9Animation
Introduction
Animation
- Méthodes existantes
- Méthodes basées sur la topologie
- Outils algorithmiques pour la conception de
métamorphoses
10Méthodes
Animation
Systèmes de contrôle Comment lutilisateur
maîtrise lanimation
Modèles danimation Informations propres à un
domaine particulier
Positions clefs
Pour chaque top dhorloge Faire Pour tous les
axes AX de larbre Faire Selon
Ordre(AX) Faire 1 gt Pour toutes
les aretes AR de AX Faire Si
Age(AR) lt AgeMax Alors
InterpolationAge0,AgeMax-gtLong0,LongMax
Sinon LongMax
FinSi FinPour Si (Age(AX) lt
AgeMax) Alors Si Date Modulo
Frequence1 0 Alors
Ajouter_Arete FinSi Si
Date Modulo Frequence2 0 Alors
Ajouter_Axe (Ordre gt 2) FinSi
FinSi Etc.
Maillage
Algorithmes
11Méthodes
Animation
Pour chaque top dhorloge Faire Pour tous les
axes AX de larbre Faire Selon
Ordre(AX) Faire 1 gt Pour toutes
les aretes AR de AX Faire Si
Age(AR) lt AgeMax Alors
InterpolationAge0,AgeMax-gtLong0,LongMax
Sinon LongMax
FinSi FinPour Si (Age(AX) lt
AgeMax) Alors Si Date Modulo
Frequence1 0 Alors
Ajouter_Arete FinSi Si
Date Modulo Frequence2 0 Alors
Ajouter_Axe (Ordre gt 2) FinSi
FinSi Etc.
Dautre part les modèles, comme ceux utilisant
les propriétés physiques des objets ne suffisent
pas pour représenter des modifications
topologiques gt méthodes spécialisées
Mouvements et déformations
Structure
Ok
Non
12Ce que lon veut
Animation
Représenter des phénomènes naturels gt
Modifications topologiques
Deux techniques Grammaires Méthodes basées sur la
topologie
13Grammaires
Animation
Problème Pour décrire des comportements plus
évolués il faut introduire des notions propres à
la programmation
14Méthodes basées sur la topologie
Animation
- Systèmes de particules (nuages, vols doiseaux,
etc.) - AMAP
15Méthodes basées sur la topologie
Animation
- Objets structurés (exemple arbre)
- Métamorphose suite dobjets (O1 On)
- Oi à Oi1 appliquer des transformations
géométriques et topologiques à Oi et ses sous
éléments - Comportement associé aux sous-objets
- Appliquer les transformations parcourir lobjet
16Outils algorithmiques
Animation
Etude dexemples Aspect filaire dobjets 3D ou 2D
Pour chaque top dhorloge Faire Pour tous les
axes AX de larbre Faire Selon
Ordre(AX) Faire 1 gt Pour toutes
les aretes AR de AX Faire Si
Age(AR) lt AgeMax Alors
InterpolationAge0,AgeMax-gtLong0,LongMax
Sinon LongMax
FinSi FinPour Si (Age(AX) lt
AgeMax) Alors Si Date Modulo
Frequence1 0 Alors
Ajouter_Arete FinSi Si
Date Modulo Frequence2 0 Alors
Ajouter_Axe (Ordre gt 2) FinSi
FinSi Etc. Autres gt Rien
FinSelon FinPourFinPour
17Outils algorithmiques
Animation
- Construction
- Création dun arbre
- Insertion dun axe secondaire
- Ajout dun entrenud
- Modification géométrique
- Angle dun entrenoeud
- Longueur dun entrenoeud
- Calculs
- Taille dun axe
- Longueur dun axe
- Ordre dun axe
- Longueur dun entrenud
- Angle dun entrenud
- Age dun entrenud
- Position dun entrenud dans laxe
- Opérations mathématiques
- Interpolations
- Modulo
- Structures de contrôle
- Conditions
- Boucles
- Algorithmes
- Parcours de la structure
18Conclusion Animation
Animation
Question Comment créer une application permettant
de modéliser facilement de telles
transformations ?
Modifications Géométriques Pas de problèmes
Pour chaque top dhorloge Faire Pour tous les
axes AX de larbre Faire Selon
Ordre(AX) Faire 1 gt Pour toutes
les aretes AR de AX Faire Si
Age(AR) lt AgeMax Alors
InterpolationAge0,AgeMax-gtLong0,LongMax
Sinon LongMax
FinSi FinPour Etc. Autres gt
Rien FinSelon FinPourFinPour
Modifications Topologiques Solution algorithmique
et textuelle
19Architecture
Animation
Architecture
- Création dune application de simulation de
métamorphoses
- Type dapplication et dialogue
- Architectures
- Solution architecturale H4
- H4 augmenté Manipulation Directe et DTS Edit
20AGICT
Architecture
Application Graphique Interactive de Conception
Technique
Application permettant de créer une
représentation informatique dun objet technique
susceptible dêtre manipulée par des fonctions
programmées de simulation ou de production
Cest le cas des applications de simulation de
métamorphoses
21Dialogue Structuré
Architecture
Decomposing a main goal into sub-goals is the
natural way for users to solve problems Norman
1986
Une tâche peut utiliser le résultat d'une autre
tâche pour son exécution Quest-ce que cela
signifie ?
22Dialogue Structuré
Architecture
Commandes
Ajouter un entrenud
/
Axe
Récupérer Longueur
2
Récupérer le Dernier Entrenud
Notion de production/consommation
Axe
Valeurs/Objets
23Dialogue Structuré
Architecture
Récupérer Longueur
Production / Consommation Organisation
hiérarchique des tâches tâches de production
sont d'abstraction plus faible que celles de
consommation
valeur
Récupérer le Dernier Entrenud
Nécessité de définir les tâches ET les
informations produites et consommées
Quelle architecture pour notre application ?
24Architectures et Dialogue Structuré
Architecture
- Pas de solution universelle
- Modèles classiques mal adaptés au support de
tâches structurées et multi-paramètres - Aucun support méthodologique pour le Dialogue
Structuré - Solution H4
25Le modèle H4
Architecture
- Créé en 1993 Guittet, Pierra, Girard
- Hybride, basé sur ARCH
- Décrit précisément le contrôleur de dialogue
- But prendre en compte le dialogue structuré
Contrôleurde dialogue
Adaptateurde N.F.
AdaptateurdePrésentation
Présentation(Toolkit)
NoyauFonctionnel
26Le modèle H4
Architecture
- CdD sur les principes du dialogue structuré
- Notion de production / consommation
- Tâches questionnaires
- Questionnaires regroupés en interacteurs
- Interacteurs organisés hiérarchiquement
- Jetons transportent des valeurs
- Moniteur organise le passage des jetons entre
les différents interacteurs
27H4 Contrôleur de Dialogue
Architecture
Présentation
Interacteurs
Questionnaires
Moniteur
Noyau Fonctionnel
Entrenoeud
Entrenoeud
-
Entrenoeud
Longueur EN
Longueur EN
Division
Longueur EN
2
Entrées / Sorties
gt
28H4 Problèmes
Architecture
- Dialogue
- Contraintes du Dialogue Structuré
- Nécessité dun autre dialogue Manipulation
Directe
- Contrôleur de Dialogue
- Difficulté de lécriture
- Erreurs
- Vérifications
Questionnaire Q_Circle_P_N (create_circle,
position,numeric) Questionnaire Q_Circle_P_P
(create_circle, position,position) Diaget
Creation (Creation, Q_Circle_P_N,
Q_Circle_P_P) Monitor my_monitor (Creation)
29Manipulation Directe
Architecture
Manipulation Directe manipulation dobjets
graphiques à lécran avec retour immédiat
Interacteurs
En attente dune commande avant paramètres
Problème Dialogue Structuré logique
pré-fixée Manipulation Directe logique
post-fixée
30Modifications pour la MD
Architecture
Moniteur détermine le mode de dialogue
Filtre et jetons
Interacteurs spécialisés
Moniteur
Manipulation Directe
Sélection Objet
Sélection Poignée
Interacteur i
Interacteur 1
Filtre
Présentation
31Un Editeur pour H4
Architecture
- Mise en uvre de H4 Texier 2000 ensemble de
classes implémentant H4 - Exemple
- But faciliter lécriture du CdD
Questionnaire Q_Circle_P_N (create_circle,
position,numeric) Questionnaire Q_Circle_P_P
(create_circle, position,position) Diaget
Creation (Creation, Q_Circle_P_N,
Q_Circle_P_P) Monitor my_monitor (Creation)
32DTS-Edit
Architecture
Mise en uvre de la Boîte à Outils de manière
interactive
- Vérification de certaines propriétés
- Un interacteur peut-il recevoir un certain token
? - Est-ce que 2 questionnaires appartenant à deux
interacteurs ont le même nom ? - Est-ce que 2 questionnaires partagent la même
séquence de tokens ?
33DTS Edit
Architecture
Questionnaire Q_Circle_P_N (create_circle,
position,numeric) Questionnaire Q_Circle_P_P
(create_circle, position,position) Diaget
Creation (Creation, Q_Circle_P_N,
Q_Circle_P_P) Monitor my_monitor (Creation)
34Conclusion Architecture
Architecture
- H4 permet la prise en compte du Dialogue
Structuré - Implémentation Boîte à outils et Editeur
interactif - Possibilité dextension avec la Manipulation
Directe
Quelle solution interactive pour la création
dune application de création de simulations de
métamorphoses ?
35Environnement
Architecture
Environnement
- Mettre en uvre de manière interactive
- Algorithmes (parcours)
- Boucles, Conditions
- Paramètres, Variables
36Programmation interactive
Environnement
- Préférences
- Langages de script
- Macros
- Programmation visuelle
- Programmation sur exemple
Dans tous les cas Domaine bien défini Noyau
Fonctionnel unique
37Environnement
Environnement
- Originalité de lapproche Un modèle générique
- Un moteur de Programmation sur Exemple
- Interpréteur basé sur H4
- Règles denregistrement
Enregistrement
Rejeu
CdD
NF spécialisé
AP
ANF
NF Générique
TK
38Environnement Modèle Générique
Environnement
Container
- Structure dun objet
- Composition en sous-objets
- Lien avec des scénarii
- Parcours de lobjet
SupportDeProgramme
Parcours_actif boolean
InitParcours()
ParcoursEnCours()boolean
LienVersSDSSuivant()SupportDeScenario
ExecuterScenario(ListParameter)
possède
1
CList
1
ltltbindgtgt(SupportDeScenario)
ltltbindgtgt(Action)
Container
ltltbindgtgt(Parametre)
ListSupportsDeScenario
LActions
LParametres
ltltbindgtgt(TokenParameter)
1
1
CMap
ListParameter
1
est défini par
contient
1
est régi par
SupportDeScenario
1
régit
Scenario
GetScenario()Scenario
n
39Moteur de PsE Interpréteur
Environnement
- Idée utiliser le Contrôleur de H4
- (utilisation des outils existants)
- Scénario séquence de jetons
- Jetons
- Moniteur de Scénario
- Interacteurs et questionnaires
- Adaptateurs
Adaptateur de Scénario
Moniteur de Scénario
Interacteur
Interacteur
Interacteur
Scénario
N.F.
Quid des structures de contrôle ?
40Interpréteur Conditions
Environnement
Moniteur de Scénario
Alors
AlorsSinon
Commande
Alors
Si
Initial
Sinon
Sinon
Commande
Interacteur i
Interacteur 1
Commande
Si
Initial
Si
Filtre
Booléen
Scénario
41Interpréteur Boucles
Environnement
Moniteur de Scénario
Faire
Faire
Commande
Faire
Tant Que
Initial
Fin
Fin
Commande
Interacteur i
Interacteur 1
Commande
TantQue
Filtre
Initial
TantQue
Scénario
Booléen
42Moteur de PsE Enregistreur
Environnement
- Règles de construction
- Gestion des paramètres formels
- Gestion des structures de contrôle
- Difficultés PsE
- Distinguer variables/constantes/paramètres
- Mise en place interactive des structures de
contrôle - Consistance de la nomination
- Représentation et correction de code
- Interprétation des actions de lutilisateur
43Travail du concepteur
Environnement
- Correspondance avec le NF Générique
- Création des jetons propres au modèle
- Spécification du CdS et des questionnaires
- Ecriture de lANF et des méthodes
- denregistrement
Rejeu
Enregistrement
CdD
NF spécialisé
AP
ANF
NF Générique
TK
44Exemple un modeleur de croissance en 1D1/2
Environnement
Exécution Parcours de larbre à chaque top
dhorloge
Axe dordre 3
Nud
Entre-nud
Racine
45Exemple un modeleur de croissance en 1D1/2
Environnement
typedef SupportDeProgramme ltCNoeudgt
ArbreAbstrait class CArbre public
ArbreAbstrait
Instanciation Dérivation
void CArbreInitParcours (CNoeud idCont)
bool CArbreParcoursEnCours ()
IdSupportDeScenario CArbreSupportDeScena
rioSuivant () void CArbre ExecuterScenar
io (ListParameter parametres)
Implémentation
class CAxe public SupportDeScenario private
Dérivation
46Exemple un modeleur de croissance en 1D1/2
Environnement
- Fonctionnalités
- Création dun arbre
- Insertion daxes
- Ajout dentrenud
- Modification par interpolation des
- longueurs et angles des entrenuds
- Gestion des conditions
- Gain
- Interpréteur déjà écrit
- Guide précis pour lécriture de lenregistreur
47Conclusion
Environnement
Conclusion
- Objectif
- Introduire plus dinteractivité dans un domaine
où son absence est parfois rédhibitoire - Etude de deux domaines très éloignés
- Réflexions sur le Dialogue et lArchitecture
- Réalisation dun outil graphique pour la
réalisation interactive du CdD de H4 - Mise en place dun environnement générique
- Réalisation dune maquette
48Ouvertures
Conclusion
- DTS-Edit et Validation
- Génération commune du Contrôleur de Dialogue et
du Contrôleur de Scénario - Outiller lenvironnement pour la génération
partielle du moteur denregistrement - Réalisation dun cadre dapplication plus
contraignant mais plus complet - Introduction de mécanismes de programmation par
contraintes
49Questions ?
Conclusion