Projects

Video inpainting is the task of removing unwanted objects from a video and filling the gap convincingly — think of it as Photoshop's content-aware fill, but for moving images. The problem is hard: not only does each frame need to look realistic on its own, but the reconstruction has to stay consistent across time. State-of-the-art methods at the time used transformers to attend over large temporal windows, which gave great results — but made them too slow to run in real time.
For my master's thesis at ETH Zürich's Computer Vision Lab, I set out to fix that. The core idea was to rethink how these models access past frames: instead of recomputing everything from scratch at each step, I introduced a memory mechanism that stores and reuses relevant features across time. This cut the computational cost enough to double the throughput of three different models, pushing them into real-time territory without significantly hurting quality. The work was published at the NTIRE workshop at CVPR 2024.
PyTorchComputer VisionTransformersVideo Inpainting
For a History of Science course at École Polytechnique, we studied the Coradi analyzer — a mechanical calculator from the early 20th century designed to compute Fourier series coefficients. The device works by sliding a carriage along a hand-drawn periodic curve: as you move it, a set of rotating glass spheres accumulate the integral values, with separate dials measuring the sine and cosine components. Essentially, it is an analog computer built entirely from gears and geometry.
We built an interactive website to document how it works — walking through the underlying mathematics, the mechanical design, and the historical context. It includes a photo gallery of the device and an embedded video demonstration.
HTMLMathematicsHistory of Science
Pursuit-Evasion with Reinforcement Learning
A classic problem in multi-agent AI: a group of pursuers must learn to catch an evading target on a grid, with no prior knowledge of strategy and limited fields of vision. For a course project at École Polytechnique, we implemented the environment from scratch and trained agents using several reinforcement learning approaches — SARSA, Q-Learning, and Deep Q-Learning with a neural network.
PythonReinforcement LearningMulti-AgentDeep Q-Learning