Entretien avec Javi Agenjo, créateur de WebGLStudio

27 novembre 2015   by Z Team
Back
Javi Agenjo, développeur web, nous parle de WebGLStudio. Retrouvez une courte description de cet éditeur sur l'article 'Comment créer des expériences WebGL'.



Comment tu te définirais ?

Je suis à la fois un développeur graphique et un développeur web. J’ai été professionnellement  impliqué pendant de nombreuses années dans le développement d’applications 3D en temps réel focalisées sur la recherche et l’innovation, mais j’apprécie créer des web apps et des web games durant mon temps libre. Avec l’apparition du WebGL, j’ai pu lier ces deux domaines.
J’enseigne également la programmation graphique et la programmation de jeux à l’université.


Qu’est-ce que tu penses du WebGL ? Qu’apporte t-il à l’expérience utilisateur ?


Le WebGL est une super API. Elle expose presque complètement le processeur graphique et grâce à ça, vous ne voyez plus de limites. Et si l’utilisateur possède un processeur graphique de haute qualité, vous en récoltez tous les bénéfices. Certaines fonctionnalités sont toujours manquantes mais il est prévu de les implémenter une à une. En attendant, le niveau de compatibilité actuel du WebGL sur les principaux navigateurs me permet de coder n’importe quel algorithme graphique complexe sans avoir à me battre avec l’API. J’ai codé des graphiques dans OpenGL pendant 10 ans, j’ai observé toute la communauté autour des librairies comme Three.js et ça m’a stupéfié de voir des personnes qui collaborent et présentent des algorithmes jamais vus auparavant. C’est vraiment un point de rupture dans l’histoire du code graphique.



"Au bout d’un moment, je me suis rendu compte que j’avais besoin d’un éditeur."


Comment est venue l’idée de WebGLstudio ?


Quand le WebGL est sorti, j’ai commencé à coder un jeu simple en javascript afin d’en tester les fonctionnalités et me familiariser avec la façon dont tout s’articulait. Au bout d’un moment, je me suis rendu compte que j’avais besoin d’un éditeur pour créer les niveaux. Cet éditeur a évolué jusqu’à un point où il n’était plus viable et cela m’a fait réaliser qu’il y avait un marché pour les éditeurs professionnels sur le web. A peu près à ce moment là, une entreprise m’a demandé de réaliser un projet d’exposition virtuelle en rapport avec la mode. J’ai donc commencé à créer mon éditeur 3D en Javascript, en ajoutant de plus en plus de caractéristiques au fil des demandes jusqu’au moment où j’ai réalisé que cet outil commençait à devenir vraiment utile, pas seulement pour moi, mais aussi pour mes collègues qui l’utilisaient pour leurs classes. C’est là que j’ai décidé de le mettre en avant. Je suis donc allé à la conférence sur le Web3D en 2013 et j’ai été surpris de la très bonne réception obtenue.  Cela m’a encouragé à nettoyer le code, à en rédiger la documentation et à le sortir en projet Open Source.



   

Quel est le principal objectif de WebGLStudio ? Comment ça marche ?

Pendant de nombreuses années, alors que je travaillais au département des graphismes 3D de l’Université, je devais développer mes propres outils car il n’y avait pas un seul environnement convenable pour créer des applications en 3D. C’était un processus lent et très difficile à maintenir. Unity est le leader depuis ces 5 dernières années, et maintenant vous pouvez voir de nombreuses entreprises (pas seulement des entreprises de jeux vidéo) utiliser Unity pour leurs projets quotidiens car c’est la manière la plus facile de développer des applications 3D. Même les développeurs 3D pros se sont convertis à Unity à cause de l’énorme écosystème qui a grandi autour.
J’ai trouvé ça dommage que la communauté Open Source ait manqué l’occasion de créer un produit 3D en temps réel convainquant. Nous devons maintenant compter énormément sur les produits commerciaux (même ceux avec un modèle de licence gratuite). J’ai donc décidé que je voulais créer un outil où nous pourrions aisément développer des applications 3D dans n’importe quel contexte. Et pourquoi pas en profiter pour essayer d’avoir un temps d’avance et de le faire « dans le web, pour le web ».

 
L’idée c’est d’avoir un éditeur 3D, à partir duquel on peut accéder à tous les éléments 3D classiques dont les moteurs 3D ont besoin, et qu’il soit suffisamment puissant pour permettre de créer même les trucs les plus dingues. Et parce que le moteur et les scripts sont du même langage, vous êtes entièrement libres de changer ce que vous voulez. Le moteur est conçu pour être très flexible (n’importe quel élément peut changer ce que vous souhaitez), et pas tant focalisé sur la performance (ce qui est le cas des moteurs actuels de jeux vidéo) mais sur la liberté dans la création des contenus. C’est le juste milieu entre Cinema4D et Unity, où il est facile de créer du contenu mais avec la liberté supplémentaire de pouvoir l’adapter selon ses besoins.

   

