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.
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.
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.
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.
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.
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.
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.
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.
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.
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.