Projects

HRI

Attention-Aware Toy

An experimental HRI project that uses computer vision to estimate user attention and explore how social robots can adapt their behavior based on visual engagement cues. Built with local AI models and designed as a playground for attention-aware interaction.

Python · computer vision · HRI · local AI models

ROBOTICS & AI

Atelier

A collection of small, isolated experiments covering computer vision, AI, robotics, distributed systems, and software engineering. Every experiment exists to deepen understanding, document the learning process, and serve as the foundation for future work.

Python · computer vision · robotics · distributed systems

SYSTEMS

Chip-8

A virtual machine that implements the Chip-8 instruction set. It handles a memory map of 4KB, 16 general-purpose registers, a dedicated program counter, and a stack for subroutine calls. The emulator manages the 60Hz delay and sound timers while rendering the monochrome display buffer using SDL2.

C · CHIP-8 · emulation · SDL2

SYSTEMS

Bitmap Parser

A zero-dependency parser designed to read and manipulate BMP files at the byte level. It extracts file headers and pixel arrays into raw buffers, allowing manual convolution kernels to perform image filtering operations like Gaussian blur and Sobel edge detection without external libraries.

C++ · parsing · image processing · image filtering

SYSTEMS

Malloc Implementation

A custom dynamic memory allocator that provides implementations for malloc, calloc, realloc, and free. It interacts with the Linux kernel via the sbrk syscall and manages the heap segment using a doubly linked list structure to track allocated and free memory blocks, handling block splitting and merging.

C · memory · syscalls · low-level

SYSTEMS

Input Multiplexer

A Linux utility that monitors multiple input event devices simultaneously (mouse and keyboard). It uses the epoll system call to implement an asynchronous I/O multiplexing loop, reading raw event structures from /dev/input and parsing hexadecimal data from keyboard and mouse devices in a single-threaded execution flow.

C++ · Linux · epoll · concurrency · evdev

SYSTEMS

HTTP Server

A multi-threaded HTTP/1.1 server built using the Linux socket API. It manually handles the TCP handshake, parses raw string requests into method and path components, and constructs valid HTTP response headers and body payloads. Concurrency is managed through a thread-per-connection model using POSIX threads.

C++ · sockets · HTTP/1.1 · Linux · networking

SYSTEMS

Raytracer

A 2D raycasting engine that calculates light and shadow visibility through geometric intersections. It casts rays from a central source and computes the nearest collision point with environment segments using linear algebra, rendering the resulting visibility polygon into an SFML window buffer.

C++ · graphics · math · SFML · geometry

SYSTEMS

Sandbox Game

A real-time physics simulation based on cellular automata rules. Each pixel in the grid acts as an individual element with density and state properties. The engine updates the grid every frame, calculating interactions between falling solids, flowing liquids, and expanding gases based on neighbor-state logic.

C++ · engine · physics · simulation · Raylib

SYSTEMS

Game of Life

An implementation of Conway's Game of Life that simulates cellular evolution on a discrete 2D grid. The program applies the four standard transition rules to each cell state simultaneously and uses SFML to render the grid, allowing real-time interaction with the initial seed.

C++ · SFML · simulation · cellular automata