diff --git a/README.md b/README.md
index 4a25cb6cd4fa76da3c903f69dad350c6421f4f31..6d71df453049a89ceae276c2aee20b59d508a760 100644
--- a/README.md
+++ b/README.md
@@ -21,10 +21,206 @@ Avec Ubuntu :
 [Récupérer ici](https://topology-tool-kit.github.io/downloads.html) la librairie TTK. Ce projet est sous la version Ubuntu **Linux 22.04**.
 
 ```
+$ sudo apt install ./ttk-paraview-v5.10.1-ubuntu-22.04.deb  
 $ sudo apt install ./ttk-1.1.0-ubuntu-22.04.deb 
-$ sudo apt install ./ttk-paraview-v5.10.1-ubuntu-22.04.deb 
 ```
 
+## Modifications à apporter à la librairie
+
+Ces modifications doivent être faites sur les fichiers situés dans `usr/include/ttk/vtk/`.  
+Dans le fichier d'en-tête **ttkContourForests.h**, modifier les lignes 54 à 56 pour remplacer les guillemets par des chevrons :
+
+```
+#include <ContourForests.h>
+#include <ContourForestsTree.h>
+#include <DeprecatedDataTypes.h>
+```
+
+Se rendre ensuite dans le fichier d'en-tête **ttkFTRGraph.h** et modifier les lignes 52 à 56 pour remplacer les guillemets par des chevrons :  
+
+```
+// ttk code includes
+#include <FTRGraph.h>
+#include <Graph.h>
+#include <ttkAlgorithm.h>
+#include <ttkFTRGraphStructures.h>
+```
+
+<details>
+  <summary markdown="span">Enfin, créer le fichier **ttkFTRGraph.h** :</summary>
+
+  ```
+  /// \ingroup vtk
+  /// \class ttkFTRGraph
+  /// \author Charles Gueunet <charles.gueunet@kitware.com>
+  /// \date June 2017.
+  ///
+  /// \sa ttk::ftm::FTRGraph
+  ///
+  /// \brief TTK VTK-filter for the computation of Reeb Graphs
+  ///
+  /// The computation of the Reeb graph done by this package is done in
+  /// parallel if TTK_ENABLE_OPENMP is set to ON, using a task based approch
+  /// described in the article mention below.
+  ///
+  /// \param Input Input scalar field, either 2D or 3D, regular
+  /// grid or triangulation (vtkDataSet)
+  /// \param SingleSweep control if the computation should start from both minima
+  /// and maxima simultaneously. If you encouter troubled with FTR, you should try
+  /// to use the single sweep. It is slower but may be more robust.
+  /// \param Segmentation control wethear or not the output should be augmented
+  /// with the segmentation.
+  /// \param SuperArcSamplingLevel control the number of subdivision
+  /// of each superarc. Intermediate point will be located on the barycenter of
+  /// the corresponding portion of vertex.
+  /// \param Output the output of this filter
+  /// is composed of:\n
+  /// 1. The nodes of the tree
+  /// 2. The arcs of the tree
+  /// 3. The semgentation of the initial dataset
+  /// The structure of the tree (Nodes+Arcs) have a concept of nodeId, wich is
+  /// an id that is consistent between execution if SetWithNormalize is set to
+  /// True. The downNodeId of an arc is its starting node (directed towards the
+  /// leaves as the computation starts here) and the upNodeId it the ending node,
+  /// in direction of the Root of the tree.
+  /// The segmentation also contains some basics metrics like the size of each
+  /// region (RegionSpan) or its number of vertex (RegionSize)
+  ///
+  /// This filter can be used as any other VTK filter (for instance, by using the
+  /// sequence of calls SetInputData(), Update(), GetOutput()).
+  ///
+  /// \b Related \b publication \n
+  /// "Task-based Augmented Reeb Graphs with Dynamic ST-Trees" \n
+  /// Charles Gueunet, Pierre Fortin, Julien Jomier, Julien Tierny \n
+  /// EGPGV19: Eurographics Symposium on Parallel Graphics and Visualization
+  ///
+  /// \b Online \b examples: \n
+  ///   - <a
+  ///   href="https://topology-tool-kit.github.io/examples/harmonicSkeleton/">
+  ///   Harmonic Skeleton example</a> \n
+
+  #pragma once
+
+  // ttk code includes
+  #include <FTRGraph.h>
+  #include <Graph.h>
+  #include <ttkAlgorithm.h>
+  #include <ttkFTRGraphStructures.h>
+
+  // VTK includes
+  #include <vtkDataArray.h>
+
+  // VTK Module
+  #include <ttkFTRGraphModule.h>
+
+  class TTKFTRGRAPH_EXPORT ttkFTRGraph : public ttkAlgorithm {
+  public:
+    static ttkFTRGraph *New();
+    vtkTypeMacro(ttkFTRGraph, ttkAlgorithm);
+
+    vtkSetMacro(ForceInputOffsetScalarField, bool);
+    vtkGetMacro(ForceInputOffsetScalarField, bool);
+
+    /// @brief control whether the computation should start from min and max
+    /// (default) or use a single sweep starting only from the min (may be more
+    /// robust)
+    /// @{
+    void SetSingleSweep(const bool ss) {
+      params_.singleSweep = ss;
+      Modified();
+    }
+    bool GetSingleSweep() const {
+      return params_.singleSweep;
+    }
+    /// @}
+
+    /// @brief control if the output should contains the segmentation information
+    /// @{
+    void SetWithSegmentation(const bool segm) {
+      params_.segm = segm;
+      Modified();
+    }
+    bool GetWithSegmentation() const {
+      return params_.segm;
+    }
+    /// @}
+
+    /// @brief if set to true, a post processing pass will be used to enforce
+    /// consistend node ids between executions
+    /// @{
+    void SetWithNormalize(const bool norm) {
+      params_.normalize = norm;
+      Modified();
+    }
+    bool GetWithNormalize() const {
+      return params_.normalize;
+    }
+    /// @}
+
+    /// @brief control the sampling level of the superarcs
+    /// @{
+    void SetSampling(int lvl) {
+      params_.samplingLvl = lvl;
+      Modified();
+    }
+    int GetSuperArcSamplingLevel() const {
+      return params_.samplingLvl;
+    }
+    /// @}
+
+    int getSkeletonNodes(const ttk::ftr::Graph &graph,
+                        vtkUnstructuredGrid *outputSkeletonNodes);
+
+    int addDirectSkeletonArc(const ttk::ftr::Graph &graph,
+                            const ttk::ftr::idSuperArc arcId,
+                            vtkPoints *points,
+                            vtkUnstructuredGrid *skeletonArcs,
+                            ttk::ftr::ArcData &arcData);
+
+    int addSampledSkeletonArc(const ttk::ftr::Graph &graph,
+                              const ttk::ftr::idSuperArc arcId,
+                              vtkPoints *points,
+                              vtkUnstructuredGrid *skeletonArcs,
+                              ttk::ftr::ArcData &arcData);
+
+    int addCompleteSkeletonArc(const ttk::ftr::Graph &graph,
+                              const ttk::ftr::idSuperArc arcId,
+                              vtkPoints *points,
+                              vtkUnstructuredGrid *skeletonArcs,
+                              ttk::ftr::ArcData &arcData);
+
+    int getSkeletonArcs(const ttk::ftr::Graph &graph,
+                        vtkUnstructuredGrid *outputSkeletonArcs);
+
+    int getSegmentation(const ttk::ftr::Graph &graph,
+                        vtkDataSet *outputSegmentation);
+
+    template <typename VTK_TT, typename TTK_TT>
+    int dispatch(ttk::ftr::Graph &graph);
+
+  protected:
+    ttkFTRGraph();
+
+    void identify(vtkDataSet *ds) const;
+
+    int FillInputPortInformation(int port, vtkInformation *info) override;
+    int FillOutputPortInformation(int port, vtkInformation *info) override;
+    int RequestData(vtkInformation *request,
+                    vtkInformationVector **inputVector,
+                    vtkInformationVector *outputVector) override;
+
+  private:
+    bool ForceInputOffsetScalarField{};
+    ttk::ftr::Params params_{};
+
+    vtkDataSet *mesh_{};
+    ttk::Triangulation *triangulation_{};
+    vtkDataArray *inputScalars_{};
+    vtkDataArray *offsets_{};
+  };
+  ```
+</details>
+
 ## Comment tester le projet
 ### Création du répertoire build
 ```
@@ -76,7 +272,6 @@ Penser à renseigner les chemins suivants pour les `#include` (sous Ubuntu) :
 - [ ] Généraliser le format d'entrée
   - [ ] Rendre tous les OBJ lisibles par le programme.
   - [ ] Pouvoir lire les fichiers OFF afin de généraliser le format d'entrée.
-  - [ ] Pouvoir lire les fichiers FBX.
 - [ ] Améliorer l'outil de filtrage.
 ## Références
 - Florian Beguet. Modélisation et description par graphes pour des formes géométriques complexes. Thèse de doctorat, Aix-Marseille Université, 2021.