Skip to content
View brandon-birchall's full-sized avatar

Block or report brandon-birchall

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
brandon-birchall/README.md

Profile

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.

Experience

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!

Specific Skills

  • 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

Education

  • 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)

Current Projects

SnareGAN

Overview

I learned about deep convolutional GANs and general GAN architectures to attempt to generate Snare Drum sounds.

Project Status

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.

What I learned

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.

Raytracer

Overview

I built a raytracer in Java using OpenGL bindings provided by LWJGL. It runs on the GPU using Compute Shaders.

Project Status

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.

What I learned

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.

Popular repositories Loading

  1. GPURaytracer GPURaytracer Public

    A GPU Raytracer written in Java using OpenGL Compute Shaders

    Java 1 1

  2. GLENJ GLENJ Public

    Forked from BrandonBirchallUK/GLENJ

    Java

  3. brandon-birchall brandon-birchall Public

    Config files for my GitHub profile.

  4. SnareGAN SnareGAN Public

    Jupyter Notebook

  5. AutoEncoder AutoEncoder Public

    Jupyter Notebook

  6. 8080-Emulator 8080-Emulator Public

    C