Portfolio

Sudoku Master

Here I demonstrate my Sudoku Master. A program that can create and give Sudoku problems to the user at varying difficulties as well as solve any puzzle given to it in seconds. It can also find all possible solutions to a Sudoku problem (in the realm of hundreds) in just a few seconds. Look at the end of the video to see a demonstration of this feat. Created in C++.

https://github.com/Koratun/SudokuMaster

Factory Optimizer

This project was created as an aide to myself in engineering games that I play such as Satisfactory (whose item and building assets are depicted on the left). This is intended to replace the whiteboard I was using to toy with recipe alternatives and to keep track of exactly how much of each part I needed, and it just looks much more appealing than black and white. It has been extremely helpful to me!

Created in Flutter and Dart.

https://github.com/Koratun/factory_optimizer

pyARB

I created a localization library for python that uses the .arb file format adopted by Flutter. It generates a python code equivalent of the .arb file you give it so you can use the localizations directly in your code and with documentation so you can know exactly what variables you need to pass and what the text will actually display.

This library is under the MIT license and can be found at https://github.com/Koratun/pyARB and on PyPI: https://pypi.org/project/pyARB/ 

Drone Sight

This project was two-fold. I wanted to take a series of images captured from drone movement and then feed those images into an AI that would predict how far the drone had moved between two images taken right after each other. So first I created a simulated drone in Unity and had it fly around randomly and take pictures as it moved. Then I fed those images into my AI which used deep learning to learn the distances that the drone had moved. It uses a couple of convolutional layers in a submodel that it uses to analyze both images, then it combines the data of the two images and tries to learn what differences in the two images constitute what movement in what direction.

This AI could then be loaded into a server that could communicate with a drone and tell its relative position to where it booted up as it fed the server what it could see.

Created in Unity, C#, and Python.

https://github.com/Koratun/Deep-Sight - AI Code

https://github.com/Koratun/Drone-Simulator - Simulator Code

After just a few epochs you can see on the left how quickly the loss descends to around 0.98.  On the right, you can see an example of the data that was fed into the AI.

CIFAR GAN

This project was a little bit ambitious for my computer. I decided to make a Generative Adversarial Network using the CIFAR10 dataset as the input data. A GAN is designed with two inner AIs that compete against each other. The Discriminator's job is to determine if the image it is seeing is real or generated, and the Generator's job is to produce images that fool the Discriminator. Over time the two will improve each other as the discriminator learns what things make an image real and the generator learns what things to create to imitate a real image.

After the long process of learning how to do all of this I finally had a working model! So I started training it with my NVIDIA 2060 Super, a GPU that allows the AI to learn far faster than by just using the CPU. However, even with this moderately advanced GPU, the model proved to be too complex to train with any good speed. I ran the training for 2 straight days and it barely began learning how to make differently shaped color blobs as depicted on the left.

However, if you look closely, each column does have similar shapes that are distinct from the other columns showing that the AI was at least learning that the 10 objects were shaped differently. 

Created in Python.

https://github.com/Koratun/metacognition_artificial_intelligence/tree/master/playground_ai - Specifically the generative_adversarial_network.py and gan_display.py files