Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Powiter
Alexandre Gauthier-Foichat
Boost your code 2013
31 mai 2013
Alexandre Gauthier-Foichat 1/35
Plan
1 Introduction
1 Qu’est-ce que Powiter
2 Portée
3 Philosophie
2 Développement
1 Le noyau du logiciel
2 Kit de dévelop...
Qu’est-ce que Powiter?
• Logiciel de compositing et de traitement vidéo
• Open-source et portable (Windows, Linux, OSX)
Al...
Qu’est-ce que le compositing ?
Image avant matting Elements à ajouter
Image retouchée
Alexandre Gauthier-Foichat 4/35
Domaines d’application
Le cinéma La publicité
Le divertissement
Alexandre Gauthier-Foichat 5/35
Portée : pour qui ?
• Éducation, recherche , industrie...
Alexandre Gauthier-Foichat 6/35
Portée : pour qui ?
• Éducation, recherche , industrie...
• Utilisable pour des applications commerciales ou non
Alexandre...
Portée : pour qui ?
• Éducation, recherche , industrie...
• Utilisable pour des applications commerciales ou non
−→ Offrir...
Communauté
• Communauté similaire à celle du logiciel Blender
Alexandre Gauthier-Foichat 7/35
Communauté
• Communauté similaire à celle du logiciel Blender
• Blender : multitâche mais peu performant
Alexandre Gauthie...
Communauté
• Communauté similaire à celle du logiciel Blender
• Blender : multitâche mais peu performant
• Une interface t...
Philosophie: accessible
• Fournir une alternative gratuite
Alexandre Gauthier-Foichat 8/35
Philosophie: accessible
• Fournir une alternative gratuite
Nuke: 4000 euros After Effects: 1500
euros
Alexandre Gauthier-F...
Philosophie: créatif
• Stimuler la créativité avec une interface simple
Alexandre Gauthier-Foichat 9/35
Philosophie: créatif
• Stimuler la créativité avec une interface simple
• Interface similaire aux autres logiciels du marc...
Philosophie: communautaire
• Objectif : permettre à quiconque de programmer avec le
SDK
Alexandre Gauthier-Foichat 10/35
Philosophie: communautaire
• Objectif : permettre à quiconque de programmer avec le
SDK−→ Intérêt: profiter de Powiter pour...
Philosophie: communautaire
• Objectif : permettre à quiconque de programmer avec le
SDK−→ Intérêt: profiter de Powiter pour...
Philosophie: communautaire
• Objectif : permettre à quiconque de programmer avec le
SDK−→ Intérêt: profiter de Powiter pour...
Licence
• Le coeur du logiciel sera sous licence GPL
• Le SDK sera sous licence LGPL
−→ Une sociéte de post-production pou...
Plan
1 Introduction
1 Qu’est-ce que Powiter
2 Portée
3 Philosophie
2 Développement
1 Le noyau du logiciel
2 Kit de dévelop...
Une structure nodale
• Outil de travail principal : le DAG (direct acyclic graph)
• Chaque noeud représente une modificatio...
Un exemple de graphe
Alexandre Gauthier-Foichat 14/35
Un exemple de graphe(2)
Alexandre Gauthier-Foichat 15/35
Un exemple de graphe(3)
Alexandre Gauthier-Foichat 16/35
Un exemple de graphe(4)
Alexandre Gauthier-Foichat 17/35
Un exemple de graphe(5)
Image tirée du film: La planète des singes: les origines
Alexandre Gauthier-Foichat 18/35
Avantages du graphe
Simple flou
gaussien
• Retour utilisateur très visuel et intuitif
Alexandre Gauthier-Foichat 19/35
Avantages du graphe
Simple flou
gaussien
• Retour utilisateur très visuel et intuitif
• Réutilisation de résultats interméd...
Avantages du graphe
Simple flou
gaussien
• Retour utilisateur très visuel et intuitif
• Réutilisation de résultats interméd...
Graphes templates
• Création de graphes "templates"
Alexandre Gauthier-Foichat 20/35
Graphes templates
• Création de graphes "templates"
Conversion d’un graphe en un seul noeud
Alexandre Gauthier-Foichat 20/...
Performances du graphe
• Besoin → changer le graphe ne doit pas provoquer de délai
Alexandre Gauthier-Foichat 21/35
Performances du graphe
• Besoin → changer le graphe ne doit pas provoquer de délai
• Chaque noeud stocke ses résultats
Ale...
Performances du graphe
• Besoin → changer le graphe ne doit pas provoquer de délai
• Chaque noeud stocke ses résultats
• C...
Performances du graphe
• Besoin → changer le graphe ne doit pas provoquer de délai
• Chaque noeud stocke ses résultats
• C...
Viewer: Retour utilisateur
Interface pensée pour l’utilisateur
Alexandre Gauthier-Foichat 22/35
Viewer: Retour utilisateur(2)
Déplacement et zoom Couleurs au pixel près
Alexandre Gauthier-Foichat 23/35
Performances: Un viewer real-time
• Une très grande partie du développement est axée sur
l’optimisation
Alexandre Gauthier...
Performances: Un viewer real-time
• Une très grande partie du développement est axée sur
l’optimisation
• Utilisation en p...
Propriétés des noeuds
• Le dock à droite s’occupe de paramétrer les noeuds
Propriétés du noeud Reader
Alexandre Gauthier-F...
Propriétés des noeuds
• Le dock à droite s’occupe de paramétrer les noeuds
Propriétés du noeud Reader
• Un système de scri...
Plan
1 Introduction
1 Qu’est-ce que Powiter
2 Portée
3 Philosophie
2 Développement
1 Le noyau du logiciel
2 Kit de dévelop...
SDK: Scripts
• Graphe configurable en scripts Python
Alexandre Gauthier-Foichat 27/35
SDK: Scripts
• Graphe configurable en scripts Python
Script pour changer le format : convert.py
Alexandre Gauthier-Foichat ...
SDK: Scripts
• Graphe configurable en scripts Python
Script pour changer le format : convert.py
Utilisation en ligne de com...
Le kit de développement
• Interface C++ simple et documentée permettant de créer
de nouveaux noeuds.
Alexandre Gauthier-Fo...
SDK: Compatibilité avec les autres
logiciels
• Powiter implémente OpenFX
−→ standard d’interchange pour les effets
spéciau...
SDK: Compatibilité avec les autres
logiciels
• Powiter implémente OpenFX
−→ standard d’interchange pour les effets
spéciau...
SDK: Compatibilité avec les autres
logiciels
• Powiter implémente OpenFX
−→ standard d’interchange pour les effets
spéciau...
Plan
1 Introduction
1 Qu’est-ce que Powiter
2 Portée
3 Philosophie
2 Développement
1 Le noyau du logiciel
2 Kit de dévelop...
Travail réalisé
• Interface utilisateur
Alexandre Gauthier-Foichat 31/35
Travail réalisé
• Interface utilisateur
• Moteur d’éxécution de graphe
Alexandre Gauthier-Foichat 31/35
Travail réalisé
• Interface utilisateur
• Moteur d’éxécution de graphe
• Viewer
Alexandre Gauthier-Foichat 31/35
Travail réalisé
• Interface utilisateur
• Moteur d’éxécution de graphe
• Viewer
• Moteur de cache
Alexandre Gauthier-Foich...
Gestion des sources
• Le noyau possède un dépôt github réservé aux
développeurs expérimentés
Alexandre Gauthier-Foichat 32...
Gestion des sources
• Le noyau possède un dépôt github réservé aux
développeurs expérimentés
• Plug-ins séparés du noyau a...
Gestion des sources
• Le noyau possède un dépôt github réservé aux
développeurs expérimentés
• Plug-ins séparés du noyau a...
Documentation
• Documentation utilisateur: manuel et tutoriels vidéos
Alexandre Gauthier-Foichat 33/35
Documentation
• Documentation utilisateur: manuel et tutoriels vidéos
• Le noyau comportera une documentation interne.
Ale...
Documentation
• Documentation utilisateur: manuel et tutoriels vidéos
• Le noyau comportera une documentation interne.
• D...
Conclusion
• Un projet ambitieux qui a commencé en juin 2012
• Le cinéma et les effets spéciaux sont une grande passion
po...
Questions
• Merci de votre attention !
• Des questions?
Alexandre Gauthier-Foichat 35/35
Upcoming SlideShare
Loading in …5
×

