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éveloppement
3 Organisation
4 Conclusion
Alexandre Gauthier-Foichat 2/35
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
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 Gauthier-Foichat 6/35
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
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 Gauthier-Foichat 7/35
Communauté
• Communauté similaire à celle du logiciel Blender
• Blender : multitâche mais peu performant
• Une interface trop complexe
Alexandre Gauthier-Foichat 7/35
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-Foichat 8/35
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 marché
Alexandre Gauthier-Foichat 9/35
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 son propre
algorithme.
Alexandre Gauthier-Foichat 10/35
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
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
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
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
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
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édiaires
Alexandre Gauthier-Foichat 19/35
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
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/35
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
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
• Certains noeuds verront leur implémentation faite en
Cuda/OpenCL
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
• 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
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-Foichat 24/35
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
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
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
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
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 27/35
SDK: Scripts
• Graphe configurable en scripts Python
Script pour changer le format : convert.py
Utilisation en ligne de commande
Alexandre Gauthier-Foichat 27/35
Le kit de développement
• Interface C++ simple et documentée permettant de créer
de nouveaux noeuds.
Alexandre Gauthier-Foichat 28/35
SDK: Compatibilité avec les autres
logiciels
• Powiter implémente OpenFX
−→ standard d’interchange pour les effets
spéciaux.
Alexandre Gauthier-Foichat 29/35
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
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
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
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-Foichat 31/35
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
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
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
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.
Alexandre Gauthier-Foichat 33/35
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
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
Questions
• Merci de votre attention !
• Des questions?
Alexandre Gauthier-Foichat 35/35

