Blog Posts

Windy Random Fractal Trees

Continuing on the theme of frac­tals, I was in­spired by a Coding Train video to try my hand at draw­ing frac­tal trees us­ing the fan­tas­tic p5.js li­brary for Javascript. To get a more nat­ural re­sult I in­tro­duced some ran­dom­ness in a va­ri­ety of places in the al­go­rithm, and changed the paint­brush as I drew fur­ther along the tree. To give the trees some life I sim­u­lated the ef­fect of wind act­ing on the trees.

Vim for LaTeX

As a maths stu­dent, I am of­ten us­ing LaTeX to type up my as­sign­ments or write notes for my classes. Given its power and flex­i­bil­ity, I also use it for al­most all doc­u­ments that I write these days, such as let­ters and CVs. Before now, I had pre­dom­i­nantly been us­ing TexMaker and later Overleaf when I switched to Ubuntu. These were great LaTeX ed­i­tors whose fea­ture set I prob­a­bly never ex­hausted, but they did­n’t quite fit with my new sys­tem. I wanted an ed­i­tor that was light­weight, highly cus­tomis­able, ran lo­cally and could seam­lessly up­date a pdf while I typed. Vim was the ob­vi­ous choice.

Exploring the Mandelbrot Set

The Mandelbrot set has be­come an am­bas­sador for the beauty of math­e­mat­ics. Its hyp­notic, com­plex struc­ture has as­tounded math­e­mati­cians and non-math­e­mati­cians alike, and has been a sub­ject of math­e­mat­i­cal re­search for decades. Interested in the struc­ture and be­hav­iour of the Mandelbrot set, I used Python to an­i­mate zooms into this cap­ti­vat­ing frac­tal. The lim­i­ta­tions of in­ter­preted lan­guages like Python soon be­came clear so I turned to multi-threaded tech­niques and C++ to speed things up.

Control Systems in Kerbal Space Program

Drone and quad­copter us­age is at an all time high, but con­trol­ling them is­n’t ex­actly plain sail­ing. In a the­o­ret­i­cal set­ting, ap­ply­ing equal power to each mo­tor should cause the ves­sel to rise straight up. In prac­tice, with in­evitable dis­crep­an­cies in de­sign and man­u­fac­ture, pro­duc­ing such a per­fectly sym­met­ric sys­tem is im­pos­si­ble. So the ques­tion arises, how can we vary the speeds of each mo­tor to sta­bilise and con­trol the air­craft? Such ques­tions are nor­mally an­swered in an en­vi­ron­ment such as MATLAB with Simulink but the video game Kerbal Space Program and ad­don kRPC pro­vide a fun sand­box in which to ex­per­i­ment.

The Ugly Croissant

The Ugly Croissant pre­sented the op­por­tu­nity to learn the fun­da­men­tals of the web, fo­cus­ing on re­spon­sive de­sign. I used PHP to pro­duce a ba­sic con­tent man­age­ment sys­tem which could han­dle both recipes and blog posts, and im­ple­mented a tag­ging sys­tem to help or­gan­ise the con­tent. Throughout the process I worked closely with the client to get the de­sign right for her and her au­di­ence.