diff --git a/skeleton/.vscode/launch.json b/skeleton/.vscode/launch.json
new file mode 100644
index 0000000000000000000000000000000000000000..d895599b395ef099cdcfb125b8bfd7f60f8aca28
--- /dev/null
+++ b/skeleton/.vscode/launch.json
@@ -0,0 +1,29 @@
+{
+  "configurations": [
+  {
+    "name": "(gdb) Lancer",
+    "type": "cppdbg",
+    "request": "launch",
+    "program": "${workspaceFolder}/main",
+    "args": [],
+    "stopAtEntry": false,
+    "cwd": "${fileDirname}",
+    "environment": [],
+    "externalConsole": false,
+    "MIMode": "gdb",
+    "setupCommands": [
+        {
+            "description": "Activer l'impression en mode Pretty pour gdb",
+            "text": "-enable-pretty-printing",
+            "ignoreFailures": true
+        },
+        {
+            "description": "Définir la version désassemblage sur Intel",
+            "text": "-gdb-set disassembly-flavor intel",
+            "ignoreFailures": true
+        }
+    ]
+  }
+  ]
+}
+  
\ No newline at end of file
diff --git a/skeleton/main b/skeleton/main
index 56174080d08bfd4a47812e0d86319dfaeac5e0c9..92bcf89d87cf4149fe72cdd2a10df078f1635cf7 100755
Binary files a/skeleton/main and b/skeleton/main differ
diff --git a/skeleton/main.c b/skeleton/main.c
index 6d1b517587c87bde08163f6e70c89141af3d44ac..f90a6d220c6fd75d0c5bef97ad93117f00ea0ab2 100644
--- a/skeleton/main.c
+++ b/skeleton/main.c
@@ -8,7 +8,8 @@
 
 #define SCREEN_WIDTH 1000
 #define SCREEN_HEIGHT 1000
-#define delta_t 86400 //en secondes
+#define delta_t 4000 //en secondes
+
 
 
 int main()
