Path tracing Quake in Blender
Using Python and Blender I produce a tool for converting Quake demo files into a path traced scene.
Python projects, CS curiosities, and mathematical musings.
Using Python and Blender I produce a tool for converting Quake demo files into a path traced scene.
Using Python, OpenCV, and PyTorch to reproject the Mars 2020 / Perseverance descent and landing footage onto satellite imagery of the area.
A Python script for extracting level data from the Super Mario Bros ROM, using a 6502 emulator (also written in Python).
Applying convolutional neural networks to the problem of automatic number plate recognition. Synthesized number plate images are used to train a TensorFlow network which is then used to detect number plates in real-world images.
Following from my previous experiments with face alignment, I got to thinking if the same techniques could be applied to photo-a-day time lapse projects, such as Noah Kalina's 12.5 year (and counting) epic. It turns out they can; in this post I explain how I smoothed out this video.
In 2001 Viola and Jones introduced their successful face (and other object) detection algorithm, based on so-called Haar-like features. This post describes how I used mixed integer linear programming (MILP) and Python to write a script which inverts this algorithm; instead of detecting faces in an input image, it will generate an image of a face.
For Christmas 2015, the director of British spy agency GCHQ released a Christmas card featuring a grid-shading puzzle. This post describes a Python script to solve the puzzle (which can also be applied to similar puzzles), which uses a SAT solver to find the solution.
In the months leading up to NASA's historic flyby of Pluto, the New Horizons probe took a series of pictures of the dwarf planet as it approached. This post describes how I used Python to turn these unaligned images into a flyby animation.
Automating the algorithm from the previous post. Facial landmarks are detected using dlib. Alignment, colour correction, and blending is then done with numpy and OpenCV.
A methodical technique for face swapping in the GIMP. The approach replaces the face of a person in one image with the face of a person in another image.