Projects

A collection of my notable projects in AI, reinforcement learning, and open source development.

ViZDoom

Research

Cited in thousands of papers, ViZDoom allows developing AI that play Doom using only visual info. Intended for research in Computer Vision & Reinforcement Learning. I built automated pipeline for Python binding's type-hinting support, in-engine object categorization (Semantic Segmentation) and improved / fixed various stuffs like seeding behavior, building process (GitHub Action & CMake), documentation & examples, etc.

RL CV Python C++ CMake Doom

sb3-extra-buffers

Open Source

Created sb3-extra-buffers, a library that adds compressed rollout/replay buffers to Stable Baselines3. Reducing memory usage drastically with minimal overhead via vectorized implementation of lossless compression algorithms. Experiments conducted with Atari games show > 90% memory save with negligible latency. This project is featured in Stable Baselines3's documentation.

Memory Optimization Python PyTorch NumPy

SegDoom

Research

MSc thesis: Training Reinforcement Learning agents on Doom with Semantic Segmentation. This project uses novel heatmap analysis methods and iteratively trained two generation of RL agents by creating the Semantic Segmentation dataset with the best explorer agent statistically. Investigated the different charateristics of each input type (RGB, SS, SS+RGB).

RL Semantic Segmentation Python Doom

Stable Baselines3

Research

Stable Baselines3 (SB3) is a set of reliable implementations of Reinforcement Learning algorithms in PyTorch. It is the next major version of Stable Baselines. One of the most popular Reinforcement Learning frameworks. I discovered & merged a fix for rollout buffers, reduced memory usage a lot in certain cases.

RL CV Python PyTorch Gym Atari

gutenberg-updated

Open Source

Maintained a Windows-friendly fork of the Standardized Project Gutenberg Corpus (SPGC) generation pipeline. Fixed numerous bugs including UTF-8 decoding errors, missing NLTK downloads, and bookshelves information fetching issues. Added parallelized text processing, Windows support with cwRsync, and additional customization options for corpus generation.

NLP Python Data Processing NLTK Corpus