Skip to content

amorenobr/Lab_Simulations_Python

Repository files navigation

Physics Lab Simulations

Interactive physics lab simulations built with Python and Streamlit for exploring core concepts in classical mechanics. Adjust physical parameters with sliders and watch the results update in real time.

License: MIT

Simulations

  • Projectile Motion - Launch a projectile at a chosen speed and angle and visualize its trajectory. Computes time of flight, maximum height, and horizontal range from the kinematic equations.
  • Damped Harmonic Oscillator - A mass on a spring. Vary the mass, stiffness, and damping to move between undamped, underdamped, critically damped, and overdamped motion.

Getting Started

This project uses Pixi to manage its environment and dependencies.

Install

git clone https://github.com/amorenobr/Lab_Simulations_Python.git
cd Lab_Simulations_Python
pixi install

Run the app

pixi run streamlit run Simulations.py

Then open the URL shown in the terminal.

Development

Run the tests:

pixi run pytest

Build the documentation:

cd docs && pixi run make html

The HTML output is written to docs/build/html.

Project Structure

Lab_Simulations_Python/
├── Simulations.py                  # Streamlit landing page
├── pages/                          # One file per simulation
├── src/lab_simulations_python/     # Physics engines (importable package)
├── tests/                          # Pytest suite
├── docs/                           # Sphinx documentation
└── index.html                      # stlite (WebAssembly) build for GitHub Pages

Tech Stack

License

This project is licensed under the MIT License - see the LICENSE file for details

Author

Alexander Moreno Briceño - Universidad Antonio Nariño

About

Interactive physics lab simulations built with Python, Streamlit and Plotly

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors