Other projects
In this section, I present some my other projects that are of interest but do not mesh well with specific categories.
Markdown Resume Builder
In a nutshell
- Role: Programmer
- Technologies used: Go
- Learnings: Markdown parsing, using the headless Chrome API
- Repository: https://github.com/jlvoiseux/markdown-resume-builder
Description
The resume you can find on this site was created from Markdown using a custom resume builder written in Go. It generates a HTML or PDF resume lofrom a markdown file, is usable through both GUI or CLI, supports including a FontAwesome kit to include icons and also supports including a picture. The following libraries were used:
- Goldmark for Markdown parsing
- ChromeDP to use the Chrome browser to print to PDF in a headless fashion
- Fyne for the GUI
- GitHub Markdown CSS for the styling
Source code snippets selection
Here is the code handling resume generation.
Blind de-rendering, or how to turn a wall into a mirror
In a nutshell
- Role: Author (This was my Master's thesis)
- Technologies used: MATLAB, C++, OpenCV
- Learnings: Long-form written communication, ray-tracing, dealing with ambiguous problems
- Repository: https://github.com/jlvoiseux/1d-blind-derendering
Description
The rendering equation sums all the inbound light for a given surface, applies a function to those light contributions and returns the outbound light for that surface. In essence, ray-tracing is a direct implementation of that equation. The function applied depends on the material (for example, a mirror will not affect the inbound light, such that the outbound light will be similar to the inbound light). The goal of this master thesis was the explore the possibilities of recovering inbound light data, given outbound light data.
We used a signal processing approach, modelling the rendering equation as a convolution, then using deconvolution algorithms to retrieve the source data. While MATLAB was primarily used for this purpose, a C++ ray-tracer was also written to generate source data (using that excellent source from Peter Shirley).
Source code snippets selection
The main function of the ray-tracer is availabler here. The thesis document can be downloaded here.
QuantClustering
In a nutshell
- Role: Programmer within a team of 3 Master students
- Technologies used: Python, Fortran, Javascript (Three.js)
- Learnings: High-performance computing, Computational chemistry
- Repository: https://github.com/jlvoiseux/1d-blind-derendering
Description
In this project, we attempt to quantify the contribution of atoms to the chemical properties of a given cluster of atoms. The metric used is the source function. My contribution to this project was mostly to build tools to compute the source function and then allow for [visualisation of the atomic cluster and its related quantities in a browser using three.js.
Our software interacts with tools such as GAMESS (used to compute wave functions) and MultiWFN (used to analyse the said wave functions). We also had to dissect Fortran code used to do anterior research on the topic.
Source code snippets selection
Here are the source function computation and visualisation systems.