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