Slide show Powiter

817 views

Published on

Presentation Powiter Concours Boost your code 2013

  • Be the first to comment

Slide show Powiter

  1. 1. Powiter Alexandre Gauthier-Foichat Boost your code 2013 31 mai 2013 Alexandre Gauthier-Foichat 1/35
  2. 2. Plan 1 Introduction 1 Qu’est-ce que Powiter 2 Portée 3 Philosophie 2 Développement 1 Le noyau du logiciel 2 Kit de développement 3 Organisation 4 Conclusion Alexandre Gauthier-Foichat 2/35
  3. 3. Qu’est-ce que Powiter? • Logiciel de compositing et de traitement vidéo • Open-source et portable (Windows, Linux, OSX) Alexandre Gauthier-Foichat 3/35
  4. 4. Qu’est-ce que le compositing ? Image avant matting Elements à ajouter Image retouchée Alexandre Gauthier-Foichat 4/35
  5. 5. Domaines d’application Le cinéma La publicité Le divertissement Alexandre Gauthier-Foichat 5/35
  6. 6. Portée : pour qui ? • Éducation, recherche , industrie... Alexandre Gauthier-Foichat 6/35
  7. 7. Portée : pour qui ? • Éducation, recherche , industrie... • Utilisable pour des applications commerciales ou non Alexandre Gauthier-Foichat 6/35
  8. 8. Portée : pour qui ? • Éducation, recherche , industrie... • Utilisable pour des applications commerciales ou non −→ Offrir la possibilité à tout le monde de créer des films Alexandre Gauthier-Foichat 6/35
  9. 9. Communauté • Communauté similaire à celle du logiciel Blender Alexandre Gauthier-Foichat 7/35
  10. 10. Communauté • Communauté similaire à celle du logiciel Blender • Blender : multitâche mais peu performant Alexandre Gauthier-Foichat 7/35
  11. 11. Communauté • Communauté similaire à celle du logiciel Blender • Blender : multitâche mais peu performant • Une interface trop complexe Alexandre Gauthier-Foichat 7/35
  12. 12. Philosophie: accessible • Fournir une alternative gratuite Alexandre Gauthier-Foichat 8/35
  13. 13. Philosophie: accessible • Fournir une alternative gratuite Nuke: 4000 euros After Effects: 1500 euros Alexandre Gauthier-Foichat 8/35
  14. 14. Philosophie: créatif • Stimuler la créativité avec une interface simple Alexandre Gauthier-Foichat 9/35
  15. 15. Philosophie: créatif • Stimuler la créativité avec une interface simple • Interface similaire aux autres logiciels du marché Alexandre Gauthier-Foichat 9/35
  16. 16. Philosophie: communautaire • Objectif : permettre à quiconque de programmer avec le SDK Alexandre Gauthier-Foichat 10/35
  17. 17. Philosophie: communautaire • Objectif : permettre à quiconque de programmer avec le SDK−→ Intérêt: profiter de Powiter pour son propre algorithme. Alexandre Gauthier-Foichat 10/35
  18. 18. Philosophie: communautaire • Objectif : permettre à quiconque de programmer avec le SDK−→ Intérêt: profiter de Powiter pour son propre algorithme. Calcul de points d’intêrets pour faire du suivi de mouvements Alexandre Gauthier-Foichat 10/35
  19. 19. Philosophie: communautaire • Objectif : permettre à quiconque de programmer avec le SDK−→ Intérêt: profiter de Powiter pour son propre algorithme. Calcul de points d’intêrets pour faire du suivi de mouvements • L’aspect communautaire sera l’atout principal −→ plus d’outils pour l’utilisateur Alexandre Gauthier-Foichat 10/35
  20. 20. Licence • Le coeur du logiciel sera sous licence GPL • Le SDK sera sous licence LGPL −→ Une sociéte de post-production pourra vendre ses technologies Licence du noyau Licence du SDK Alexandre Gauthier-Foichat 11/35
  21. 21. Plan 1 Introduction 1 Qu’est-ce que Powiter 2 Portée 3 Philosophie 2 Développement 1 Le noyau du logiciel 2 Kit de développement 3 Organisation 4 Conclusion Alexandre Gauthier-Foichat 12/35
  22. 22. Une structure nodale • Outil de travail principal : le DAG (direct acyclic graph) • Chaque noeud représente une modification de l’image Un graphe complexe Alexandre Gauthier-Foichat 13/35
  23. 23. Un exemple de graphe Alexandre Gauthier-Foichat 14/35
  24. 24. Un exemple de graphe(2) Alexandre Gauthier-Foichat 15/35
  25. 25. Un exemple de graphe(3) Alexandre Gauthier-Foichat 16/35
  26. 26. Un exemple de graphe(4) Alexandre Gauthier-Foichat 17/35
  27. 27. Un exemple de graphe(5) Image tirée du film: La planète des singes: les origines Alexandre Gauthier-Foichat 18/35
  28. 28. Avantages du graphe Simple flou gaussien • Retour utilisateur très visuel et intuitif Alexandre Gauthier-Foichat 19/35
  29. 29. Avantages du graphe Simple flou gaussien • Retour utilisateur très visuel et intuitif • Réutilisation de résultats intermédiaires Alexandre Gauthier-Foichat 19/35
  30. 30. Avantages du graphe Simple flou gaussien • Retour utilisateur très visuel et intuitif • Réutilisation de résultats intermédiaires • Il est très facile d’éffectuer des modifications au graphe Alexandre Gauthier-Foichat 19/35
  31. 31. Graphes templates • Création de graphes "templates" Alexandre Gauthier-Foichat 20/35
  32. 32. Graphes templates • Création de graphes "templates" Conversion d’un graphe en un seul noeud Alexandre Gauthier-Foichat 20/35
  33. 33. Performances du graphe • Besoin → changer le graphe ne doit pas provoquer de délai Alexandre Gauthier-Foichat 21/35
  34. 34. Performances du graphe • Besoin → changer le graphe ne doit pas provoquer de délai • Chaque noeud stocke ses résultats Alexandre Gauthier-Foichat 21/35
  35. 35. Performances du graphe • Besoin → changer le graphe ne doit pas provoquer de délai • Chaque noeud stocke ses résultats • Certains noeuds verront leur implémentation faite en Cuda/OpenCL Alexandre Gauthier-Foichat 21/35
  36. 36. Performances du graphe • Besoin → changer le graphe ne doit pas provoquer de délai • Chaque noeud stocke ses résultats • Certains noeuds verront leur implémentation faite en Cuda/OpenCL • Objectif −→ être au moins aussi performant que les logiciels propriétaires Alexandre Gauthier-Foichat 21/35
  37. 37. Viewer: Retour utilisateur Interface pensée pour l’utilisateur Alexandre Gauthier-Foichat 22/35
  38. 38. Viewer: Retour utilisateur(2) Déplacement et zoom Couleurs au pixel près Alexandre Gauthier-Foichat 23/35
  39. 39. Performances: Un viewer real-time • Une très grande partie du développement est axée sur l’optimisation Alexandre Gauthier-Foichat 24/35
  40. 40. Performances: Un viewer real-time • Une très grande partie du développement est axée sur l’optimisation • Utilisation en plus du matériel graphique Alexandre Gauthier-Foichat 24/35
  41. 41. Propriétés des noeuds • Le dock à droite s’occupe de paramétrer les noeuds Propriétés du noeud Reader Alexandre Gauthier-Foichat 25/35
  42. 42. Propriétés des noeuds • Le dock à droite s’occupe de paramétrer les noeuds Propriétés du noeud Reader • Un système de script permettra de configurer le graphe sans interface Alexandre Gauthier-Foichat 25/35
  43. 43. Plan 1 Introduction 1 Qu’est-ce que Powiter 2 Portée 3 Philosophie 2 Développement 1 Le noyau du logiciel 2 Kit de développement 3 Organisation 4 Conclusion Alexandre Gauthier-Foichat 26/35
  44. 44. SDK: Scripts • Graphe configurable en scripts Python Alexandre Gauthier-Foichat 27/35
  45. 45. SDK: Scripts • Graphe configurable en scripts Python Script pour changer le format : convert.py Alexandre Gauthier-Foichat 27/35
  46. 46. SDK: Scripts • Graphe configurable en scripts Python Script pour changer le format : convert.py Utilisation en ligne de commande Alexandre Gauthier-Foichat 27/35
  47. 47. Le kit de développement • Interface C++ simple et documentée permettant de créer de nouveaux noeuds. Alexandre Gauthier-Foichat 28/35
  48. 48. SDK: Compatibilité avec les autres logiciels • Powiter implémente OpenFX −→ standard d’interchange pour les effets spéciaux. Alexandre Gauthier-Foichat 29/35
  49. 49. SDK: Compatibilité avec les autres logiciels • Powiter implémente OpenFX −→ standard d’interchange pour les effets spéciaux. • Fichiers de géométrie en .fbx (format de Maya de Autodesk) Alexandre Gauthier-Foichat 29/35
  50. 50. SDK: Compatibilité avec les autres logiciels • Powiter implémente OpenFX −→ standard d’interchange pour les effets spéciaux. • Fichiers de géométrie en .fbx (format de Maya de Autodesk) • Dans le futur, Powiter proposera une API pour une technologie de frame-server Alexandre Gauthier-Foichat 29/35
  51. 51. Plan 1 Introduction 1 Qu’est-ce que Powiter 2 Portée 3 Philosophie 2 Développement 1 Le noyau du logiciel 2 Kit de développement 3 Organisation 4 Conclusion Alexandre Gauthier-Foichat 30/35
  52. 52. Travail réalisé • Interface utilisateur Alexandre Gauthier-Foichat 31/35
  53. 53. Travail réalisé • Interface utilisateur • Moteur d’éxécution de graphe Alexandre Gauthier-Foichat 31/35
  54. 54. Travail réalisé • Interface utilisateur • Moteur d’éxécution de graphe • Viewer Alexandre Gauthier-Foichat 31/35
  55. 55. Travail réalisé • Interface utilisateur • Moteur d’éxécution de graphe • Viewer • Moteur de cache Alexandre Gauthier-Foichat 31/35
  56. 56. Gestion des sources • Le noyau possède un dépôt github réservé aux développeurs expérimentés Alexandre Gauthier-Foichat 32/35
  57. 57. Gestion des sources • Le noyau possède un dépôt github réservé aux développeurs expérimentés • Plug-ins séparés du noyau avec un système automatique de gestion Alexandre Gauthier-Foichat 32/35
  58. 58. Gestion des sources • Le noyau possède un dépôt github réservé aux développeurs expérimentés • Plug-ins séparés du noyau avec un système automatique de gestion • Certains plug-ins incorporés de base au noyau Alexandre Gauthier-Foichat 32/35
  59. 59. Documentation • Documentation utilisateur: manuel et tutoriels vidéos Alexandre Gauthier-Foichat 33/35
  60. 60. Documentation • Documentation utilisateur: manuel et tutoriels vidéos • Le noyau comportera une documentation interne. Alexandre Gauthier-Foichat 33/35
  61. 61. Documentation • Documentation utilisateur: manuel et tutoriels vidéos • Le noyau comportera une documentation interne. • Documentation SDK: guide de développement + documentation automatique Une page web pour le SDK Alexandre Gauthier-Foichat 33/35
  62. 62. Conclusion • Un projet ambitieux qui a commencé en juin 2012 • Le cinéma et les effets spéciaux sont une grande passion pour moi • Des centaines d’heures passées dessus • Un remerciement particulier à Frédéric Devernay (équipe prima Inria) qui continue de m’aider dans ce projet Alexandre Gauthier-Foichat 34/35
  63. 63. Questions • Merci de votre attention ! • Des questions? Alexandre Gauthier-Foichat 35/35

×