Projects

clue

Technologies

Tags

  • TurboMino: Tetris AI Bot with PPO + CNN + RoPE
    TurboMino: Tetris AI Bot with PPO + CNN + RoPE
    external-link

    Apr 2026

    In progress

    Tetris agent trained with PPO (Stable-Baselines3) on a custom Gymnasium environment. Uses CNN with Rotary Position Embeddings (RoPE), bit-packed uint32 board representation, exhaustive placement search via BFS, and interactive Pygame visualization.

    ai

    AI

    jupyter

    Jupyter

    numpy

    NumPy

    pandas

    Pandas

    pygame

    Pygame

    python

    Python

    pytorch

    PyTorch

    reinforcement-learning

    Reinforcement Learning

  • TFM: Reward Machines on RL
    TFM: Reward Machines on RL
    external-link

    Apr 2026

    In progress

    Master's thesis implementing tabular Q-Learning augmented with Reward Machines (reward automata) and Counterfactual Reward Machines (CRM). Environments: Taxi-v3, MultiTaxi (2 passengers), MiniGrid-DoorKey. Benchmarks 5 variants (no RM, RM only, RM+CRM, improved versions).

    ai

    AI

    jupyter

    Jupyter

    matplot

    Matplot

    numpy

    NumPy

    pygame

    Pygame

    python

    Python

    reinforcement-learning

    Reinforcement Learning

  • String art
    String art
    external-link

    Feb 2025

    Finished

    From pixels to lines. This algorithm transforms raw numbers into patterns that resemble art. Start from one point, evaluate all possible lines, and draw the one that improves the image the most. Repeat until you're done!

    git

    Git

    javascript

    JavaScript

    next

    Next.js

    react

    React

    tailwind

    Tailwind CSS

    typescript

    TypeScript

  • TFG: Visual Document Understanding
    TFG: Visual Document Understanding
    external-link

    Mar 2025

    Finished

    Bachelor's thesis evaluating Visual Document Understanding methods for extracting structured information from documents. Compares Azure OCR + LLM, custom fine-tuned OCR, and DONUT (Document Understanding Transformer) with PyTorch Lightning. Deployed with Docker.

    ai

    AI

    docker

    Docker

    huggingface

    HuggingFace

    jupyter

    Jupyter

    matplot

    Matplot

    numpy

    NumPy

    pandas

    Pandas

    plotly

    Plotly

    python

    Python

    pytorch

    PyTorch

  • Tetris Solver: GA & Simulated Annealing
    Tetris Solver: GA & Simulated Annealing
    external-link

    Sep 2025

    Finished

    Modern Tetris implementation in Unity solved with two metaheuristics: Genetic Algorithm (GA) and Simulated Annealing (SA). Each solution is a sequence of piece placements evaluated by a fitness function that minimizes board space. Includes Python analysis tools and a research paper.

    ai

    AI

    c-sharp

    C Sharp

    jupyter

    Jupyter

    latex

    LaTeX

    matplot

    Matplot

    pandas

    Pandas

    plotly

    Plotly

    python

    Python

    unity

    Unity

  • Multimodal Sexism Detection in Memes
    Multimodal Sexism Detection in Memes
    external-link

    Mar 2026

    Finished

    Multimodal model fusing text (XLM-RoBERTa), physiological signals (EEG, eye tracking, heart rate), and video embeddings (Qwen VL) to classify TikTok memes as sexist or not. Uses CrossModalAttention, GatedTextFusion, and SoftLabelLoss (KLDiv over annotator distributions). Achieves 80.6% macro F1.

    ai

    AI

    huggingface

    HuggingFace

    jupyter

    Jupyter

    numpy

    NumPy

    opencv

    OpenCV

    pandas

    Pandas

    python

    Python

    pytorch

    PyTorch

    sklearn

    Sklearn

  • Custom Viola-Jones Face Detection from Scratch
    Custom Viola-Jones Face Detection from Scratch
    external-link

    Mar 2026

    Finished

    Custom Viola-Jones face detection system with a parallelized Haar cascade classifier. Trained via AdaBoost with hard negative mining on WIDER FACE. Supports Numba JIT (5-10x speedup) with a threaded NumPy fallback. Real-time webcam detection included.

    ai

    AI

    jupyter

    Jupyter

    latex

    LaTeX

    matplot

    Matplot

    numpy

    NumPy

    opencv

    OpenCV

    pandas

    Pandas

    plotly

    Plotly

    python

    Python

    sklearn

    Sklearn

  • Missing-Data-Robust Medical Imaging Model
    Missing-Data-Robust Medical Imaging Model
    external-link

    Apr 2026

    Finished

    3-stage pipeline: self-supervised pretraining on BraTS (brain tumor segmentation), survival prediction training on UPenn-GBM (glioblastoma), and testing. Uses deep learning architecture with YAML config, editable install, and multi-GPU support via PyTorch Accelerator.

    ai

    AI

    jupyter

    Jupyter

    latex

    LaTeX

    numpy

    NumPy

    pandas

    Pandas

    plotly

    Plotly

    python

    Python

    pytorch

    PyTorch

    sklearn

    Sklearn

  • Cloud & Local Voice Assistant with RAG and TTS
  • The Cube: El Jueguito
    The Cube: El Jueguito
    external-link

    Sep 2023

    Finished

    The Cube, also known as El Jueguito, was my first major programming project. With the aim of learning C# and Unity, I started this game as a practice project. The concept is simple: protect a cube from enemies. Round after round, more and more enemies appear, each stronger than the previous. When you can no longer hold them back, you can use the money to upgrade your weapons and survive further rounds!

    c-sharp

    C Sharp

    unity

    Unity

    photoshop

    Photoshop

  • Spanish-Esperanto Neural Machine Translation
    external-link

    Nov 2025

    Finished

    Neural machine translation project for Spanish→Esperanto, a low-resource language pair. Compares NLLB-200, mT5-large, and LLaMA with fine-tuning and few-shot prompting. Trained on CCMatrix parallel corpus. Includes a research paper.

    ai

    AI

    huggingface

    HuggingFace

    jupyter

    Jupyter

    latex

    LaTeX

    matplot

    Matplot

    numpy

    NumPy

    pandas

    Pandas

    plotly

    Plotly

    python

    Python

    pytorch

    PyTorch

  • Portuguese-English Speech Translation
    external-link

    Dec 2025

    Finished

    Speech translation project exploring cascade (ASR → MT) and end-to-end approaches for Portuguese→English. Uses Whisper for transcription, NLLB and mT5 for translation. Trained on CoVoST 2 and EuroparlST datasets. Includes a research paper.

    ai

    AI

    huggingface

    HuggingFace

    jupyter

    Jupyter

    latex

    LaTeX

    matplot

    Matplot

    numpy

    NumPy

    pandas

    Pandas

    plotly

    Plotly

    python

    Python

    pytorch

    PyTorch

  • Computer Vision Labs
    Computer Vision Labs
    external-link

    Mar 2026

    Finished

    Three computer vision assignments: gender recognition (CNN <100K params), car model identification (Bilinear CNN with VGG/ResNet backbones), and ViT attention visualization (rollout + interactive patch explorer). All implemented with PyTorch Lightning.

    ai

    AI

    huggingface

    HuggingFace

    jupyter

    Jupyter

    latex

    LaTeX

    matplot

    Matplot

    numpy

    NumPy

    opencv

    OpenCV

    plotly

    Plotly

    python

    Python

    pytorch

    PyTorch

    sklearn

    Sklearn

  • Procedural Animations
    Procedural Animations
    external-link

    Dec 2024

    Finished

    In this project, I employed the concept of zero keyframes: instead of using images for texture, I drew and rendered the frames of a moving creature to make it appear alive. The main idea was to create fish-like creatures with fins and wobbly eyes. I then incorporated some of my previous work on Inverse Kinematics to generate the legs. The results are incredible visuals of creatures that move as if they were alive!

    matplot

    Matplot

    numpy

    NumPy

    pygame

    Pygame

    python

    Python

  • Maze Generator and Solver
    Maze Generator and Solver
    external-link

    Sep 2024

    Finished

    Mazes are an interesting application of graph and algorithm theory. They can be represented in many ways, but the objective is always to navigate from one tile to another (the exit). Here, we use pathfinding algorithms like A* or Greedy to find the best solution. Click to see how mazes are generated and solved step by step!

    python

    Python

    pygame

    Pygame

    numpy

    NumPy

    ai

    AI

  • Boids Simulator
    Boids Simulator
    external-link

    Sep 2024

    Finished

    Boids, or flocks, are agents that mimic the behavior of certain animals. Specifically, we can simulate the movement of birds or ants. With three simple rules—Cohesion, Alignment, and Separation—we can reproduce this fascinating behavior. Colors change based on direction, creating incredible visuals!

    python

    Python

    pygame

    Pygame

    numpy

    NumPy

    ai

    AI

  • DeepGlobe Road Extraction
    DeepGlobe Road Extraction
    external-link

    Sep 2025

    Finished

    Road segmentation on the DeepGlobe dataset using two approaches: UNet with segmentation_models_pytorch and SegFormer (ViT-based from HuggingFace). Includes CLI for dataset generation, training, and testing. Full report in the project notebook.

    ai

    AI

    huggingface

    HuggingFace

    jupyter

    Jupyter

    matplot

    Matplot

    numpy

    NumPy

    pandas

    Pandas

    plotly

    Plotly

    python

    Python

    pytorch

    PyTorch

    sklearn

    Sklearn

  • Multi-Agent Based Crowd Evacuation Simulation
    Multi-Agent Based Crowd Evacuation Simulation
    external-link

    Jan 2026

    Finished

    Crowd evacuation simulation with heterogeneous agents (polite, aggressive, slow) using the Mesa framework. Explores scenarios (corridor, mall, theater, snake) with A*/BFS/Manhattan pathfinding. Analyzes impact of density, agent types, exit count, and exit preference on evacuation times and flow dynamics.

    ai

    AI

    jupyter

    Jupyter

    latex

    LaTeX

    matplot

    Matplot

    numpy

    NumPy

    pandas

    Pandas

    plotly

    Plotly

    python

    Python

  • Multi-Label Movie Genre Classification
    Multi-Label Movie Genre Classification
    external-link

    Oct 2025

    Finished

    Multi-label classification of 18 movie genres from title and plot summary. Compares three approaches: classical logistic regression (scikit-learn), transformers (DistilBERT/RoBERTa with HuggingFace Trainer), and few-shot prompting with Gemini (Google Generative AI) using structured JSON output.

    ai

    AI

    huggingface

    HuggingFace

    jupyter

    Jupyter

    numpy

    NumPy

    pandas

    Pandas

    plotly

    Plotly

    python

    Python

    sklearn

    Sklearn

  • Double Pendulum
    Double Pendulum
    external-link

    Sep 2024

    Finished

    This project was intended as a one-day coding session and ended up with me playing with the results for three days. The chaos generated by a double pendulum system is quite interesting. The math behind it is simple, involving just two (albeit large) equations. The visuals are amazing and, when properly tweaked, can mesmerize you.

    python

    Python

    pygame

    Pygame

    numpy

    NumPy

  • Orbits Simulator
    Orbits Simulator
    external-link

    Feb 2025

    Finished

    The Three-Body Problem, a good Netflix series, shows what can happen in the universe when physics are involved with large objects (planets and stars). Here, I simulate the interaction of some objects using simple Newton's equations implemented in C++. We can enable collisions and make the objects behave like bouncing balls. Super fun.

    c++

    C ++

  • Inverse Kinematics
    Inverse Kinematics
    external-link

    Dec 2024

    Finished

    This is a simple and fast project developed in one day. After being inspired by some YouTube videos, I decided to give it a try. The mathematics involved are simple—just angle operations. The results are quite good, though there is plenty of room for improvement.

    python

    Python

    pygame

    Pygame

    numpy

    NumPy

  • Auto Image to ASCII Converter
    Auto Image to ASCII Converter
    external-link

    Jan 2024

    Finished

    This project originates from the simple idea of transforming images into another format: TEXT! Using a third-party app (with proper attribution) and my UI, you can convert any video, GIF, or random image into text. Different modes are available, and you can save the outputs for later usage!

    python

    Python

  • A cigarret?
    A cigarret?
    external-link

    Mar 2025

    In progress

    Chill...

    git

    Git

    javascript

    JavaScript

    next

    Next.js

    react

    React

    tailwind

    Tailwind CSS

    typescript

    TypeScript

  • This is the website you are visiting right now! My personal, self-developed web portfolio. Here I applied all my knowledge of React and Next.js to create this page as an online CV to showcase my projects. My entire professional background is summarized here, so if you want to know more about me, just keep exploring!

    git

    Git

    javascript

    JavaScript

    next

    Next.js

    react

    React

    tailwind

    Tailwind CSS

    typescript

    TypeScript

  • Lightweight Obsidian RAG context injector for AI coding assistants (opencode, Claude Code). On every message, searches your Obsidian vault with ripgrep, scores hits by relevance, and prepends context blocks so the LLM sees relevant notes without you asking. No API keys, no network calls.

    javascript

    JavaScript

    node

    Node.js

    ai

    AI

  • Reusable reinforcement learning module built around Gymnasium environments. Based on the Hugging Face Deep RL Course. Provides plug-and-play RL components with CNN support for image-based observations. Designed to be imported into other projects.

    ai

    AI

    jupyter

    Jupyter

    numpy

    NumPy

    pandas

    Pandas

    python

    Python

    pytorch

    PyTorch

    reinforcement-learning

    Reinforcement Learning

  • Lightweight reusable Python utility package for everyday scripting: JSON file handling, colored terminal prints, visual bash separators, and dynamic status messages. Available on PyPI (pip install maikol-utils). Built with a clean, documented API.

    jupyter

    Jupyter

    python

    Python

  • Latex Template (Enhanced)

    Enhanced version of the UPV/ETSINF LaTeX thesis template with extended features. Git-ready with logical folder structure (chapters, images, bibliography). For Bachelor's (TFG) and Master's (TFM) theses. Template-instantiable from GitHub.

    latex

    LaTeX

  • Latex Template (Simplified)

    Simplified version of the UPV/ETSINF LaTeX thesis template. Git-ready, logically organized into chapters/images/bibliography folders. For Bachelor's (TFG) and Master's (TFM) theses. Includes .gitignore for clean version control.

    latex

    LaTeX

  • LaTeX CV — Personal

    My personal CV in LaTeX, available in English and Spanish. Uses a custom class (miquelcv.cls) with a clean two-column layout, skill rows, and TikZ overlays. Compiled with LuaLaTeX. Template-ready for anyone to fork and adapt.

    latex

    LaTeX

  • Robust and scalable Python project template for data science and AI/ML workflows. Pre-configured folder structure (app, data, models, notebooks), uv dependency management, editable pip install, and Jupyter kernel setup. Bilingual README (EN/ES).

    python

    Python

    jupyter

    Jupyter

  • Collection of small utility scripts: photo quality reducer, smart backup copier (recursive, date-filtered), and other misc tools. Built with Python for personal automation tasks.

    jupyter

    Jupyter

    numpy

    NumPy

    pandas

    Pandas

    python

    Python