![combinedgif.gif](https://images.squarespace-cdn.com/content/v1/5e1ca17d6e844636c73699a4/1583707117786-F60P49NBT4TU0BBARGV9/combinedgif.gif)
Python and Java Programming
Most of my skills in programming is in python and Java with the latter being my first learned and the former being my most proficient language, although I also do also have a certain level of experience adjusting G-Code manually and working with JavaScript for one-off games. Below are two of my biggest Projects:
![](https://images.squarespace-cdn.com/content/v1/5e1ca17d6e844636c73699a4/1583709511955-X4EAC9WT12V4IEKPNDAR/image-asset.gif)
4P Soccer Pong
This was a grade 11 project I worked on for fun after my ICS3 course. THe game combines some of the things that interested me the most at the time; coding, retro cideo games, and soccer. The project especially tested my photoshop skills as all of the rather nice visuals were designed by myself. This was probably one of the longest programs I wrote in Java with over 500 lines of code, 2 game modes, high scores, brickbreaker-like ball physics, and powerups (although powerups were later removed because they created issues with score-tracking). The documentation can be found on my github here.
Autonomous Fourier Optimized Airplane
As for my biggest Python project, my program utilized a recently learned branch in math called Fourier Analysis. This uses the premise that in the complex plane a complex number’s magnitude represents a stretch and its argument represents a rotation. THis way, by adding a clever combination of several exponential complex numbers We can approximate a very complex and seemingly random or non-mathematical closed loop. By integration and an number of terms approaching infinity, the sum of terms can approach this original path. The motivation to pursue this in python was further driven by Youtube video’s by 3Blue1Brown and Coding Train showing this ability. So, as a simple proof of concept I coded this Fourier approximation which took a drawing from the mouse and started at a certain number of terms to approximate then endlessly adds a term to show the effect of approximating a path with Fourier Analysis.
From here I got interest to find some kind of application for such an amazing ability. Coincidentally I have been working on an RC airplane (as you can see on my other page) for some time and found it quite cool to somehow automate an ‘airshow’ of my own. By extending my program to 3D points I can then set target points and use my approximations to create a flyable, smooth path while also programming maneuvers such as barrel rolls, hammerheads, loops, etc. This way I can also calculate the maximum G-Forces my plane can sustain by approximating my straight line approximations with the fourier transform. I can also use bezier curves to make the math infinitely easier by converting the sharpest bends into parabolic 2D plots to apply the centripital forces to. Overall, the plan is to make an embedded inertial navigation control system with the help of an accelerometer and potentially more sensors. First I will use this as a tool to iteratively modify my design for strength to withstand greater G-Forces and then to program a 5 minute autonomous airshow using obstacles and waypoints which push the limits of my airplanes G-Forces beyond aerobatic stunt planes (which is around 10G). Stay Tuned!