"La cible, c'est quelqu’un qui a des connaissances dans la 3D mais qui n’est pas un expert en programmation."

Quelle est la cible privilégiée ?


C’est quelqu’un qui a des connaissances dans la 3D mais qui n’est pas un expert en programmation : un utilisateur d’outils de réalisation 3D comme Cinema4D ou After Effects. Mais à l’heure actuelle, vous devez quand même posséder quelques bases de code pour contrôler l’interaction, comme les développeurs sur Unity. Je vois beaucoup de potentiel dans le fait d’avoir un grand panier d’éléments produits par la communauté. Un panier que vous pouvez mixer afin de créer de nouvelles applications web en 3D  et les déployer en un clic.
Sur le long terme, je pense que plusieurs personnes seront capables de collaborer simultanément sur la même scène 3D : artistes, développeurs, créateurs de contenu…


Combien d’utilisateurs as-tu ?


Là, je n’ai pas beaucoup d’utilisateurs. Il n’y a pas encore eu de sortie officielle digne de ce nom. Je suis en train de travailler sur la résolution de nombreux bugs agaçants et la création de tutoriels en vidéo afin d’expliquer comment marche le système. C’est un long processus mais je ne veux pas sortir quoi que ce soit tant qu’il existe des bugs ou que l’interface n’est pas optimisée ; les gens pourraient s’en faire une mauvaise idée.


"Cela ne veut pas dire que tous les sites web auront du contenu 3D, mais certains d’entre eux pourraient vraiment en bénéficier."


Est-ce que tu penses que les utilisateurs veulent voir plus de contenus 3D sur le web ?


Je pense qu’on peut énormément améliorer le web avec des contenus 3D, comme c’est arrivé avec la vidéo durant ces 10 dernières années. Cela ne veut pas dire que tous les sites web auront du contenu 3D, mais certains d’entre eux pourraient vraiment en bénéficier (ceux qui me viennent à l’esprit sont issus de secteurs comme la publicité, l’architecture, ou l’éducation). Et les jeux vidéo aussi évidemment.


Qu’est-ce que tu penses de la VR ? Est-ce que ça va un jour devenir une norme ?


Je ne peux pas en dire beaucoup à propos de la VR. J’ai l’impression qu’elle a encore beaucoup de chemin à faire, non pas à cause de l’API en elle-même mais parce qu’il y a encore énormément de limites et de problèmes à résoudre avant de pouvoir créer de vraies expériences web immersives : des choses comme la latence ajoutée par le navigateur, l’input, etc.



Est-ce qu’il y a une nouvelle technologie qui t'intéresse particulièrement ?


Pour ce qui est du futur proche, j’ai hâte de voir ce que donne le WebGL 2.0 et certaines fonctionnalités Javascript ES7 annoncées qui amélioreraient les performances et les capacités de la 3D sur le web (SIMD, Compute Shaders, requêtes d’occlusion), mais aussi tout le travail incroyable que font les développeurs de navigateurs pour promouvoir la 3D. Mais je suis également admiratif devant les performances qu’on peut obtenir en WebGL sur un appareil mobile, et ça continue de s’améliorer.


Sur quoi tu travailles en ce moment ?


Là, je suis en train de peaufiner WebGLStudio pour sa version 1.0. La semaine dernière, j’ai amélioré la compatibilité avec le format Collada. Je ne veux pas devoir compter sur les exportateurs pour chaque outil de réalisation 3D. En parallèle, j’ai continué à nettoyer l’interface et à incorporer les feedbacks reçus par certains utilisateurs (des fonctionnalités manquantes, etc.). Ce n’est pas vraiment exaltant mais c’est obligatoire si je veux avoir une version prête à être utilisée professionnellement.

"Pour le moment, tout ce projet est l’effort d’une seule personne."

Quelle est la prochaine étape pour WebGLStudio ?


La prochaine étape sera de créer une communauté autour de WebGLStudio. Pour le moment, tout ce projet est l’effort d’une seule personne et, parce que j’ai d’autres obligations professionnelles, je ne peux pas lui faire atteindre son plus haut potentiel. Je veux faciliter la prise en main de WebGLstudio pour chaque utilisateur, de l’utilisateur expérimenté en 3D au nouvel arrivant. D’un point de vue technique, les prochaines étapes seront d’intégrer un Physics Engine et un Shader Graph Editor, mais ce ne sont pas des priorités pour le moment.



Merci d'avoir partagé tout cela avec nous !



logo ultranoir
logo ultranoir