Gabriel Desfrene

Personal Projects

Back to main page


Projects Overview

Here are the personal projects I have worked on outside of my research internships. These projects showcase my interests in systems programming, compilers, operating systems, and formal methods.

iLQR Solver (Winter 2024)

GitHub: https://github.com/Red-Rapious/iLQR

An implementation of the iterative Linear Quadratic Regulator (iLQR) method for trajectory optimization in discrete, nonlinear, finite-horizon optimal control problems. The algorithm iteratively refines trajectories by linearizing dynamics around the current trajectory and solving sequence of LQR problems. Core implementation in Rust with Python bindings using pyo3, allowing integration with libraries such as Pinocchio for rigid body dynamics. Successfully tested on classical problems including cart-pole and inverted pendulum with convergence typically achieved in 7-22 iterations.

Chess Scoring Engine (Autumn 2024)

GitHub: https://github.com/pgberlureau/GNN-GM

Design and training of a chess scoring engine using graph neural networks.

Pi-kachULM_OS (Spring 2024)

GitHub: https://github.com/desfreng/Pi-kachULM_OS

A general-purpose operating system written in C++ (~10,000 lines) supporting Raspberry Pi 3B+, 4, and CM4. Features include preemptive scheduling with 32 priority queues, virtual memory management with ARM MMU using separate kernel/user address spaces, and a complete driver ecosystem. Implements GPIO, UART, DMA, IRQ controllers, and PS/2 keyboard support with custom hardware interfacing circuit. Includes a window manager with framebuffer graphics, syscall interface with 30+ system calls, and FAT filesystem support for program loading. The kernel supports dynamic hardware recognition via DeviceTree, efficient page allocation using binary tree optimization, and both contiguous DMA buffers and standard heap allocation.

PetitPureScript (Winter 2023)

GitHub: https://github.com/desfreng/PetitPureScript

A compiler from a subset of PureScript to X86_64 assembly implementing lexical analysis, semantic analysis, pattern matching compilation, and type instance resolution. Features include support for Effect types compiled as closures, universal and unifiable type variables with proper quantification, and optimized pattern matching using binary search trees for constants. The compilation pipeline includes program simplification with constant propagation, local variable allocation with closure handling, and x86_64 code generation respecting calling conventions.

CPUlm (Winter 2023)

GitHub: https://github.com/CPUlm

Design of a basic 32-bit processor with a custom instruction set architecture and development of a complete ecosystem for its use. The project includes multiple components: the processor design itself (Python), a reference assembler (OCaml), a netlist compiler to C (OCaml), and a netlist interpreter (C++). The complete ecosystem enables full processor simulation, assembly programming, and testing with approximately 4,700 lines of OCaml and 2,900 lines of C++ across all components.

Feistel (Spring 2022)

GitHub: https://github.com/desfreng/Feistel

An implementation of Feistel network cryptographic algorithms. The project covers classical Feistel cipher construction principles, implementing both SDES (Simplified DES) for educational purposes and Lucifer algorithm analysis.

MiniML (Winter 2022)

GitHub: https://github.com/desfreng/MiniML

An interpreter for Mini-ML, a subset of OCaml, implementing type inference using Algorithm W. Features include support for recursive and anonymous functions with unit arguments, homogeneous arrays with indexing and assignment operations, and structural equality operators.