About the Author

Michael is a Senior UX Engineer at Google with eight years of employment developing iOS applications, data explorers, interactive installations, and games, and he has over twenty years of experience helping launch new products with venture-backed startups and companies like Google, Samsung, and Apple.

Toy Photo Gallery Walkthrough

The ToyPhotoGallery code base is an example of native iOS development techniques that satisfy common needs among cloud-backed and resource-heavy user experiences. The application fetches a manifest of resource locations from Parse; retrieves thumbnail and optimized preview image assets from an S3 bucket; presents the thumbnails in a fluidly scrolling, auto-refreshing collection view; and animates into a child view controller designed to scroll across gesture-backed transformations of high-fidelity preview images.

Eliminating Collection View Tearing with Xcode's Time Profiler Instrument

TL;DR: Using the Time Profiler to refactor collection view cell model image fetching and pull Parse’s return call off the main thread enables smooth scrolling.

Delivering Interactive Graphics Wirelessly to an LED Matrix

Driving interactive graphics from the framebuffer of a mobile device to a matrix of LEDs has involved optimizing steps in the pipeline on a case-by-case basis rather than trying to get it all to work at the same time.

Iterating the Design of a Volumetric Display

Eric Mika and I started in on a project to make a cylidrical volumetric display using off the shelf hardware like a drill and a long steel rod from Home Depot. The project evolved into iterations designed around first transferring LED data through a slip ring, then trying to minimize the harmonic vibration in the rig by changing the size and the shape of the display, and recently, increasing the density of the lights along with networking drivers together.

Generating Interactive Particle Systems in OpenCV and SpriteKit

This project is a proof of concept for capturing infrared video from a homebrew camera, sending the frames through OpenCV to generate keypoints and contours, and then forwarding that data into SpriteKit as the source vector for particle systems and other visual highlights. The video analysis and particles are processed in real-time on device.

Detecting Gestures from the Motion of the Body in Relation to Itself

Measuring the motion of a skeleton’s joints in relation to each other generates signals that might be recognized as gestures.

Experimenting with Data Explorers

Interactive data explorers can help refine questions for better collection and suggest new areas of inquiry. Data explorers often attempt to filter sets of data to reveal patterns in expected behaviorn described by an axis. For example, user experience patterns can be uncovered by installing behavior tracking in mobile applications. Data explorers can also incorporate predictions modeled from proprietary data sources. No matter what the source of the data might be, carefully defining the graph’s dimensions and filtering mechanisms can help reveal interesting patterns hidden inside a complex tracking system.

©2018 - 2022, Michael Edgcumbe