|
My main interests are in the fields of game design and artificial intelligence, but my course work in UC Santa Cruz's Computer Science program has given me a broad foundation focused on software methodology and the principles of object oriented programming suitable for working with any number of diverse technologies. For the past year, I have been putting those skills to practice in a startup environment at Yodlr, a company I co-founded, which has been using cutting edge web technologies to create a real time collaboration tool.
Here are some examples of projects to which I've contributed.
A real time collaboration tool which syntheseizes WebRTC with several web-based APIs to create a dynamic user experience for distributed teams, webinars, or any kind of streaming event.
As one of only 3 core developers, I had to be broadly familiar with all aspects of the application - it's server-side architecture and dependent technology (Redis and Mongo databases, Docker virtual machines running in CoreOS, all hosted on Rackspace cloud machines) as well as the client side app (AngularJS and Bootstrap).
My senior capstone project for the UCSC Game Design program. Developed with a team of 8 using the Airplay SDK for iOS and Android.
The thought experiment of Schrödinger's Cat states that given a hypothetical cat trapped in a box filled with poisonous gas,as long as his state is hidden from the observer, at the quanutm level, the cat is functionally alive and dead at the same time. The game puts you in the shoes of the owner of an unfortunate cat involved in a real life experiment to prove the thesis, with the goal of breaking the cat out of his quantum prison. We imagine the iPhone screen as a window into the box, which naturally contains a traditional puzzle platforming world, and the only way of interacting with the cat is by projecting a laser pointer into the box -- by putting a finger on the screen. The Cat, being a cat, will follow the laser pointer and try to play with it, but will also be distracted by other fun toys in the box, such as mice, scratching posts, and cat food. Further, being Schrödinger's Cat, he is alive and dead at the same time, so as he witlessly throws himself into the various deadly traps strewn throughout the world, such as buzzsaws, swinging scythes, and spike traps, his still bleeding carcass can be used to solve the puzzles that structure the level. He simply emerges fresh at the start of the level every time he dies.
In addition to serving as team lead on this project and providing music and sound, I co-wrote the original UML for the software design, and was the sole author of the algorithm for the Cat's AI model:
Of the objects within his visual range, the Cat eveluates his interest in them based on how far away they are, how fast they're moving, and how long he's already played with them. Once he's decided on a goal object, he passes its location to a traditional search algorithm to find a path to it.
Read my post-mortem for the game here.
Final for a computer graphics class. Developed on a team of 3 using OpenGL.
This is an adaptation of Cube-it by Casper Smith. Players navigate through self destructive mazes, attempting to remove all but the permanent tiles. In addition to serving as team lead on this project, I authored the custom deformation algorithm seen when a tile is destroyed.
Final for an artificial intelligence class. Developed on a team of 4 using NLTK, a natural language processing toollkit for Python. This project was an interactive chatbot who could read a local version of the the D&D system reference document, and vend items from the Equipment and Special Materials table to the user, while occasionally interjecting bits of local legend and lore.
Final for a web application class. Developed on a team of 3 using PHP in CodeIgniter and interfacing with the Flickr API.
Based on the idea of a "Pandora for pictures," this application would dynamically suggest pictures from public domain images hosted on Flickr for the user to browse, based on their past history of approved photos. The user could decide whether to generate these results based on tags, or based on other users' approval history.
I am the sole author and webmaster of my bands' websites, which are both based on the same application written in PHP and HTML 5, featuring MySQL database driven blog posting, image hosting, and event scheduling, as well as an asynchronous JavaScript front end using JQuery.
I am the sole author and webmaster of this site, which uses basic PHP, HTML 5 and CSS3, as well as JavaScript for displaying larger images from thumbnails.