Final Project Pitch

Objective

Create an experience using the Unity Engine and an external API or piece of Hardware. Ideally, that API is in the world of immersive technology. VR, AR, Holographic Display, or a 3D experience. You can pitch an idea for any platform, any API, any hardware, that is supported by Unity3D. I reserve the right to veto any idea.

You can work individually or in groups of 2. Group projects scope will be scaled up appropriately. This lets us have multiple students work with the same API without simply doing the same thing.

The projects should not be very large in scope – about 1 week of work. We are going to spend a disproportionate amount of time researching, designing, architecting, and polishing the code for the projects. So “simple” ideas are strong ones.

I will be working with each student (or group) to help set fair and educational project and outcome objectives on a per-project basis. Per-project objectives will be discussed publicly, and all students can see how all others will be graded.

In a big-picture sense, our objective is to work with and learn how to use other developer’s code. Not just my example projects or the built in Unity tools, but to research [often baffling, arbitrary, or opaque] decisions that hardware and software developers have used and figure out how to integrate it. This process of research and implementation will be common for us as interaction developers. Many who work in this field consider themselves more “hackers” than “developers”, and this project is about learning how to work with that mentality.

Pitches Submission

Come to class with your top 3 ideas. We will vote on projects, veto projects, remove and re-vote, perhaps form groups, and decide what we will do during class. You can change your idea of something somebody else pitched if that sounds interesting.

First, we will go through and veto projects that I believe are technically infeasible, out of scope, don’t hit our learning objectives, or are otherwise inappropriate.

We will go through and discuss projects until we have a short list of possibilities. This first culling step is independent of “what project do you want to work on” and more about the ideas in general. You should leave class ready to get working.

Grading

This, the pitch, is graded in class.

Purpose

An API stands for “Application Programming Interface”. We’ve talked about interfaces as a concept in programming architecture. API’s are bigger picture, often encompassing entire services, hardware, applications and so on.

You will also see the term “SDK”. SDK stands for Software Development Kit, and it is all of the things that you need to create software for a particular platform. The SDK might be a unity package full of scripts we put in our project in order to use an API.

Other related terms include “Library” or “Framework” which, broadly, all involve pre-existing code that is made to be used in other projects (library) or used as a starting point or system for other projects (framework). There’s a lot of overlap.

The purpose of the final project is to get experience working with external code libraries and projects, such as the API’s created by hardware manufacturers like Microsoft, Oculus, Magic Leap, Leap Motion, and so on.

A lot of the work we will do in the immersive media space is less about programming systems from scratch, and more about research, hacking, mushing, and smashing various API’s together to make-a-thing-do-a-thing. We need experience working with API’s and we need practice working with unknowns.

There some broad categories to API’s. Some allow interfacing with hardware, others simply provide data. Obviously, I am more interested in working with unique or immersive hardware – in other words “programming for immersive experiences”. That said, with a good pitch, I am open minded to the tools we use.

Getting Started

Note: This section has not been updated in a few years. API’s and Hardware have changed. I’ll discuss new tools during class.

Previous Projects: A Relaxing VR environment that streamed live radio into Unity, A relaxing VR environment that updated the surroundings to match local weather data, and a multiplayer meme museum. See other documents, dig into your notes, and start writing down ideas. This might be a good time to try a “49 bad ideas” exercise, where you write down 50 ideas without hitting the backspace key on your keyboard once. Some immersive technology supported by Unity3D

Previous student projects: