<< Graphics`Shapes`
<<Calculus`VectorAnalysis`

gravity  =  {0, 0, -32};
G = 100;
wind[t_, p_] :=  {0, 0, 0};

refresh  = 10;
startTime  =  0; maxTime  =  5;  
    dt  =  0.033333;
  
object = {
{{0, 0, 0}, {10, 0, 50}, {0, 0, 0}, {0, 0, 
            0}, 2, 1}, 
{{10, 10, 0}, {0, 0, 0}, {0, 0, 
            0}, {0, 0, 0}, 1000, -1}
}

(* consider objects pairwise *) 
For[
      t = startTime; ds = refresh; 
      slist = {}, 
t < maxTime, 
t = 
        t + dt, 
For[i = 1; newObjects = {}, 
            i < Length[
                object], i++, 
p1 = object[[i]][[1]]; 
v1 = object[[i]][[2]]; 
f1 = object[[i]][[4]]; 
m1 = object[[i]][[5]]; 
For[j = i + 1, 
              j < Length[object], j++, 
If[
                  i ≠ 
                    j, 
p2 = object[[j]][[1]]; 
v2 = object[[j]][[2]]; 
f2 = object[[j]][[4]]; 
m2 = object[[j]][[5]]; 
dist2  =  
                    DotProduct[p1, p2]; 
f =  
                    m1*m2*G/dist2; 
v = (p1 - p2)/
                      Sqrt[dist]; 
f1 += 
                    f*v; 
f2  -=  
                    f*v;
];
]; 
a1 = f1/m1; 
v1 = 
              v1 + a1*dt; 
p1 = 
              p1 + v1*dt; 
newObjects  =  
              Append[newObjects, {p1, v1, a1, {0, 0, 0}, 
                  m1}];
]
If[
            ds == 0, ds = refresh; 
            slist = Append[slist, 
                TranslateShape[Graphics3D[Sphere[1, 10, 10]], p]], 
            ds = ds - 1];
]

Show[slist, PlotRange -> {{0, 100}, {0, 100}, {0, 100}}, 
        ViewPoint -> {0, -100,  0}, 
        AxesLabel -> {"X", "Y", "Z"}];

temp = If[p[[3]] > 50, {10, 0, 0}, {0, 0, 0}]

Graphics3D[s1];

Show[%]

<< Graphics`Shapes`

Show[Graphics3D[Torus[]]]

Show[Graphics3D[Sphere[]], ViewPoint -> {10, 50, 50}, 
      ViewCenter -> {0, 0, 0}]