TOPO pour étudiants en informatique intéressés par le projet GAMIN

Introduction :

Non pas basé sur les « couches basses » de logiciel (= matériel, système d'exploitation ...), mais basé sur les « couches hautes » (applicatives), l'objectif serait de faire vivre un nouveau langage graphique simple (de haut niveau, c'est à dire se rapprochant du langage naturel)
Ce langage permet la construction, l'affichage, l'animation, et certaines interactivités sur des objets "multimédia" : images, sons, dessin vectoriel ( avec peut-être quelques nouveautés par rapport à ce que propose un logiciel comme FLASH par exemple) '"

ATTENTION : l'idée n'est pas d'avoir la prétention de concurrencer un produit existant ! :

il s'agit de mettre en place un projet, initié à LYON, et susceptible d'intéresser un maximum d'utilisateurs ... et de contributeurs ;

mais l'objectif principal est de constituer un point de motivations et d'échanges pour ceux qui sont concernés par le développement logiciel utilisant, au moins dans un premier temps, le langage JAVA et les technologies correspondantes.

Une maquette opérationnelle prouve déjà la faisabilité de ce "projet GAMIN" (Graphisme Animé Multimédia Interactif Numérique)

Cette 'maquette' a été réalisée avec des moyens réduits au minimum ( environnement de développement open source ECLIPSE / ou versions de démo de JBuilder )..
Mais, cette maquette ne constitue qu'un point de départ !

L'objectif est d'en partir pour mettre en place un vaste projet d'application distribuée utilisant les techniques J2EE (Java 2 Platform Entreprise Edition),

sachant que l'expérience acquise sur un tel "projet pilote" a toutes les chances d'intéresser les futurs employeurs ...

( Un réseau d'étudiants ayant contribué à un même projet serait un gage de capacité au travail en équipe(s) ... et de maîtrise des outils modernes de travail collaboratif ).

Noter que l'objet du projet : le graphisme animé sur le Web, peut encore intéresser , outre les acteurs de projet :

* ceux qui veulent un standard simple et Open Source pour concevoir des dessins et animations à partir de lignes de texte ( GAMIN pourrait être un intermédaire beaucoup plus rapide à maîtriser que SVG: la norme du W3C qui vient en 'sur-couche' de XML ...)

* ceux qui veulent un standard de dessin qu'ils pourraient conrôler eux-mêmes : demander ou apporter soi-même des évolutions

Donc,

ceux qui réaliseront des dessins avec le(s) logiciel(s) de GAMIN auront intérêt à ce qu'une structure assure la continuation du projet : d'où l'association G.O.N.I.C. ...
( dont la charte garantit l'indépendance et la neutralité en dehors des questions liées au développement informatique )

Cette association vise à un effet pédagogique et à une dynamique d'apprentissage, voire de recherche spontannée de solutions d'excellence, en rapprochant étudiants, chômeurs disponibles, + autres intéressés autour d'une même motivation.



Travaux à réaliser à partir de la maquette actuelle :

Les interventions envisageable à partir de la maquette existante devraient permettre :

Ci-dessous un aperçu des travaux réalisables dans le cadre de TD, ( ou plus tard, de stages) : à choisir "à la carte". On pourra commencer par ceux dont l'abord est est le plus rapide : à noter que l'application principale est découpée en plusieurs packages de classes ( des interventions sur l'existant peuvent se limiter à quelques classes : notamment pour la Qualité, les Améliorations ou Optimisations ...) (Cette liste n'est pas exhaustive, mais il ne faudrait pas non plus qu'elle fasse peur : rien n'est indispensable ! ce fera ce qui se pourra, en fonction des choix des intervenants ) ==========================================================

Qualité :

Etablir des diagrammes UML :
- de l'existant ( directement ou par "reverse engineering")
- des évolutions prévues

pratiquer l'outil de documentation des sources (sous Eclipse) :
compléter, revoir, ajouter les commentaires (du code stabilisé)

créer ou compléter le manuel d'aide en ligne

(re-) définir et contrôler les règles de nommenclature et 'règles de programmation'

Compléments :

valider une version LINUX

ajouter Menu "Options / Préférences" :
- positions de Menus / - couleurs / - activer / desactiver "Témoins d'activité"
- parametres permanents ($0 ... $9)
- langue : ( sous-option = tout / commentaires / aides / menus ) => Franglais / Anglais / Espagnol / Italien / Allemand / Grec / . . . (Locale)

mettre en oeuvre la gestion des Sons ( développer la classe correspondante à l'identique des autres ...) .. et tester !

......... CONFIGURATION : Initiale / statique / dynamique ........

Fonctions Formes :
- (Tourner) / Deplacer / Grossir / Deformer / . . . => fonctions spéciales à inventer !
==> chargement dynamique de fonctions par base de données objet

Intersections : 2 ellipses / Droite & Forme / . . .

Améliorations :

déterminer les séquences de code critiques pour la rapidité d'exécution

les optimiser

optimisations :

- copies : mixer 'intelligemment' Clone/ Reference

- jouer avec un attribut "Visible" associé à chaque élément graphique

Changer le "Paint" principal :
- pas d'effacement global hors CMD (instruction, primitive ou cas précis )
- effacement piece par piece

Extensions :

P_piece: => courbes d'EVolution temporelle = chemin d'evolution dans le temps

développer un outils spécifique de traces et de débug ( déjà imaginé : à développer )
ou configurer une solution Open Source déjà existante

mettre en oeuvre une base de données objets : - pour les scripts de dessin dans un premier temps / - pour des fonctions en ligne, des paramétrages de scénarii regroupant plusieurs scripts par la suite ...
prévoir des nomenclatures pour base de donnée GAMIN :
dessins / genres de dessins / licenses-autorisations pour chaque constituant /
itou pour ... fontions / textures /

chargement de dessins GAMIN par base de données objet
chargement de composants : images / sons / polices de car. / ... par base de données objet

concevoir, définir et coder un mécanisme d'enchainement de : - lancements d'animation et- de chargements de dessin_GPA ( coupler avec pré-chargements d'images ? ...)
Suppression / renouvellement des pieces

créer un nouvel objet graphique P_piece: => Gmem : calques ...

fonctions de contour ou de chemins algébrique pouvant s'appuyer sur des tableaux de points ..

mise en place de l'architecture J2EE : choix des outils & environnement de travail .. ( à priori, voir "architecture 5 couches" ) ...
Etablir des diagrammes UML

Développer un Editeur spécifique ( avec coloration syntaxique et coloration du fond des GRP alternée faisant ressortir les sous-niveaux )
==> voir possibilités avec ECLIPSE /
développement indépendant

Fonctions/ propriétés permettant d'associer à chaque dessin + (animation / interactivité) une courbe de charge CPU en fonction du temps ( par process & globalement)

fonction en ligne de(s) éditeur(s) GAMIN, pour conseil à la conception de documents GAMIN
( % temps CPU évalué / aide en ligne en fonction du type de dessin et du contexte en cours ...)

Fonctions d'extrusion de courbe ou de forme ..
fonctions de contour : tampons / textures / dégradés / ...
fonctions de remplissage : tampons / textures / dégradés / ..

Fonction ou Objet Graphique : fractale ...

Ajouter des 'squelettes 3D de référence' couplés avec fonctions de projection plane ...
=> éventuellement: étendre les attributs des éléments graphiques / ou plutôt introduire une notion de structures 3D dont des élts 2D pourront être dérivés ...

définir des clichés de paramètre d'évolution d'une animation (Groupe ou Dessin entier)
=> repérables et archivables en base se donnée

Coordination :

configurer une gestion de versions : CVS

configurer un outil de gestion de projets (licence libre) ... à convenir ..



A Noter :

si le projet tient le coup, les contributeurs pourraient faire valoir, y compris sur leur CV, leurs interventions :
(bien sûr, pas question de conserver d'éventuelles apréciations défavorables, mais, pour ceux qui acceptent ont pourra mémoriser les apréciations élogieuses ...)
L'association GONIC est là pour apporter son soutien et sa disponibilité à ceux qui choisiront d'intervenir sur ce projet, l'intérêt étant que chacun y trouve son compte !
ne pas hésiter à demander des compléments d'information et un rendez-vous pour choisir et envisager ou déterminer un projet particulier de contribution au projet ...
il n'est pas interdit, bien sûr de s'inscrire chez GONIC et de rejoindre la coordination du projet ...