diff --git a/.clang-format b/.clang-format
deleted file mode 100644
index b20f873114da442cfc9aef4d8da8336cef4730be..0000000000000000000000000000000000000000
--- a/.clang-format
+++ /dev/null
@@ -1,203 +0,0 @@
----
-Language:        Cpp
-# BasedOnStyle:  Google
-AccessModifierOffset: -1
-AlignAfterOpenBracket: Align
-AlignConsecutiveMacros: None
-AlignConsecutiveAssignments: None
-AlignConsecutiveBitFields: None
-AlignConsecutiveDeclarations: None
-AlignEscapedNewlines: Left
-AlignOperands:   Align
-AlignTrailingComments: true
-AllowAllArgumentsOnNextLine: true
-AllowAllConstructorInitializersOnNextLine: true
-AllowAllParametersOfDeclarationOnNextLine: true
-AllowShortEnumsOnASingleLine: true
-AllowShortBlocksOnASingleLine: Never
-AllowShortCaseLabelsOnASingleLine: false
-AllowShortFunctionsOnASingleLine: All
-AllowShortLambdasOnASingleLine: All
-AllowShortIfStatementsOnASingleLine: WithoutElse
-AllowShortLoopsOnASingleLine: true
-AlwaysBreakAfterDefinitionReturnType: None
-AlwaysBreakAfterReturnType: None
-AlwaysBreakBeforeMultilineStrings: true
-AlwaysBreakTemplateDeclarations: Yes
-AttributeMacros:
-  - __capability
-BinPackArguments: true
-BinPackParameters: true
-BraceWrapping:
-  AfterCaseLabel:  false
-  AfterClass:      false
-  AfterControlStatement: Never
-  AfterEnum:       false
-  AfterFunction:   false
-  AfterNamespace:  false
-  AfterObjCDeclaration: false
-  AfterStruct:     false
-  AfterUnion:      false
-  AfterExternBlock: false
-  BeforeCatch:     false
-  BeforeElse:      false
-  BeforeLambdaBody: false
-  BeforeWhile:     false
-  IndentBraces:    false
-  SplitEmptyFunction: true
-  SplitEmptyRecord: true
-  SplitEmptyNamespace: true
-BreakBeforeBinaryOperators: None
-BreakBeforeConceptDeclarations: true
-BreakBeforeBraces: Attach
-BreakBeforeInheritanceComma: false
-BreakInheritanceList: BeforeColon
-BreakBeforeTernaryOperators: true
-BreakConstructorInitializersBeforeComma: false
-BreakConstructorInitializers: BeforeColon
-BreakAfterJavaFieldAnnotations: false
-BreakStringLiterals: true
-ColumnLimit:     80
-CommentPragmas:  '^ IWYU pragma:'
-CompactNamespaces: false
-ConstructorInitializerAllOnOneLineOrOnePerLine: true
-ConstructorInitializerIndentWidth: 4
-ContinuationIndentWidth: 4
-Cpp11BracedListStyle: true
-DeriveLineEnding: true
-DerivePointerAlignment: true
-DisableFormat:   false
-EmptyLineBeforeAccessModifier: LogicalBlock
-ExperimentalAutoDetectBinPacking: false
-FixNamespaceComments: true
-ForEachMacros:
-  - foreach
-  - Q_FOREACH
-  - BOOST_FOREACH
-StatementAttributeLikeMacros:
-  - Q_EMIT
-IncludeBlocks:   Regroup
-IncludeCategories:
-  - Regex:           '^<pinocchio/fwd\.hpp>'
-    Priority:        1
-    SortPriority:    0
-    CaseSensitive:   false
-  - Regex:           '^<ext/.*\.h>'
-    Priority:        3
-    SortPriority:    0
-    CaseSensitive:   false
-  - Regex:           '^<.*\.h>'
-    Priority:        2
-    SortPriority:    0
-    CaseSensitive:   false
-  - Regex:           '^<.*'
-    Priority:        3
-    SortPriority:    0
-    CaseSensitive:   false
-  - Regex:           '.*'
-    Priority:        4
-    SortPriority:    0
-    CaseSensitive:   false
-IncludeIsMainRegex: '([-_](test|unittest))?$'
-IncludeIsMainSourceRegex: ''
-IndentCaseLabels: true
-IndentCaseBlocks: false
-IndentGotoLabels: true
-IndentPPDirectives: None
-IndentExternBlock: AfterExternBlock
-IndentRequires:  false
-IndentWidth:     2
-IndentWrappedFunctionNames: false
-InsertTrailingCommas: None
-JavaScriptQuotes: Leave
-JavaScriptWrapImports: true
-KeepEmptyLinesAtTheStartOfBlocks: false
-MacroBlockBegin: ''
-MacroBlockEnd:   ''
-MaxEmptyLinesToKeep: 1
-NamespaceIndentation: None
-ObjCBinPackProtocolList: Never
-ObjCBlockIndentWidth: 2
-ObjCBreakBeforeNestedBlockParam: true
-ObjCSpaceAfterProperty: false
-ObjCSpaceBeforeProtocolList: true
-PenaltyBreakAssignment: 2
-PenaltyBreakBeforeFirstCallParameter: 1
-PenaltyBreakComment: 300
-PenaltyBreakFirstLessLess: 120
-PenaltyBreakString: 1000
-PenaltyBreakTemplateDeclaration: 10
-PenaltyExcessCharacter: 1000000
-PenaltyReturnTypeOnItsOwnLine: 200
-PenaltyIndentedWhitespace: 0
-PointerAlignment: Left
-RawStringFormats:
-  - Language:        Cpp
-    Delimiters:
-      - cc
-      - CC
-      - cpp
-      - Cpp
-      - CPP
-      - 'c++'
-      - 'C++'
-    CanonicalDelimiter: ''
-    BasedOnStyle:    google
-  - Language:        TextProto
-    Delimiters:
-      - pb
-      - PB
-      - proto
-      - PROTO
-    EnclosingFunctions:
-      - EqualsProto
-      - EquivToProto
-      - PARSE_PARTIAL_TEXT_PROTO
-      - PARSE_TEST_PROTO
-      - PARSE_TEXT_PROTO
-      - ParseTextOrDie
-      - ParseTextProtoOrDie
-      - ParseTestProto
-      - ParsePartialTestProto
-    CanonicalDelimiter: ''
-    BasedOnStyle:    google
-ReflowComments:  true
-SortIncludes:    true
-SortJavaStaticImport: Before
-SortUsingDeclarations: true
-SpaceAfterCStyleCast: false
-SpaceAfterLogicalNot: false
-SpaceAfterTemplateKeyword: true
-SpaceBeforeAssignmentOperators: true
-SpaceBeforeCaseColon: false
-SpaceBeforeCpp11BracedList: false
-SpaceBeforeCtorInitializerColon: true
-SpaceBeforeInheritanceColon: true
-SpaceBeforeParens: ControlStatements
-SpaceAroundPointerQualifiers: Default
-SpaceBeforeRangeBasedForLoopColon: true
-SpaceInEmptyBlock: false
-SpaceInEmptyParentheses: false
-SpacesBeforeTrailingComments: 2
-SpacesInAngles:  false
-SpacesInConditionalStatement: false
-SpacesInContainerLiterals: true
-SpacesInCStyleCastParentheses: false
-SpacesInParentheses: false
-SpacesInSquareBrackets: false
-SpaceBeforeSquareBrackets: false
-BitFieldColonSpacing: Both
-Standard:        Auto
-StatementMacros:
-  - Q_UNUSED
-  - QT_REQUIRE_VERSION
-TabWidth:        8
-UseCRLF:         false
-UseTab:          Never
-WhitespaceSensitiveMacros:
-  - STRINGIZE
-  - PP_STRINGIZE
-  - BOOST_PP_STRINGIZE
-  - NS_SWIFT_NAME
-  - CF_SWIFT_NAME
-...
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..047193ec5118b5bbf83070a5d86ecde72b762261
--- /dev/null
+++ b/.pre-commit-config.yaml
@@ -0,0 +1,21 @@
+repos:
+-   repo: https://github.com/pre-commit/mirrors-clang-format
+    rev: v13.0.1
+    hooks:
+    -   id: clang-format
+        args: [-i, --style=Google]
+-   repo: https://github.com/pre-commit/pre-commit-hooks
+    rev: v4.1.0
+    hooks:
+    -   id: trailing-whitespace
+    -   id: check-added-large-files
+    -   id: check-ast
+    -   id: check-merge-conflict
+    -   id: check-symlinks
+    -   id: check-toml
+    -   id: check-yaml
+    -   id: debug-statements
+    -   id: detect-private-key
+    -   id: end-of-file-fixer
+    -   id: mixed-line-ending
+    -   id: trailing-whitespace
diff --git a/NEWS b/NEWS
index 45e6f1356925572912b7022bb584cb21f38577d3..dcc42e1fc4c35438d6a3d8969279528188aa25d4 100644
--- a/NEWS
+++ b/NEWS
@@ -129,4 +129,3 @@ stasse (3):
       Reinforce the dependant->dependent policy.     Merge the florent branch.     Makes the test_depend.cpp test works.
       Reinforce the dependant->dependent policy.
       Adding documentation to cmdPlug.
-
diff --git a/cmake b/cmake
index 9078d521dc23fabae72e3fe8d7c0068c68364eef..332976cc4d5305256c79a479e55ad7ab2ecc42f1 160000
--- a/cmake
+++ b/cmake
@@ -1 +1 @@
-Subproject commit 9078d521dc23fabae72e3fe8d7c0068c68364eef
+Subproject commit 332976cc4d5305256c79a479e55ad7ab2ecc42f1
diff --git a/doc/Doxyfile.extra.in b/doc/Doxyfile.extra.in
index bd125c64520dbaa2ee4afae02fa1b352f1f048fd..f082906a97857151582672ebde153339dc49f674 100644
--- a/doc/Doxyfile.extra.in
+++ b/doc/Doxyfile.extra.in
@@ -293,7 +293,7 @@ WARN_LOGFILE           = @CMAKE_BINARY_DIR@/doc/doxygen.log
 
 INPUT                 = @CMAKE_SOURCE_DIR@/include \
                         @CMAKE_SOURCE_DIR@/doc/additionalDoc
-                        
+
 
 # The RECURSIVE tag can be used to turn specify whether or not subdirectories
 # should be searched for input files as well. Possible values are YES and NO.
@@ -672,4 +672,4 @@ MATHJAX_FORMAT         = SVG
 
 ALIASES += "cheatsheet=\xrefitem cheatsheet \"Remarkable identity\" \"Cheat sheet\""
 
-CITE_BIB_FILES += @CMAKE_SOURCE_DIR@/doc/sot.bib
\ No newline at end of file
+CITE_BIB_FILES += @CMAKE_SOURCE_DIR@/doc/sot.bib
diff --git a/doc/pictures/entity.svg b/doc/pictures/entity.svg
index 7840311ab8f28b0609e84a515d714ab111e70bb3..5fc8995f15cc78696a776131777836ffdd630560 100644
--- a/doc/pictures/entity.svg
+++ b/doc/pictures/entity.svg
@@ -9,7 +9,7 @@
    xmlns="http://www.w3.org/2000/svg"
    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- 
+
    id="svg2"
    version="1.1"
    inkscape:version="0.47 r22583"
diff --git a/include/dynamic-graph/command-bind.h b/include/dynamic-graph/command-bind.h
index 629445c7a2bec5328cdd23da329b52e863d34cfd..351dc1cb1c9bbebc843a7ff23674597a89ca9eff 100644
--- a/include/dynamic-graph/command-bind.h
+++ b/include/dynamic-graph/command-bind.h
@@ -283,8 +283,8 @@ struct CommandVoid4 : public Command {
   CommandVoid4(E &entity, function_t function, const std::string &docString)
       : Command(entity,
                 boost::assign::list_of(ValueHelper<T1>::TypeID)(
-                    ValueHelper<T2>::TypeID)(
-                    ValueHelper<T3>::TypeID)(ValueHelper<T4>::TypeID),
+                    ValueHelper<T2>::TypeID)(ValueHelper<T3>::TypeID)(
+                    ValueHelper<T4>::TypeID),
                 docString),
         fptr(function) {}
 
@@ -357,13 +357,11 @@ struct CommandVoid5 : public Command {
                                           const T4 &, const T5 &);
 
   CommandVoid5(E &entity, function_t function, const std::string &docString)
-      : Command(
-            entity,
-            boost::assign::list_of(ValueHelper<T1>::TypeID)(
-                ValueHelper<T2>::TypeID)(
-                ValueHelper<T3>::TypeID)(ValueHelper<T4>::TypeID)(ValueHelper<
-                                                                  T5>::TypeID),
-            docString),
+      : Command(entity,
+                boost::assign::list_of(ValueHelper<T1>::TypeID)(
+                    ValueHelper<T2>::TypeID)(ValueHelper<T3>::TypeID)(
+                    ValueHelper<T4>::TypeID)(ValueHelper<T5>::TypeID),
+                docString),
         fptr(function) {}
 
  protected:
