# Blog Posts

### Windy Random Fractal Trees

Continuing on the theme of fractals, I was inspired by a Coding Train video to try my hand at drawing fractal trees using the fantastic p5.js library for Javascript.
To get a more natural result I introduced some randomness in a variety of places in the algorithm, and changed the paintbrush as I drew further along the tree.
To give the trees some life I simulated the effect of wind acting on the trees.

### Vim for LaTeX

As a maths student, I am often using LaTeX to type up my assignments or write notes for my classes.
Given its power and flexibility, I also use it for almost all documents that I write these days, such as letters and CVs.
Before now, I had predominantly been using TexMaker and later Overleaf when I switched to Ubuntu.
These were great LaTeX editors whose feature set I probably never exhausted, but they didn’t quite fit with my new system.
I wanted an editor that was lightweight, highly customisable, ran locally and could seamlessly update a pdf while I typed.
Vim was the obvious choice.

### Exploring the Mandelbrot Set

The Mandelbrot set has become an ambassador for the beauty of mathematics. Its hypnotic, complex structure has astounded mathematicians and non-mathematicians alike, and has been a subject of mathematical research for decades. Interested in the structure and behaviour of the Mandelbrot set, I used Python to animate zooms into this captivating fractal. The limitations of interpreted languages like Python soon became clear so I turned to multi-threaded techniques and C++ to speed things up.

### Control Systems in Kerbal Space Program

Drone and quadcopter usage is at an all time high, but controlling them isn’t exactly plain sailing. In a theoretical setting, applying equal power to each motor should cause the vessel to rise straight up. In practice, with inevitable discrepancies in design and manufacture, producing such a perfectly symmetric system is impossible. So the question arises, how can we vary the speeds of each motor to stabilise and control the aircraft? Such questions are normally answered in an environment such as MATLAB with Simulink but the video game Kerbal Space Program and addon kRPC provide a fun sandbox in which to experiment.

### The Ugly Croissant

The Ugly Croissant presented the opportunity to learn the fundamentals of the web, focusing on responsive design. I used PHP to produce a basic content management system which could handle both recipes and blog posts, and implemented a tagging system to help organise the content. Throughout the process I worked closely with the client to get the design right for her and her audience.