let do_next_step () =
(* overwrite the oldest configuration *)
Synchro.next_step tr configurations.(depth) configurations.(0);
(* rotate the configurations *)
let new_config = configurations.(0) in
Array.blit configurations 1 configurations 0 depth;
Array.blit backup_configurations 1 backup_configurations 0 depth;
configurations.(depth) <- new_config;
backup_configurations.(depth) <- Array.copy new_config