# Basic info Each 'window' is a simulation, essentially just a way to have multiple versions at once without overwriting each other. ### Sim Runner There's a sim runner in `RubixSimulation.hpp`, it's really simple to run #### OOPCube This is the one where I'm trying to rotate faces #### RlImGuiSim Doesn't rotate, but has sliders for overall scale, and also individual panel scaling. ## Chosing a simulation ```cpp int main() { // This is the simulation runner, it creates and manages the simulation data. RubixSimulationRunner simRunner; // These are the two simulations currently implemented RlImGuiSim::RlImGuiSim rlImGuiSim; OOPCube::OOPCube oopCube; simRunner.SetSimulation(&oopCube); // <---- This is where you choose the simulation. If you want to view the other, just change oopCode to rlImGuiSim simRunner.StartSimulation(); return 0; } ```