Slide show Powiter

  • 1.
    Powiter Alexandre Gauthier-Foichat Boost yourcode 2013 31 mai 2013 Alexandre Gauthier-Foichat 1/35
  • 2.
    Plan 1 Introduction 1 Qu’est-ceque 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.
    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.
    Qu’est-ce que lecompositing ? Image avant matting Elements à ajouter Image retouchée Alexandre Gauthier-Foichat 4/35
  • 5.
    Domaines d’application Le cinémaLa publicité Le divertissement Alexandre Gauthier-Foichat 5/35
  • 6.
    Portée : pourqui ? • Éducation, recherche , industrie... Alexandre Gauthier-Foichat 6/35
  • 7.
    Portée : pourqui ? • Éducation, recherche , industrie... • Utilisable pour des applications commerciales ou non Alexandre Gauthier-Foichat 6/35
  • 8.
    Portée : pourqui ? • É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.
    Communauté • Communauté similaireà celle du logiciel Blender Alexandre Gauthier-Foichat 7/35
  • 10.
    Communauté • Communauté similaireà celle du logiciel Blender • Blender : multitâche mais peu performant Alexandre Gauthier-Foichat 7/35
  • 11.
    Communauté • Communauté similaireà celle du logiciel Blender • Blender : multitâche mais peu performant • Une interface trop complexe Alexandre Gauthier-Foichat 7/35
  • 12.
    Philosophie: accessible • Fournirune alternative gratuite Alexandre Gauthier-Foichat 8/35
  • 13.
    Philosophie: accessible • Fournirune alternative gratuite Nuke: 4000 euros After Effects: 1500 euros Alexandre Gauthier-Foichat 8/35
  • 14.
    Philosophie: créatif • Stimulerla créativité avec une interface simple Alexandre Gauthier-Foichat 9/35
  • 15.
    Philosophie: créatif • Stimulerla créativité avec une interface simple • Interface similaire aux autres logiciels du marché Alexandre Gauthier-Foichat 9/35
  • 16.
    Philosophie: communautaire • Objectif: permettre à quiconque de programmer avec le SDK Alexandre Gauthier-Foichat 10/35
  • 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.
    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.
    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.
    Licence • Le coeurdu 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.
    Plan 1 Introduction 1 Qu’est-ceque 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.
    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.
    Un exemple degraphe Alexandre Gauthier-Foichat 14/35
  • 24.
    Un exemple degraphe(2) Alexandre Gauthier-Foichat 15/35
  • 25.
    Un exemple degraphe(3) Alexandre Gauthier-Foichat 16/35
  • 26.
    Un exemple degraphe(4) Alexandre Gauthier-Foichat 17/35
  • 27.
    Un exemple degraphe(5) Image tirée du film: La planète des singes: les origines Alexandre Gauthier-Foichat 18/35
  • 28.
    Avantages du graphe Simpleflou gaussien • Retour utilisateur très visuel et intuitif Alexandre Gauthier-Foichat 19/35
  • 29.
    Avantages du graphe Simpleflou gaussien • Retour utilisateur très visuel et intuitif • Réutilisation de résultats intermédiaires Alexandre Gauthier-Foichat 19/35
  • 30.
    Avantages du graphe Simpleflou 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.
    Graphes templates • Créationde graphes "templates" Alexandre Gauthier-Foichat 20/35
  • 32.
    Graphes templates • Créationde graphes "templates" Conversion d’un graphe en un seul noeud Alexandre Gauthier-Foichat 20/35
  • 33.
    Performances du graphe •Besoin → changer le graphe ne doit pas provoquer de délai Alexandre Gauthier-Foichat 21/35
  • 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.
    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.
    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.
    Viewer: Retour utilisateur Interfacepensée pour l’utilisateur Alexandre Gauthier-Foichat 22/35
  • 38.
    Viewer: Retour utilisateur(2) Déplacementet zoom Couleurs au pixel près Alexandre Gauthier-Foichat 23/35
  • 39.
    Performances: Un viewerreal-time • Une très grande partie du développement est axée sur l’optimisation Alexandre Gauthier-Foichat 24/35
  • 40.
    Performances: Un viewerreal-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.
    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.
    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.
    Plan 1 Introduction 1 Qu’est-ceque 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.
    SDK: Scripts • Grapheconfigurable en scripts Python Alexandre Gauthier-Foichat 27/35
  • 45.
    SDK: Scripts • Grapheconfigurable en scripts Python Script pour changer le format : convert.py Alexandre Gauthier-Foichat 27/35
  • 46.
    SDK: Scripts • Grapheconfigurable en scripts Python Script pour changer le format : convert.py Utilisation en ligne de commande Alexandre Gauthier-Foichat 27/35
  • 47.
    Le kit dedéveloppement • Interface C++ simple et documentée permettant de créer de nouveaux noeuds. Alexandre Gauthier-Foichat 28/35
  • 48.
    SDK: Compatibilité avecles autres logiciels • Powiter implémente OpenFX −→ standard d’interchange pour les effets spéciaux. Alexandre Gauthier-Foichat 29/35
  • 49.
    SDK: Compatibilité avecles 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.
    SDK: Compatibilité avecles 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.
    Plan 1 Introduction 1 Qu’est-ceque 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.
    Travail réalisé • Interfaceutilisateur Alexandre Gauthier-Foichat 31/35
  • 53.
    Travail réalisé • Interfaceutilisateur • Moteur d’éxécution de graphe Alexandre Gauthier-Foichat 31/35
  • 54.
    Travail réalisé • Interfaceutilisateur • Moteur d’éxécution de graphe • Viewer Alexandre Gauthier-Foichat 31/35
  • 55.
    Travail réalisé • Interfaceutilisateur • Moteur d’éxécution de graphe • Viewer • Moteur de cache Alexandre Gauthier-Foichat 31/35
  • 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.
    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.
    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.
    Documentation • Documentation utilisateur:manuel et tutoriels vidéos Alexandre Gauthier-Foichat 33/35
  • 60.
    Documentation • Documentation utilisateur:manuel et tutoriels vidéos • Le noyau comportera une documentation interne. Alexandre Gauthier-Foichat 33/35
  • 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.
    Conclusion • Un projetambitieux 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.
    Questions • Merci devotre attention ! • Des questions? Alexandre Gauthier-Foichat 35/35