British Physics Olympiad Computational Challenge

Over the summer break, Sam and Yusuf decided to enter the British Physics Olympiad Computational Challenge.
Writes Yusuf A. (L6)
The competition required us to solve several projectile motion problems using computer models. Naturally, this challenge demanded an interdisciplinary skill set. Both of us had taken Maths and Computer Science at GCSE, and our general programming experience greatly aided us in this regard. For our submission, we completed all the tasks, including the two extension tasks, built an Android mobile app, and wrote a short research paper.
Initially, we coded all the models in Python, using the Plotly charting library. Python’s simple syntax allowed us to focus primarily on the maths. We then translated the Python algorithms into Kotlin to develop a native Android mobile app. Our graphics library of choice was SciChart, a high-performance charting tool for which we obtained a student licence. We added a collapsible navigation bar to switch between models, incorporating standard mobile UX patterns like a hamburger menu, slide-in navigation, swipe gestures, sticky navigation, and animated transitions.
For each task, sliders update the chart in real time, with options to toggle the legend and enable or disable different series. Pressing and dragging on the chart triggers a rollover that displays the X and Y axis values for each line, along with their respective series names. All the code runs locally in the Android app, using the phone's GPU for smooth rendering.
Finally, we produced a comprehensive research report detailing our approach and explaining the maths and physics behind our models' derivations. We summarized our work in a two-minute video, and for our efforts, we were awarded gold.