@@ -27,11 +28,12 @@ int main()
     bool x = false;
         while (true){
             gfx_present(ctxt);
+            gfx_clear(ctxt, COLOR_BLACK);
             // TODO : draw the current state of your system
             show_system(ctxt, &s);
             // TODO : update your system
             update_system(&s, delta_t, x);
-            gfx_clear(ctxt, COLOR_BLACK);
+            
             if (gfx_keypressed() == SDLK_ESCAPE){
                 break;
             }
diff --git a/skeleton/main.o b/skeleton/main.o
index 9b6d64646648c61d99e16e19d24a0bb0f52d30e7..03f5121b40279bc3063bec263cfcd1b274a910fa 100644
Binary files a/skeleton/main.o and b/skeleton/main.o differ
diff --git a/skeleton/planet.o b/skeleton/planet.o
index cf6929a981a1b745fcc192b6157d382c667237ea..2506093d81093b1b3b65c54b647d79d455061a32 100644
Binary files a/skeleton/planet.o and b/skeleton/planet.o differ
diff --git a/skeleton/planet/planet.c b/skeleton/planet/planet.c
index e390ce71e006dc33cf4e74755cffe1f3d2464301..95d8cb16e5b07f41d9d4f5b384f77b5ebb542a02 100644
--- a/skeleton/planet/planet.c
+++ b/skeleton/planet/planet.c
@@ -31,12 +31,12 @@ system_t create_system(){
     s.star = create_planet(M_SOLEIL , vec2_create_zero(), vec2_create_zero(), 0, 0, 0);
     s.nb_planets = 6;
     s.planets = malloc(sizeof(planet_t) * s.nb_planets);
-    s.planets[4] = create_planet(M_NAMEK , vec2_create(-0.05, 0), vec2_create(0 , 0), 0.01, 0.068, -0.05);
-    s.planets[0] = create_planet(M_MERCURE , vec2_create(-0.092, 0), vec2_create(0 , 0), 0.20563069, 0.116, -0.092);
-    s.planets[1] = create_planet(M_VENUS , vec2_create(-0.214, 0), vec2_create(0 , 0), 0.0067733, 0.216, -0.214);
-    s.planets[2] = create_planet(M_TERRE, vec2_create(-0.294 , 0), vec2_create(0 , 0), 0.01671022, 0.3, -0.294);
-    s.planets[3] = create_planet(M_MARS , vec2_create(-0.412 , 0), vec2_create(0 , 0), 0.09341233, 0.456, -0.412);
-    s.planets[5] = create_planet(M_AZEROTH , vec2_create(-0.556 , 0), vec2_create(0 , 0), 0.01, 0.582, -0.556);
+    s.planets[0] = create_planet(M_NAMEK , vec2_create(-27000000000, 0), vec2_create(0 , 0), 0.01, 29000000000, 27000000000);
+    s.planets[1] = create_planet(M_MERCURE , vec2_create(-46000000000, 0), vec2_create(0 , 0), 0.20563069, 57909050000, 46000000000);
+    s.planets[2] = create_planet(M_VENUS , vec2_create(-107476170000, 0), vec2_create(0 , 0), 0.0067733, 108208475000, 107476170000);
+    s.planets[3] = create_planet(M_TERRE, vec2_create(-147098291000 , 0), vec2_create(0 , 0), 0.01671022, 149598023000, 147098291000);
+    s.planets[4] = create_planet(M_MARS , vec2_create(-206655215000 , 0), vec2_create(0 , 0), 0.09341233, 227939200000, 206655215000);
+    s.planets[5] = create_planet(M_AZEROTH , vec2_create(-260000000000 , 0), vec2_create(0 , 0), 0.01, 275000000000, 260000000000);
     return s;
 }
 
@@ -49,7 +49,7 @@ void show_system(struct gfx_context_t *ctxt, system_t *system){
     int couleur[system->nb_planets];
     for(int i = 0; i < system->nb_planets ; i++){
         double mass = system->planets[i].mass;
-        coordinates coord = vec2_to_coordinates(system->planets[i].pos, 1000, 1000);
+        coordinates coord = vec2_to_coordinates(system->planets[i].pos);
         if(mass == M_NAMEK){
             posx[i] = coord.column;
             posy[i] = coord.row;
@@ -88,16 +88,17 @@ void show_system(struct gfx_context_t *ctxt, system_t *system){
         }
     }
     for(int i = 0 ; i < system->nb_planets ; i++){
+        printf("planete %d : %lf\n", i, system->planets[i].pos.y);
         draw_full_circle(ctxt, posx[i], posy[i], rayon[i], couleur[i]);
     }
 }
 
-// update du systeme
+//update du systeme
 void update_system(system_t *system, double delta_t, bool x){
         for(int i = 0; i < system->nb_planets ; i++){
             vec2 pos_tmp = system->planets[i].pos;
-            if(x == false){
-                system->planets[i].pos = pos_init(*system, system->planets[i] , delta_t);
+            if(!x){
+                    system->planets[i].pos = pos_init(*system, system->planets[i] , delta_t);
                 x = true;
             }
             else{
@@ -112,6 +113,13 @@ bool is_equal(planet_t a, planet_t b){
     return a.mass == b.mass;
 }
 
+// static double calcul_gravite(planet_t a, planet_t b, vec2 AB, double l){
+//     double calcul_mass = a.mass * b.mass;
+//     double calcul_r3 = pow(vec2_norm(AB),3);
+//     double calcul_force = G * (calcul_mass / calcul_r3) * l;
+//     return calcul_force;
+// }
+
 //force de gravité
 vec2 gravite(planet_t a, planet_t b){
     vec2 AB = vec2_sub(a.pos, b.pos);
@@ -125,27 +133,39 @@ vec2 gravite(planet_t a, planet_t b){
 vec2 somme_force(system_t system, planet_t p){
     vec2 s = gravite(p, system.star);
     for(int i = 0 ; i < system.nb_planets ; i++){
-        if(is_equal(p , system.planets[i])){
+        if(!is_equal(p , system.planets[i])){
             vec2 g = gravite(p, system.planets[i]);
             s.x += g.x;
             s.y += g.y;
         }   
     }
-    return s; 
+    return s;
 }
 
 //acceleration
 vec2 accel(system_t system, planet_t p){
     vec2 a = somme_force(system , p);
-    return vec2_create(a.x / p.mass, a.y / p.mass);
+    double x = a.x / p.mass;
+    double y = a.y / p.mass;
+    return vec2_create(x, y);
 }
 
+    
+
+// static double calcul_vitesse(planet_t p, double l, vec2 per){
+//     double num = G * M_SOLEIL * (1 + p.e);
+//     double denom = p.DG * (1 - p.e);
+//     double racine = sqrt(num/denom);
+//     double res = racine * (l / vec2_norm(per));
+//     return res;
+// }
+
 //vitesse initiale
 vec2 vitesse_i(planet_t p){
     vec2 per = vec2_create(-p.pos.y , p.pos.x);
     vec2 vi;
-    vi.x = sqrt((G * M_SOLEIL * (1 + p.e)) / p.DG * (1-p.e)) * per.x / vec2_norm(per);
-    vi.y = sqrt((G * M_SOLEIL * (1 + p.e)) / p.DG * (1-p.e)) * per.y / vec2_norm(per);
+    vi.x = sqrt((G * M_SOLEIL * (1 + p.e)) / (p.DG * (1-p.e))) * per.x / vec2_norm(per);
+    vi.y = sqrt((G * M_SOLEIL * (1 + p.e)) / (p.DG * (1-p.e))) * per.y / vec2_norm(per);;
     return vi;
 }
 
@@ -153,11 +173,15 @@ vec2 vitesse_i(planet_t p){
 vec2 pos_init(system_t system, planet_t p, double delta_t){
     vec2 v = vitesse_i(p);
     vec2 a = accel(system , p);
-    return vec2_create(p.pos.x + delta_t * v.x + (pow(delta_t, 2) / 2) * a.x, p.pos.y + delta_t * v.y + (pow(delta_t, 2) / 2) * a.y);  
+    double x = p.pos.x + delta_t * v.x + (pow(delta_t, 2) / 2) * a.x;
+    double y = p.pos.y + delta_t * v.y + (pow(delta_t, 2) / 2) * a.y;
+    return vec2_create(x, y);  
 }
 
 //position update
 vec2 pos_u(system_t system, planet_t p, double delta_t){
     vec2 a = accel(system , p);
-    return vec2_create(2 * p.pos.x - p.prec_pos.x + pow(delta_t, 2) * a.x , 2 * p.pos.y - p.prec_pos.y + pow(delta_t, 2) * a.y);
+    double x = 2 * p.pos.x - p.prec_pos.x + pow(delta_t, 2) * a.x;
+    double y = 2 * p.pos.y - p.prec_pos.y + pow(delta_t, 2) * a.y;
+    return vec2_create(x, y);
 }
\ No newline at end of file
diff --git a/skeleton/vec2.o b/skeleton/vec2.o
index 54a08fae76f3ecaa63059fbbda66a731baf84400..11472e3c4b3b15a56989fdfbdb992372a91f3011 100644
Binary files a/skeleton/vec2.o and b/skeleton/vec2.o differ
diff --git a/skeleton/vec2/vec2.c b/skeleton/vec2/vec2.c
index acfac2f280d314cde80097dc3a66e3e0d9f1a052..9a4bc912e945babc3fb3bc5084d8d3d44e226c77 100644
--- a/skeleton/vec2/vec2.c
+++ b/skeleton/vec2/vec2.c
@@ -118,15 +118,11 @@ bool vec2_is_approx_equal(vec2 lhs, vec2 rhs, double eps) {
 /// @param width The screen width.
 /// @param height The screen height.
 /// @return The coordinates (rwo, column).
-coordinates vec2_to_coordinates(vec2 v, uint32_t width, uint32_t height) {
+coordinates vec2_to_coordinates(vec2 v) {
 
-    
-    width -= 1;
-    height -= 1;
+    double coordinates_x = v.x/1000000000 + 500;
 
-    double coordinates_x = v.x*width/2 + width/2;
-
-    double coordinates_y = v.y*height/2 + height/2;
+    double coordinates_y = v.y/1000000000 + 500;
     coordinates new_cor;
     new_cor.row = round(coordinates_y);
     new_cor.column = round(coordinates_x);
diff --git a/skeleton/vec2/vec2.h b/skeleton/vec2/vec2.h
index e1f7f1084866caa95e361ade560a8b48c7988f83..843a1d209a745c5861c1082cb9590cec87ee42ee 100644
--- a/skeleton/vec2/vec2.h
+++ b/skeleton/vec2/vec2.h
@@ -34,7 +34,7 @@ vec2 vec2_normalize(vec2 v);
 
 bool vec2_is_approx_equal(vec2 lhs, vec2 rhs, double eps);
 
-coordinates vec2_to_coordinates(vec2 v, uint32_t width, uint32_t height);
+coordinates vec2_to_coordinates(vec2 v);
 
 void vec2_print(vec2 v);