@@ -444,15 +442,12 @@ struct CommandVoid6 : public Command {
                                           const T4 &, const T5 &, const T6 &);
 
   CommandVoid6(E &entity, function_t function, const std::string &docString)
-      : Command(
-            entity,
-            boost::assign::list_of(ValueHelper<T1>::TypeID)(
-                ValueHelper<T2>::TypeID)(
-                ValueHelper<T3>::TypeID)(ValueHelper<
-                                         T4>::TypeID)(ValueHelper<T5>::
-                                                          TypeID)(ValueHelper<
-                                                                  T6>::TypeID),
-            docString),
+      : Command(entity,
+                boost::assign::list_of(ValueHelper<T1>::TypeID)(
+                    ValueHelper<T2>::TypeID)(ValueHelper<T3>::TypeID)(
+                    ValueHelper<T4>::TypeID)(ValueHelper<T5>::TypeID)(
+                    ValueHelper<T6>::TypeID),
+                docString),
         fptr(function) {}
 
  protected:
@@ -536,17 +531,12 @@ struct CommandVoid7 : public Command {
                                           const T7 &);
 
   CommandVoid7(E &entity, function_t function, const std::string &docString)
-      : Command(
-            entity,
-            boost::assign::list_of(ValueHelper<T1>::TypeID)(
-                ValueHelper<T2>::TypeID)(
-                ValueHelper<T3>::
-                    TypeID)(ValueHelper<
-                            T4>::TypeID)(ValueHelper<T5>::
-                                             TypeID)(ValueHelper<T6>::
-                                                         TypeID)(ValueHelper<
-                                                                 T7>::TypeID),
-            docString),
+      : Command(entity,
+                boost::assign::list_of(ValueHelper<T1>::TypeID)(
+                    ValueHelper<T2>::TypeID)(ValueHelper<T3>::TypeID)(
+                    ValueHelper<T4>::TypeID)(ValueHelper<T5>::TypeID)(
+                    ValueHelper<T6>::TypeID)(ValueHelper<T7>::TypeID),
+                docString),
         fptr(function) {}
 
  protected:
@@ -633,20 +623,13 @@ struct CommandVoid8 : public Command {
                                           const T7 &, const T8 &);
 
   CommandVoid8(E &entity, function_t function, const std::string &docString)
-      : Command(
-            entity,
-            boost::assign::list_of(ValueHelper<T1>::TypeID)(
-                ValueHelper<T2>::TypeID)(
-                ValueHelper<T3>::
-                    TypeID)(ValueHelper<T4>::
-                                TypeID)(ValueHelper<T5>::
-                                            TypeID)(ValueHelper<T6>::
-                                                        TypeID)(ValueHelper<
-                                                                T7>::
-                                                                    TypeID)(ValueHelper<
-                                                                            T8>::
-                                                                                TypeID),
-            docString),
+      : Command(entity,
+                boost::assign::list_of(ValueHelper<T1>::TypeID)(
+                    ValueHelper<T2>::TypeID)(ValueHelper<T3>::TypeID)(
+                    ValueHelper<T4>::TypeID)(ValueHelper<T5>::TypeID)(
+                    ValueHelper<T6>::TypeID)(ValueHelper<T7>::TypeID)(
+                    ValueHelper<T8>::TypeID),
+                docString),
         fptr(function) {}
 
  protected:
diff --git a/js/view_sot_dg.html b/js/view_sot_dg.html
index 231fcae4cc94e92bd747c14dc9ab95e806142634..d153e95ee62176d2e7cba3dfcf5d058f7ec23f87 100644
--- a/js/view_sot_dg.html
+++ b/js/view_sot_dg.html
@@ -6,7 +6,7 @@
    <script>
      function renderDOTFile() {
        var fileInputElement = document.getElementById("fileInputElement");
-     
+
        var reader = new FileReader();
        var graphtextres = ""
        reader.onloadend = function(e) {
@@ -27,7 +27,7 @@
          .catch(error => {
           // Create a new Viz instance (@see Caveats page for more info)
           viz = new Viz();
-     
+
           // Possibly display the error
           console.error(error);
           });
@@ -37,7 +37,7 @@
 
 
    </script>
-   <input type="file" id="fileInputElement">   
+   <input type="file" id="fileInputElement">
    <input id="Rendering" type="button" value="Rendering" onclick="renderDOTFile();" />
    <script>
      var el = document.getElementById("Rendering");
@@ -49,4 +49,3 @@
 </body>
 
 </html>
-