Physics + Programming
Simulate projectile motion with air drag in Python
Plot real trajectories with air resistance and compare them with the textbook parabola.
- DifficultyIntermediate
- Estimated time1–2 weeks
- Budget₹0
- ClassClass 11 to college
- TeamSolo or up to 2
- You needComputer only
Prerequisites: Projectile motion equations, basic Python loops and lists
Original · by TechnifyedSimulationSoftware ProjectFree to doComputer onlyWell documentedTwo subjects
Overview
Textbook projectiles ignore air. Add a drag force proportional to speed squared, step the motion forward in small time intervals, and plot the path. You will see the range shrink and the best launch angle drop below 45 degrees.
Why build this?
It shows where the school formula stops working and teaches the numerical method used in every physics engine and weather model.
What you will learn
- How to turn Newton's second law into a step-by-step update
- Why a smaller time step gives a better answer
- How drag changes range, height and optimum angle
- How to present results as clear plots
Skills you will use
Materials and tools
- Computer with Python 3
- NumPy and Matplotlib installed
Tools and software
Step-by-step roadmap
Start
You will finish with: trajectory plots, a range-against-angle graph showing the optimum angle below 45°, and commented code.
- 1
Prerequisites
Know this first: projectile motion equations, basic Python loops and lists. Then collect the 2 items in the materials list.
- 2
Learn
- How to turn Newton's second law into a step-by-step update
- Why a smaller time step gives a better answer
- How drag changes range, height and optimum angle
- How to present results as clear plots
- 3
Plan
List the features for version one, sketch the screens or data flow and pick the tools. Keep the first version small.
- 4
Build
- Write a function that computes the no-drag trajectory from the formulas and plot it.
- Write a loop that updates velocity and position every 0.01 s using only gravity; check it matches step 1.
- Add a drag acceleration of magnitude k × v² opposite to the velocity.
- Run the simulation for a cricket ball at several launch angles and record the range.
- Plot range against angle with and without drag on the same axes.
- Halve the time step and confirm the results barely change.
- 5
Test
With k set to zero the simulated range must match v² sin 2θ ÷ g to three figures.
- 6
Document
Write a README: what it does, how to run it, screenshots and what you learned. Report structure
- 7
Present
Show a live demo of one complete task, then the design and the hardest problem you solved. Presentation structure · Viva questions
- 8
Publish
Put the code on GitHub with the README and, if you can, deploy a live demo.
Expected outcome
Trajectory plots, a range-against-angle graph showing the optimum angle below 45°, and commented code.
Other versions of this project
Beginner version
Simulate only the no-drag case and check it against the formula.
Advanced version
Add wind and the Magnus force on a spinning ball, and animate the flight.
Research version
Fit the drag constant to slow-motion video of a real shuttlecock and report how well a v² model matches.
No-hardware version
This project needs no hardware.
Portfolio version
Turn it into a small web app with sliders for speed, angle and drag, and publish the code on GitHub.
Make this project better
- BasicSimulate only the no-drag case and check it against the formula.
- This projectSimulate projectile motion with air drag in Python
- AdvancedAdd wind and the Magnus force on a spinning ball, and animate the flight.
- ResearchFit the drag constant to slow-motion video of a real shuttlecock and report how well a v² model matches.
- PortfolioTurn it into a small web app with sliders for speed, angle and drag, and publish the code on GitHub.
Ways to do this project
Text marked "You write this" is a prompt for your own work; everything else is specific to this project.
- Research question
- You write thisOne question you can answer with data, narrow enough to finish in the time you have.
- Hypothesis
- You write thisWhat you expect to find, and why.
- Variables
- You write thisWhat you change or compare, what you measure, and what you hold constant.
- Methodology
- Fit the drag constant to slow-motion video of a real shuttlecock and report how well a v² model matches.
- Data collection
- You write thisSay what you will record, how many times, and how you will keep the records safe.
- Analysis
- You write thisChoose the table, chart or test that answers the question; report averages with their spread.
- Limitations
- You write thisList what could have affected the result: small sample, instrument limits, things you could not control.
Literature review
Find five to eight sources (your textbook, review articles, reports) and note what each says about your question. Group them by idea, not one after another, and end with what is still not known.
References
List every source you used in one style throughout (author, year, title, where it was published, link and the date you opened it).
Use this as the outline of your README or case study.
- Problem
- Textbook projectiles ignore air.
- Why it matters
- It shows where the school formula stops working and teaches the numerical method used in every physics engine and weather model.
- What was built
- Trajectory plots, a range-against-angle graph showing the optimum angle below 45°, and commented code.
- Technology
- Matplotlib, NumPy, Python
- Architecture
- You write thisOne diagram: the parts and how data moves between them.
- Implementation
- You write thisThe 6 build steps in your own words, with one code or design decision you are proud of.
- Challenges
- You write thisThe hardest bug or decision, and how you got past it.
- Results
- With k set to zero the simulated range must match v² sin 2θ ÷ g to three figures.
- Demo and code
- You write thisA link to a live demo or a short video, and to the GitHub repository.
- Lessons learned
- You write thisWhat you would do differently next time.
- Future improvements
- Add wind and the Magnus force on a spinning ball, and animate the flight.
- Problem
- Textbook projectiles ignore air.
- Target user
- You write thisOne specific person: who they are and when they would use this.
- Solution
- Plot real trajectories with air resistance and compare them with the textbook parabola.
- First version (MVP)
- Simulate only the no-drag case and check it against the formula.
- Tech stack
- Matplotlib, NumPy, Python
- Architecture
- You write thisA quick sketch of the parts and how they connect.
- Demo
- With k set to zero the simulated range must match v² sin 2θ ÷ g to three figures.
- Stretch goals
- Add wind and the Magnus force on a spinning ball, and animate the flight.
Team roles
Plan by length
24-hour
- Hours 0–2: agree the problem, the user and the one thing the demo must show
- Hours 2–16: build only the first version
- Hours 16–20: test the demo path end to end and fix what breaks
- Hours 20–24: slides, a 2-minute demo script and a backup recording
48-hour
- Evening 1: problem, user, sketch and task split
- Day 1: first version working end to end
- Day 2 morning: one stretch goal and testing
- Day 2 afternoon: polish, slides and demo practice
1-week
- Day 1: research the problem and talk to two possible users
- Days 2–4: first version
- Day 5: stretch goals
- Day 6: testing and write-up
- Day 7: demo video and presentation
Working as a team
Solo or up to 2. Suggested roles:
Report and presentation
Report structure
- Title and summary
- Problem and target user
- Features
- Tools and technology
- Design: architecture, data model or screens
- Implementation
- Testing
- Results and screenshots
- Challenges
- Future improvements
- References
Presentation structure
- The problem
- Who it is for
- Live demo
- How it is built (one diagram)
- The hardest part
- Testing and results
- What you learned
- What comes next
Viva questions
Try answering before you open each one.
What numerical method did you use?
Euler's method: velocity and position are updated using the acceleration over a small time step.
Why does the optimum angle fall below 45°?
A lower launch spends less time in the air, so drag removes less horizontal speed.
How do you know the time step is small enough?
Halving it changes the range by less than 1 percent.
What is k?
A constant combining air density, the drag coefficient and the ball's area and mass.
Resources
Source and attribution
Original
Written by Technifyed. Free to use for your own school or college project; write the report in your own words. Added 1 Oct 2026.
Similar projects
More Physics projects
Physics · Dynamics
Launch a water rocket and predict its range
Build a bottle rocket and find the water volume and angle that give the longest flight.
Physics · Electromagnetism
Electromagnetic braking in a copper pipe
Time a magnet falling through copper, aluminium and plastic pipes and show how eddy currents slow it.
Physics · Electromagnetism
Build a simple DC generator and light an LED
Wind a coil, spin magnets inside it and measure the voltage you generate.
Physics + Astronomy and Space
Estimate the Sun's power with a can of water
Measure how fast sunlight heats blackened water and estimate the solar constant.
Same tools
Artificial Intelligence · Deep Learning
Classify handwritten digits with a neural network
Train a small neural network on the MNIST digits and study where it goes wrong.
Artificial Intelligence · NLP
Detect spam messages with a text classifier
Train a model on a public SMS dataset to separate spam from normal messages.
Literature and English + Data
Analyse word use in a novel with a computer
Count words and character mentions in a public-domain novel and see what the numbers reveal.
Games, Graphics and New Tech · Blockchain
Build a simple blockchain
Implement blocks, hashes, proof of work and validation to see how a chain resists tampering.
Two-subject alternatives
Aerospace Engineering + Physics
Make a model wind tunnel and test shapes
Build a small wind tunnel from a fan and straws and compare the drag of different shapes.
Civil Engineering + Earth Science
Design an earthquake-resistant building model
Build a simple shake table and test how bracing and base isolation protect a model tower.
Aerospace Engineering + Astronomy and Space
Simulate a satellite orbit
Integrate Newton's law of gravity to draw circular, elliptical and escape orbits.
Games, Graphics and New Tech + Physics
Create a 2D physics sandbox
Simulate bouncing balls with gravity, friction and collisions in the browser.
Same difficulty and budget
Astronomy and Space + Aerospace Engineering
Design a Mars habitat and justify every choice
Design a base for four astronauts and explain how it provides air, water, food, power and radiation shielding.
Astronomy and Space + Geography
Use satellite images to measure change in a lake or forest
Compare satellite images from two dates and measure how much a water body or forest has changed.
Environmental Science + Applied Mathematics
Estimate the carbon stored by a planting drive
Measure young trees from a planting drive and model how much carbon they will store over 20 years.
Biology + Environmental Science
Test how fertiliser runoff affects algae growth
Add different amounts of fertiliser to jars of pond water and track how green they turn.