2025

CraveAI (Prototype)

CraveAI

CraveAI is a project that leverages machine learning to provide personalized restaurant recommendations. By analyzing user's location and preferences, it suggests relevant dishes and restaurants.

Motivation and outcome: The goal was to create a system that understands user interests deeply and curates content accordingly, making it easier for users to discover new and engaging places to eat.

MAL Anime Score Predictions

MAL Anime Score Predictions

This project pairs a data pipeline and model stack written in Python with a small React front end. The backend pulls and cleans MyAnimeList data, turns synopses into TF‑IDF vectors (with dimensionality control) and combines those with engineered metadata features; models are trained in scikit‑learn and with XGBoost/LightGBM and served through a FastAPI endpoint on Uvicorn. The frontend (Vite + React + Tailwind) shows an anime card grid with cover art, MAL IDs, color‑coded score badges, and a CSV export for further analysis.

Motivation and outcome: as an anime fan I built this to improve my chances in MAL’s seasonal score prediction competitions — the project focused on practical gains (robust preprocessing, leakage‑safe validation, and repeatable experiments) rather than academic novelty.

Approach and reasoning: I found that combining textual signals from TF‑IDF (reduced to control dimensionality) with structured features like genre, popularity, and airing metadata produced the most reliable signals. To get realistic performance estimates I used time‑aware / leakage‑safe splits, extensive error analysis, and K‑fold cross validation with early stopping during hyperparameter searches.

Effort and iterations: the work took several weeks and dozens of hours of training and tuning — many experiments were short runs to validate feature ideas, while final models required longer training and careful hyperparameter sweeps. I used feature‑importance and targeted error analysis to guide each iteration and selected the final model by RMSE/MAE on held‑out data.

MAL Anime Score Predictions

MAL Anime Score Predictions

This project pairs a data pipeline and model stack written in Python with a small React front end. The backend pulls and cleans MyAnimeList data, turns synopses into TF‑IDF vectors (with dimensionality control) and combines those with engineered metadata features; models are trained in scikit‑learn and with XGBoost/LightGBM and served through a FastAPI endpoint on Uvicorn. The frontend (Vite + React + Tailwind) shows an anime card grid with cover art, MAL IDs, color‑coded score badges, and a CSV export for further analysis.

Motivation and outcome: as an anime fan I built this to improve my chances in MAL’s seasonal score prediction competitions — the project focused on practical gains (robust preprocessing, leakage‑safe validation, and repeatable experiments) rather than academic novelty.

Approach and reasoning: I found that combining textual signals from TF‑IDF (reduced to control dimensionality) with structured features like genre, popularity, and airing metadata produced the most reliable signals. To get realistic performance estimates I used time‑aware / leakage‑safe splits, extensive error analysis, and K‑fold cross validation with early stopping during hyperparameter searches.

Effort and iterations: the work took several weeks and dozens of hours of training and tuning — many experiments were short runs to validate feature ideas, while final models required longer training and careful hyperparameter sweeps. I used feature‑importance and targeted error analysis to guide each iteration and selected the final model by RMSE/MAE on held‑out data.

XY-Ball-Fight

XY Ball Fight

A small browser-based 2D "ball fight" game built with plain HTML, CSS and JavaScript. This project demonstrates a simple game loop, basic physics, AI opponents, weapons, and an on-screen UI.

  • Lightweight vanilla JavaScript implementation
  • Simple physics-based movement and collisions (see engine/physics.js)
  • AI opponents (see engine/ai.js)
  • Modular engine files: game loop, weapons, UI, physics
  • Easy to run locally — no build step required

Portfolio Website

Portfolio Website

My personal portfolio site built with plain HTML, CSS and JavaScript—showcasing my bio, projects, and resume link.

Chess-Bot

Chess Bot

A Python implementation of a chess-playing agent using minimax with alpha-beta pruning and heuristics for board evaluation. (WIP)

Evodle

Evodle Game

An idle‐clicker browser game powered by evolutionary algorithms—watch your creatures evolve and unlock new upgrades. (WIP)

2024

NLP Analysis Tool

NLP Tool

A Python package leveraging NLTK & SpaCy to perform text classification, keyword extraction, and sentiment analysis on unstructured data. (WIP)

VanklCommApp

VanklCommApp Screenshot

A communication platform built with React Native and Firebase—features real-time chat, group channels, and file sharing.

2023

Fitness-Run-Application-ACMERun

ACMERun App

An Android app that tracks your runs, displays pace/heart-rate graphs, and syncs with Google Fit using Kotlin and Jetpack Compose.

Island Generator

Island Generator

A procedurally generated island terrain tool implemented in Java using Perlin noise and Voronoi-based erosion simulation.

Mesh Terrain Generator

Mesh Terrain Generator

A Java library for generating 3D mesh terrains from heightmaps, complete with UV mapping and customizable shader support.

Piraten-Karpen

Piraten-Karpen Game

A Unity-based 2D pirate adventure game featuring procedurally generated maps, inventory management, and NES-style pixel art.