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
Prochain SlideShare
Chargement dans…5
×

Slide show Powiter

721 vues

Publié le

Presentation Powiter Concours Boost your code 2013

0 commentaire
1 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
721
Sur SlideShare
0
Issues des intégrations
0
Intégrations
6
Actions
Partages
0
Téléchargements
6
Commentaires
0
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

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

×