I'm Brandon Birchall, machine learning enthusiast and avid developer. I love all things computer science, but really enjoy machine learning and artificial intelligence.
I'm also really interested in computer hardware design, GPU programming, optimization problems and parallel processing.
In my spare time I produce electronic music and I'm also a keen freerunner.
I use my GitHub to post side-projects I'm working on or have worked on in the past, feel free to have a look around!
- Proficient in Java, C, Python
- Knowledge of GLSL, SQL, JavaScript, Assembly
- Machine Learning (TensorFlow, Scikit-Learn, NumPy, Matplotlib, JupyterNotebook, Conda)
- Docker, Linux and Gradle
- Blockchain and cryptocurrencies
- Agile development experience and been in leadership positions
- Soon to graduate from Lancaster University with a predicted first class honours in BSc Computer Science
- A Level Mathematics (A), Computer Science (A), Physics (B)
- AS Level Further Mathematics (A)
I learned about deep convolutional GANs and general GAN architectures to attempt to generate Snare Drum sounds.
The project works and generates interesting sounds which appear to resemble a snare drum moreso than they do noise, however more compute resources and a better understanding of sound/signal processing in the context of AI/GANs is needed to optimize the model to produce better results.
I learned about short-time fourier transforms and how they can be used to better represent a sound in a way in which a neural network can work with.
I also learned about how GANs work, which is definitely something I plan on learning more about and working on in the future. I think that GANs could be used to improve the quality of images/videos/sounds or even in the far future used to generate them from scratch.
I built a raytracer in Java using OpenGL bindings provided by LWJGL. It runs on the GPU using Compute Shaders.
The project works and can render a scene with reflections, coloured point lights and spheres. There are a few things I would have liked to have added, namely a more accurate light model and physically based rendering methods, however I have moved onto other projects now so these may be things for the future.
I had fun working out how to use OpenGL compute shaders to accelerate the ray tracing process. GLSL doesn't allow recursive functions which means that I had to re-think how reflections are calculated as this would typically make a recursive function call.
I also learned a lot about computer graphics and how realistic scenes can be drawn by mimicking what light does in the real world. This involves a lot of linear algebra and vector mathematics which I enjoyed learning in a computer graphics context.