Software

PDEOpt

This Julia code implements the algorithms discussed in [AVB, SV, 2021] and allows for the reproduction of the results in that paper. The gradient methods in [AVB, SV, 2019] can also be investigated using this code, but the original figures in that paper were made using an older Matlab implementation. The code is aimed at further research. While the algorithms themselves are efficient, the implementation is not optimised for speed but for flexibility and adaptability to new ideas and new model problems.

CirculantEmbedding.jl

Julia package for sampling Gaussian stochastic fields using the circulant embedding method. The package also allows the so-called extended samples to be returned. By cutting or extracting different parts, these can be used to generate multiple weakly correlated samples of the stochastic field on the original small grid with just a single circulant embedding calculation. See Section 3.3 in my PhD for more information.

Neuron.jl

A toy CPU based neural network library written entirely from scratch in Julia, using only Julia's standard library. It features networks with arbitrary connectivity, several layer types, cost functions and training schemes and easy extensibility for new ones. Furthermore, each batch is processed in parallel for maximum efficiency.

SimpleCanvas.jl

A simple canvas for drawing to the screen pixel by pixel. Wraps a matrix in a canvas. One can read and write from that canvas as if it were any other Matrix, but the contents are shown in real time on the screen. This happens partially asynchronously, such that the canvas can still be used somewhat efficiently in calculations. One could pass the canvas to any routine that allows AbstractMatrix, and see in real time how that routine updates the matrix.

Java Raytracer

A CPU based Java raytracer to render 3d graphics. It was created in the context of the Computer Graphics Project course by prof. P. Dutré at KU Leuven in Spring 2015.