2D Self Driving Car

Keras, Tensorflow, Numpy, Pygames

This project uses DeepQ learning, which is a type of trial and error deep learning method to predict optimal controls to beat a game or achieve a certain goal in a virtual environment.

Many data driven deep learning methods are limited due to the amount of required pre-labeled data that needs to be provided. Situations such as the self-driving cars often are impossible to be solved through data alone since the data on all possible ways a car can drive is massive.

Deep Q learning lifts such limitations, focusing on defining sets of rules through which the computer can explore a given problem on its own and collect data as well as learn from it with little to no human input. This is achieved through mimicking how humans learn (Reinforced learning) with how human brain works (Dense Neural Networks).

Tic Tac Toe Unbeatable AI

C++ STD

Welcome to the unbeatable tic tac toe.

This program uses an algorithm called minimax.

The computer essentially calls itself recursively and "plays" every possible move given the board arrangment. Each move is assigned a score based on the outcome and stored in a vector. After the recursion terminates the vector of moves is run through a loop to determine the best score and the index of that move is returned as the "goldenMove". This is done for every possible empty spot on the board to ensure the best overall move.

SFML Fractal Tree

C++ STD, OpenGL (backend)

This project uses SFML library (using openGL backend) to generate fractal lines through recursion that resemble a tree.

The program also allows the user to adjust key variables runtime and see changes taking place live.

Each recursive call adds more details to the tree, however the time it takes to render exponantially increases.

Search Engine

Python, HTTP, Tokenizer, Crawler

This project uses variety of python libraries to load in an html dump of ics.edu website, tokenize the words and clean up the html text.

After the cleanup, the program uses index.py to create an inverted index that loads the tokenized words into a hashtable and dumps it into a pickle file.

The Pickle file can then be loaded to be used for simple query searching.

My Take On Doubly Linked List Implementation

C++ STD

This project uses C++ standard library to create a full doubly linked list class from scartch.

The project also includes a simple program showcasing the freshly implemented doubly linked list as a shop line simulator using que and doubly linked list.

Visual Computing projects

Python, Numpy, OpenCV, Gradients

This project uses variety of python libraries to load in images and RBG values and compute bayer's demosaicing formula, morphing, merging, projection and other photo processing techniques through vectorized matrix multiplication.

All projects are done in jupiter notebook

Projects heavily utilize numpy and its extremely fast vectorized matrix multiplication to achieve fast results.