The way the simulations act, is no different then a point and click puzzle game. Each object in the scene communicates with a solver that does all the complex math calculations and funnels events to the unity end. Once we receive these events we can then accurates display to the user what they wish to get.
I learned a lot about how their projects were handled in the first few months and how I could optimize the workflow and make it more effcient. The biggest challenge getting onboarded was how every program they were developing was comprised on an entirely different Unity project, each with its own unique codebase. I was tasked with designing a simple system "Marble". Marble was a git repository that contained every single common script within that, when pushed, would change everything you just pushed into every single project.
Overall, working on this project has allowed me to improve my skills by being trusted with a large amount responsibility from the beginning. With the fixes to the workflow and the improvements to my programming skills I have reliably learnt how to rapidly produce content that is scalable, which I have applied to numerous other Simutech projects and my own.