Basically reimplement this in C++ and put it behind the global random seed - changing the camera(s) after every reset.