Course Overview

Interface Lab

Christian Grewell
interface-lab
5 min readJul 6, 2020

--

Photo by Lynda Sanchez on Unsplash

Course Description

This production course will survey alternative interfaces with an emphasis towards embodied interactions. Incorporating aspects of physical and tangible computing, students will be exposed to the internal machinations of systems, networks and sensors that underlie these interfaces. Areas covered include microcontrollers, connected devices, computer vision, virtual reality and augmented reality amongst others.

Course Objectives

At the completion of this course students will be able to demonstrate basic understanding of:

  • Design concepts that incorporate software and hardware elements in interfaces
  • Unity 2D and 3D scene design and asset management
  • C# scripting to connect variables among different objects
  • Physical computing elements such as sensors and actuators
  • Arduino basic syntax to manipulate variables
  • Communication concepts
  • Electrical diagrams to connect components in a breadboard

Course Outline

Week 1: The Basics

Prereqs:

  • Download and join the [Discord] and say hello.
  • Download and Install Unity Hub and the latest release of Unity (2019.4 as of the date of writing).
  • Download and install the latest release of Arduino IDE (Link).
  • Get familiar with IOT nano 33 (Link).

Self-Paced Activities:

  • Unity Tutorial Series [videos]: The Very Basics.
  • Arduino Tutorial Series: Building a circuit.
  • Arduino Tutorial Series: Blinking an LED.

Live Session:

  • ‘Game’ Engines as the Future of Interactive Media Interfaces.
  • Imagine: A Digital Interface to Future Things.
  • Hello PComp & Paper Prototyping.

Readings & Videos [optional]:

Project: Virtual Sculpture

Using the freeform example in the video as a guide, create a virtual sculpture — you can choose to have the sculpture dynamic (e.g., when pressing play things happen) or static. Make use of at least 2 different primitive 3D shapes, 2 materials and 2 lights.

Take a screenshot of your scene, or if you have a dynamic scene, record a video (using OBS or Quicktime) and upload it to the class Discord.

Project: A Physical Interface

Using basic prototyping tools, including the Arduino board, build a physical device that is a representation of the imaginary interface we designed in class. The interface should have LEDs, potentiometers, and push-buttons. Don’t worry about making it actually function! Instead, focus on the affordances that the interface provides. Record and upload a short video to the class Discord demonstrating your creation by the next live session.

Week 2: Sensing and Interaction

Self-Paced Activities:

  • Unity Tutorial Series [videos]: Input and Scripting
  • Arduino Tutorial Series: Sensors, Variables & Conditionals
  • Arduino Tutorial Series: Connecting to Unity

Live Session:

  • Demo: Future Interfaces
  • Serial Communication in Unity: Ardity
  • Unity + Arduino Mashups

Readings & Videos [optional]:

Project: One Button Interface

Using the work of Week 1 as a source of inspiration, connect a button to an Arduino as the sole input you have to control one or more object(s) in your scene (this can be a shape, a light, a material). Your goal can be as simple as changing the position of a 3D shape, or as complex as changing the sky from day to night. What’s important is that you are able to receive input from the physical world (Arduino) and do something with that in the virtual world (Unity)

Think about creative ways to respond to different ways the button can be used (pressed, released, held, etc…) as well as what constitutes a button!

Week 3: Feedback

Self-Paced Activities:

  • Unity Tutorial Series [videos]: A simple game
  • Arduino Tutorial Series: Working with many sensors

Live Session:

  • Let’s play: One Button Interfaces
  • Sensor fusion from Arduino to Unity

Readings:

Project: Timely feedback

Build upon the simple game we created in the video series, only this time, incorporate feedback to let the player know something has happened. This should be non-screen-based feedback using one or more LEDs. For example, you might want to light up a red LED if the player hits a wall, or perhaps you want to blink the LED each time the player hits a brick. You can also incorporate other sensors if you’d like!

Week 4: Audio and More Feedback

Self-Paced Activities:

  • Unity Tutorial Series [videos]: Audio
  • Arduino Tutorial Series: Working with Servos
  • Arduino-Unity Tutorial Series: Bidirectional Communication

Live Session:

  • Let’s play: Timely Feedback
  • Working with Servos
  • Introduction to Actuators

Readings & Videos [optional]:

Project: Mixed Reality or the Virtual-Physical Continuum

In this week’s project, you’ll be challenged to incorporate the servo motor as an additional feedback device for the player. For example, you might design and build a small cardboard box, which opens whenever the player hits a special brick, or perhaps a fan that speeds up as the player hits more bricks. The goal is for you to exercise your imagination and discover more of the potential to marry real and digital feedback.

Week 5: Optimization

Self-Paced Activities:

  • Unity Tutorial Series [videos]: Rendering and Making it Look Awesome
  • Arduino Tutorial Series: Optimizing execution times

Readings & Videos [optional]:

Live Session:

  • Imagine: Digital Physical Wonderland

Project: Digital Physical Wonderland

For your final project, you have two options:

  1. Return to your digital sculpture that you created in the first two weeks, and, using the video tutorial as a guide, upgrade your project to incorporate more rendering concepts. Include at least one input from the Arduino.
  2. Use the new rendering concepts from this week to continue with your game. Add an additional feedback loop for the player that incorporates an additional sensor. This sensor should control some aspect of the game experience for the player, making it easier or harder to accomplish the goal of breaking a brick. For example, you might choose to have the light sensor underneath the buttons that move the paddle control and when covered the game world becomes dark.

--

--

Christian Grewell
interface-lab

Hi! My name is Christian Grewell, I grew up in Portland, Oregon playing music, programming video games, building computers and drinking coffee. I live in China.