Skip to content

About

Gold Award, BPhO Computational Challenge 2024. Website with interactive projectile motion experiments. Modelling range, bounding parabolas, etc. accounting for drag, Earth curvature, and altitude-dependent air density..

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

BPhO Computational Challenge – Projectile Motion Explorer

Website with interactive projectile-motion experiments for the British Physics Computational Challenge. This project was awarded a Gold Award.

The app lets users explore a range of projectile-motion models by adjusting physical parameters such as launch speed, launch angle, start height, and gravity. It includes both closed-form and numerical modelling, along with extensions for drag, Earth curvature, altitude-dependent effects, bouncing trajectories, and related quantities such as range, arc length, and bounding parabolas.

Features

  • Interactive Flask-based web interface
  • User-controlled projectile parameters, e.g.:
    • initial velocity
    • launch angle
    • launch height
    • gravity
  • Multiple trajectory models, including:
    • standard projectile motion
    • numerical simulation
    • minimum launch speed / low-ball / high-ball trajectories
    • bounding parabola
    • maximum range trajectory
    • arc length calculations
    • bouncing projectile motion
    • projectile motion with air drag
  • Plot generation and visualisation of trajectories
  • Video output for bouncing motion
  • MATLAB-based numerical and analytical modelling integrated into the web app

Models Included

Task 1: Numerical simulation

Computes projectile motion step-by-step using a numerical update scheme.

Task 2: Analytic trajectory

Generates the closed-form projectile trajectory using standard equations of motion.

Tasks 3–6: Extended projectile analysis

Includes:

  • minimum launch speed
  • low-ball and high-ball solutions
  • maximum range angle
  • bounding parabola
  • arc length calculations

Task 7: Range analysis

Computes and visualises radial distance properties over time.

Task 8: Bouncing projectile

Simulates repeated bounces using a coefficient of restitution and produces a video of the motion.

Task 9: Projectile motion with drag

Simulates motion with air resistance using vector dynamics and numerical time-stepping. Also includes consideration of Earth curvature.

Tech Stack

  • Flask
  • Python
  • MATLAB
  • MATLAB Engine for Python
  • NumPy
  • HTML/CSS for the website front end
  • Matplotlib-style plotting / figure generation
  • OpenCV not required; video output is handled through MATLAB tooling

Setup

This project requires:

  • Python
  • MATLAB installed locally
  • MATLAB Engine for Python configured
  • Flask
  • NumPy

Install Python dependencies

pip install flask numpy

MATLAB Engine

Make sure MATLAB Engine for Python is installed and available in your environment.

Run the app

python app.py

Then open the local Flask server in your browser.

Notes

  • The project combines analytical mechanics with numerical computation.
  • It was designed to make projectile-motion theory interactive and visual.
  • The codebase includes both modelling logic and web-app integration.

Award

Gold Award – British Physics Computational Challenge

About

Gold Award, BPhO Computational Challenge 2024. Website with interactive projectile motion experiments. Modelling range, bounding parabolas, etc. accounting for drag, Earth curvature, and altitude-dependent air density..

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages