A project aimed to explore the qualitative and mathematical relationships seen throughout aspects of physics through programming.
For each topic of physics investigated, there are one or several programs demonstrating the corresponding theory through visualizations or simulations.
Programs are written in C++ using the SFML framework. Though Python is often a popular choice for scientific uses, I chose C++ due its comparative speed and popularity in computer graphics. The main advantage of Python is the large amount of abstraction it offers both for mathematical and scientific computations, but since the goal of this project is to develop these tools from scratch, this is not an influential factor. In the future though, as I progress to more involved concepts, I may transition to Python through frameworks like Processing or SciPy.
Through this project, I aim to cover principles of physics presented in a calculus-based introductory physics course, as well as anything else that happens to interest me. Although the structure is not organized around any particular curriculum, material is loosely borrowed from MIT's 8.01 course and University Physics by Young and Freedman. Knowledge of basic calculus and programming principles are assumed in communication of concepts.
If you wish to try any of the programs or build upon them, SFML must be installed on your platform.