Home About Skills Projects Blog

I am Robert Bain, a Web Developer in the beautiful Eugene, Oregon.

Hi! My name is Robert Bain. I am currently a full-stack web developer. At my foundation I am a scientist, educator, and humanist.
A picture of an average looking caucasian male
At my foundation I am a scientist, educator, and humanist.
Read more about me on my

Personal Projects:

(View the code on my GitHub)

I trained several TensorFlow models to play Tetris using OpenAI Baseline's A2C implementation. They trained at over 4,000 FPS using a 980ti graphics card.

The first video of the playlist is of my best model. It can score a lot of perfect 4 line clears, but it generalizes poorly. The second video shows this model playing 18 games at once. The last video is of another model that does not score as many points per move, but generalizes very well. It frequently clears over 200 lines a game. Everything is controlled by a Raspberry Pi.

Video shot and edited by William H, a great friend and teacher.

This Deep Neural Network TF model plays snake on an LED matrix. It could only ever be as good as the python script which generated its training data. People can play on the led too using a keyboard. The current high score is held by the AI though. I trained a better model using the evolutionary machine learning algorithm "NeuroEvolution of Augmenting Topologies" (NEAT), but it so no where near as entertaining to watch.

128x32 LED matrix driven by a Raspberry pi. Both are powered by a 5V switching power supply. There are about 20 different rendering modes including: a digital spectrum analyzer using GPU Accelerated FFT, wireframe rendering engine using C++ Eigen library, and Conway's Game of Life.

Alignment Ventures, LLC's CEO created their original webpage using GoDaddy. This did not produce any usable source files, so I recreated the site from scratch while at the same time greatly improving performance, design, and accessibility. Developed using jQuery, Sass, Bootstrap 4, HTML5, CSS3, PHP, and Apache 2.4. From this project I learned how to obtain an SSL certificate, and how to send emails from a web app using PHP scripts and AJAX. View the site here.

I built this in-browser version of the popular Magic the Gathering card game utilizing Node.js, Socket.io, Express, and jQuery. The application requires a mouse, keyboard, and a minimum resolution of 900x500 to play. It will be integrated into my social media website to track user statistics. The server uses NASAs APOD API to provide random background images for the game to be played on. A description is produced for each NASA background image. Start a game by opening two demo tabs and choosing the decks.

The in-browser Magic the Gathering game originally had hard coded decks. I eventually made them modular JSON files, and created a 20,000 card MySQL database with which decks could be made and modified. This deck builder and the Magic game were recently refactored and moved behind an apache reverse proxy server. The builder web app looks great on a phone, but needs a restyling for larger devices. Build your own deck here!

PhysicsJS is an open source, modular, Object-Oriented JavaScript physics engine that I used to make an HTML5 game based off of the 1992 computer game JezzBall. I learned PhysicsJS by reading its online API documentation. This game was developed using mobile first design principles, OOP JavaScript, jQuery, Sass, Illustrator, HTML5, and CSS3. Left mouse click or swipe on mobile to change direction. Can you beat all 5 levels? Click here and find out!

The top of a blog post from 'Robert Bain's Django Blog.'

I made this blog in order to learn Django and to become more familiar with MVC frameworks. I am most proud of the responsive images. They retain their beauty at all screen sizes, and keep the page weight to a minimum. One difficulty I encountered was installing a WYSIWYG editor package. The editor made it so I could more easily include images in my blog posts. I wrote 2 great posts about Nuclear Fusion and the Magellanic Clouds. Go read them by clicking the thumbnail!

A picture of the logged-in landing page for MTG Training Guild

MTG Training Guild is a light social media site and a recursive abbreviation (like GNU). This will become the front-end for my Magic the Gathering in-browser card game. This application utilizes HTML5, CSS3, Bootstrap, MySQL, PHP, AJAX, and JavaScript. Wonderful example of mobile-first design. Click the thumbnail to be one of the first to sign up!

Here is a link to a dreamwidth page I made for my partner.

Read more about these and other projects on my
Technologies I Use: