physim is a physics simulation project written in C++ and SFML, designed to gradually simulate a wide range of fundamental physics concepts. The goal is to build a flexible, visually appealing, and academically solid simulation tool that can help learners understand the math and physics behind each scenario—while also gamifying them.
Currently, physim focuses on the "Motion in One or Two Dimensions" topic, and within it, the "Projectile Motion" sub-topic is fully implemented. All physics, mathematics, and parameter calculations are done from scratch: no external physics engines or shortcuts.
Over time, I plan to expand physim to include simulations for more fundamental physics topics and their sub-topics, such as:
- Projectile Motion (Done)
- Uniformly Accelerated Motion
- Inclined Plane Motion
- Relative Motion
- Force and Acceleration
- Friction and Tension
- Free Body Diagrams
- Kinetic and Potential Energy
- Conservation of Energy
- Power and Work Done by Forces
- Torque and Angular Acceleration
- Moment of Inertia and Angular Momentum
- Rotational Kinetic Energy
- Simple Harmonic Motion (SHM)
- Wave Properties (Frequency, Amplitude, Wavelength)
- Interference and Resonance
As these features are developed, I will introduce corresponding demos and documentation.
Projectile Motion Demo (Video): https://youtu.be/2NtaPTdb8nE
- Language & Library: Implemented in C++ with SFML for graphics and event handling.
- From Scratch Physics: All formulas, constants, and computations—such as gravitational acceleration, velocity decomposition, and trajectory/angle calculations—are hand-coded. No physics libraries are used.
- Scalability: The code structure is designed to grow with new topics and more complex scenarios without sacrificing clarity.