Over the course of a semester spent in Budapest, Hungary, I created many Android apps, some C++ programs, and a C# app. First up are some of the more interesting Android apps.

AIT App

AIT app main screen
AIT app Hungarian phrases screen

This app is aimed at students at AIT Budapest, a small program for computer science students in Hungary.

Its functionality includes playing Hungarian phrases, viewing professors, viewing important places on a map, chatting, viewing the school in virtual reality, and quickly seeing emergency contacts.

Minesweeper

Minesweeper app board

This minesweeper app uses a breadth-first search to figure out if you've hit a mine. It also features flag placing and colored numbers.

The app ended up entertaining me for quite a while, although it's not so fun to immediately die on your first turn. That's why real Minesweeper will go out of its way to move any mine out from under your mouse on your first try.

Weather App

Weather app location list
Weather app map view

Using an open weather API, this app allows you to fuzzy-search for a location and retrieve the current weather conditions.

It was somewhat challenging using the Google Maps API in this demo, as it involved Android fragments within fragments. I figured it out soon enough!

Todo App

Stuff is a simple todo app.

Key features include the recycler view for quick scrolling, as well as the ability to edit and check off todos. Todos can also be classified within a few different categories.

I especially enjoyed making a startup animation, but was frustrated by the lack of a pre-made solution for a recycler view empty state. You end up doing the same custom logic every time, although I hear this feature is in the works.

Todo app task list

Curve Creator

Curve editor showing a spline being drawn

This C++ program is a curve editor. It supports Lagrange curves, Bézier curves, and Catmull-Rom splines.

Also included is pixel-perfect curve selection, as well as easy selection of control points.

Flight!

Fly through the clouds and fight a giant tiger in this award-winning AAA title!

This program uses OpenGL to render a few low-poly models. The floor texture is constantly changed to give the illusion of motion, while the clouds and trees infinitely spawn from an object pool.

Download the video if it isn't playing.

Raytracer

Raytraced chess pieces

This image was generated by a raytracer specialized in creating chess pieces.

The source image is four times as large; it was downscaled for antialiasing purposes.

Output of a raytracer written in Rust

As a way of learning Rust, I ported the raytracer in Peter Shirley's book Raytracing In One Weekend.

Unfortunately graph structures are rather difficult in Rust, so the octrees will need to wait until I gain more experience.

Bonus: realtime raytracer in GLSL.

Not very useful in the realworld, but it runs at 60FPS!

Realtime GLSL raytracer running in a browser

Street Mapper

Street map of Rochester NY with a plotted path

This java app maps the streets of Rochester NY, allowing you to plot the shortest path between any two points.

It's multithreaded so the UI doesn't slow down, and features a minimum spanning tree.

Crypto Storage

This group project allows a user to encrypt & upload a file to a remote Azure server.

This means a hosting company has no idea what is contained within the file. Check out Tresorit for the real deal.

Crypto Storage application screenshot

Othello AI

Othello, also known as Reversi, is a game of piece-taking played by two people. I don't possess video of our AI playing, but trust me, it was quite entertaining. The AI played against a few other programs in a contest where timing mattered. This means the AI had to search as far as possible into the future in as little time as possible, relying on fast heuristics. Surprisingly, many human tactics are extremely suboptimal.

Our AI used the negamax algorithm. One group member implemented bitboards, a feature which describes the state of the game in one 64 bit integer. This allows for the storage of millions of more states than usual.

The result? An unstoppable (by us, at least!) computer.