About me
I am a French Software Engineer with experience in Graphics Programming, Machine Learning and C/C++ Development. I'm into anything remotely creative and technically challenging.
Education
- EPITA Graduate School of Computer Science
- Lot of self-learning
Interests
- 3D Rendering
- GPU/Shader Programming
- High performance C++
- System Engineering
- Game Engine
Content Creation
I try to share my knowledge and experience in graphics and programming with others through social media.
YouTube
Quick Understanding of Homogeneous Coordinates
6 minute video explaining why are 4D vectors used to represent 3D objects. How indispensable could it be so that every 3D graphics API force it on its users ?
Math/CS illustrations
Bayer Dithering
Pixel art makes you compose with a just a handful of colors,
does it mean that you have to abandon soft color gradients ?
Click on this image and see the answer for yourself.
The extremely simple trick to make this crisp look is Bayer dithering.
By adding a structured "noise" pattern before quantizing colors,
you can simulate smooth lighting, depth, and texture.
Comfy gums shader animation tutorial
An illustrated tutorial on how to create a comfy gums shader animation
as shown below.
The shader is made of a simple raymarcher with a custom distance function to create the gums shape.
ShaderToy
Shader programming is an essential part of rendering graphics via the GPU. Such technology can be used as is to draw graphics without any input scene or vertices, which is what I create and share on ShaderToy.
Open Source contributions
Dear ImGui
Dear ImGui is an immediate mode C++ GUI library for graphics applications. I solved a bug in the Vulkan backend that caused a corruption of textures when updated.
Pull RequestProjects
These are projects that I made myself or in collaboration. Some of these cannot be made publicly available for confidentiality reasons.
Graphics Programming & Image processing
-
Unnamed - Voxel Editor
-
Technical breakdownVoxel editor software with a custom rendering engine built on top of Vulkan and C++. It allows users to paint billion of voxels in real-time.
-
-
FastMathArt - Procedural Animation Software
-
Source codeAnimation software that leverages Bezier Splines and GPU graphics pipeline to render procedural animations in real time. Targeted at content creators, teachers and artists.
-
-
Path tracing Engine (Monte Carlo)
-
Source codeSynthetic image rendering engine using ray tracing and modern C++23 features.
-
-
Object Detection with CUDA
-
Source codeC++ Implementation and optimization of object detection algorithm using kernel programming via the CUDA API and Google Benchmark to identify optimizable bottlenecks.
-
-
Morphological operations with ASMJit
-
C++ Implementaion and optimization of morphological
operation using ASMJit to generate x86 assembly
code at runtime.
Source code
-
C++ Implementaion and optimization of morphological
operation using ASMJit to generate x86 assembly
code at runtime.
C++ General Programming
- Modern compiler with Flex, Bison and LLVM based on Tiger Compiler
-
Tetravex Solver
- Tetravex is Sudoku-like puzzle game.
The purpose was to solve a given Tetravex grid
with Metropolis-Hastings sampler and
Simulated Annealing optimization.
Source code
- Tetravex is Sudoku-like puzzle game.
The purpose was to solve a given Tetravex grid
with Metropolis-Hastings sampler and
Simulated Annealing optimization.
-
Distributed File System
-
Implementation of distributed servers that store files
and clients logs using RAFT consensus algorithm.
- Chess Engine with AI oponent