diff --git a/sources/reactphysics3d/engine/Euler.cpp b/sources/reactphysics3d/engine/Euler.cpp
new file mode 100644
index 00000000..38614711
--- /dev/null
+++ b/sources/reactphysics3d/engine/Euler.cpp
@@ -0,0 +1,53 @@
+/****************************************************************************
+ * Copyright (C) 2009 Daniel Chappuis *
+ ****************************************************************************
+ * This file is part of ReactPhysics3D. *
+ * *
+ * ReactPhysics3D is free software: you can redistribute it and/or modify *
+ * it under the terms of the GNU Lesser General Public License as published *
+ * by the Free Software Foundation, either version 3 of the License, or *
+ * (at your option) any later version. *
+ * *
+ * ReactPhysics3D is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
+ * GNU Lesser General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU Lesser General Public License *
+ * along with ReactPhysics3D. If not, see . *
+ ***************************************************************************/
+
+// Libraries
+#include "Euler.h"
+
+// We want to use the ReactPhysics3D namespace
+using namespace reactphysics3d;
+
+// Constructor
+Euler::Euler() {
+
+}
+
+// Copy-constructor
+Euler::Euler(const Euler& euler) {
+
+}
+
+// Destructor
+Euler::~Euler() {
+
+}
+
+// Integrate a body state over time. This method use the Euler integration algorithm
+void Euler::integrate(BodyState& bodyState, const Time& time, const Time& timeStep) {
+ double dt = timeStep.getValue(); // Timestep
+
+ // Compute the integrated body state
+ bodyState.setPosition(bodyState.getPosition() + bodyState.getLinearVelocity() * dt);
+ bodyState.setLinearMomentum(bodyState.getLinearMomentum() + bodyState.computeForce(time) * dt);
+ bodyState.setOrientation(bodyState.getOrientation() + bodyState.getSpin() * dt);
+ bodyState.setAngularMomentum(bodyState.getAngularMomentum() + bodyState.computeTorque(time) * dt);
+
+ // Recalculate the secondary values of the body state
+ bodyState.recalculate();
+}
diff --git a/sources/reactphysics3d/engine/Euler.h b/sources/reactphysics3d/engine/Euler.h
new file mode 100644
index 00000000..71edade4
--- /dev/null
+++ b/sources/reactphysics3d/engine/Euler.h
@@ -0,0 +1,53 @@
+/****************************************************************************
+* Copyright (C) 2009 Daniel Chappuis *
+****************************************************************************
+* This file is part of ReactPhysics3D. *
+* *
+* ReactPhysics3D is free software: you can redistribute it and/or modify *
+* it under the terms of the GNU Lesser General Public License as published *
+* by the Free Software Foundation, either version 3 of the License, or *
+* (at your option) any later version. *
+* *
+* ReactPhysics3D is distributed in the hope that it will be useful, *
+* but WITHOUT ANY WARRANTY; without even the implied warranty of *
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
+* GNU Lesser General Public License for more details. *
+* *
+* You should have received a copy of the GNU Lesser General Public License *
+* along with ReactPhysics3D. If not, see . *
+***************************************************************************/
+
+#ifndef EULER_H
+#define EULER_H
+
+// Libraries
+#include "IntegrationAlgorithm.h"
+#include "../body/BodyState.h"
+#include "../body/DerivativeBodyState.h"
+
+// Namespace ReactPhysics3D
+namespace reactphysics3d {
+
+/* -------------------------------------------------------------------
+ Class Euler :
+ This class will be used to solve the differential equation of
+ movement by integrating a body state. This class implements
+ the Euler algorithm. It's important to undersand that Euler
+ algorithm should be used only for testing purpose because the
+ Euler algorithm is not a good one.
+ -------------------------------------------------------------------
+*/
+class Euler : public IntegrationAlgorithm {
+ private :
+
+ public :
+ Euler(); // Constructor
+ Euler(const Euler& euler); // Copy-constructor
+ virtual ~Euler(); // Destructor
+
+ void integrate(BodyState& bodyState, const Time& t, const Time& dt); // Integrate a body state over time
+};
+
+}
+
+#endif
diff --git a/sources/reactphysics3d/engine/IntegrationAlgorithm.cpp b/sources/reactphysics3d/engine/IntegrationAlgorithm.cpp
new file mode 100644
index 00000000..9490229b
--- /dev/null
+++ b/sources/reactphysics3d/engine/IntegrationAlgorithm.cpp
@@ -0,0 +1,34 @@
+/****************************************************************************
+* Copyright (C) 2009 Daniel Chappuis *
+****************************************************************************
+* This file is part of ReactPhysics3D. *
+* *
+* ReactPhysics3D is free software: you can redistribute it and/or modify *
+* it under the terms of the GNU Lesser General Public License as published *
+* by the Free Software Foundation, either version 3 of the License, or *
+* (at your option) any later version. *
+* *
+* ReactPhysics3D is distributed in the hope that it will be useful, *
+* but WITHOUT ANY WARRANTY; without even the implied warranty of *
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
+* GNU Lesser General Public License for more details. *
+* *
+* You should have received a copy of the GNU Lesser General Public License *
+* along with ReactPhysics3D. If not, see . *
+***************************************************************************/
+
+// Libraries
+#include "IntegrationAlgorithm.h"
+
+// Namespace
+using namespace reactphysics3d;
+
+// Constructor
+IntegrationAlgorithm::IntegrationAlgorithm() {
+
+}
+
+// Destructor
+IntegrationAlgorithm::~IntegrationAlgorithm() {
+
+}
diff --git a/sources/reactphysics3d/engine/IntegrationAlgorithm.h b/sources/reactphysics3d/engine/IntegrationAlgorithm.h
new file mode 100644
index 00000000..669fec5c
--- /dev/null
+++ b/sources/reactphysics3d/engine/IntegrationAlgorithm.h
@@ -0,0 +1,42 @@
+/****************************************************************************
+* Copyright (C) 2009 Daniel Chappuis *
+****************************************************************************
+* This file is part of ReactPhysics3D. *
+* *
+* ReactPhysics3D is free software: you can redistribute it and/or modify *
+* it under the terms of the GNU Lesser General Public License as published *
+* by the Free Software Foundation, either version 3 of the License, or *
+* (at your option) any later version. *
+* *
+* ReactPhysics3D is distributed in the hope that it will be useful, *
+* but WITHOUT ANY WARRANTY; without even the implied warranty of *
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
+* GNU Lesser General Public License for more details. *
+* *
+* You should have received a copy of the GNU Lesser General Public License *
+* along with ReactPhysics3D. If not, see . *
+***************************************************************************/
+
+#ifndef INTEGRATIONALGORITHM_H
+#define INTEGRATIONALGORITHM_H
+
+// Libraries
+#include "../body/BodyState.h"
+#include "../physics/physics.h"
+
+// ReactPhysics3D namespace
+namespace reactphysics3d {
+
+class IntegrationAlgorithm {
+ private :
+
+ public :
+ IntegrationAlgorithm(); // Constructor
+ virtual ~IntegrationAlgorithm(); // Destructor
+
+ virtual void integrate(BodyState& bodyState, const Time& t, const Time& dt)=0; // Integrate a body state over time
+};
+
+} // End of the ReactPhysics3D namespace
+
+#endif