def run_simulation(bodies, names = None, time_step = 1, number_of_steps = 10000, report_freq = 100): #create output container for each body body_locations_hist = [] for current_body in bodies: body_locations_hist.append({"x":[], "y":[], "z":[], "name":current_body.name}) for i in range(1,number_of_steps): compute_gravity_step(bodies, time_step = 1000) if i % report_freq == 0: for index, body_location in enumerate(body_locations_hist): body_location["x"].append(bodies[index].location.x) body_location["y"].append(bodies[index].location.y) body_location["z"].append(bodies[index].location.z) return body_locations_hist