BlockIt!

A Networked AR Application for the Creation and Sharing of Low-Poly 3D Models
GitHub | Link to Week by Week Documentation | Link to Final Essay

Interactive Media Capstone Project

The Application

BlockIt! is a mobile game that prompts users to create a 3D model of a given noun using simple shapes while whoever they are playing with must guess what they are creating. Once a user creates this 3D model, a marker is dropped at the user’s current longitude and latitude position onto an in-game map. Other users of the application can travel to this location, tap on the marker, view the model that the user created and guess what this object is. The capstone sits between being a case study in effective interaction design for mobile experiences and a project that explores user agency and their ability to create with the tools and affordances provided to them through the application. The application uses augmented reality as a tool for designing, exploring the potential for the technology to be used effectively for 3D design. Augmented reality allows users to determine their position (through the camera) relative to features in their environment. This lets users avoid navigating a 3D navigation interface on their 2-dimensional phone screen, where the axes and depth can be difficult to approximate and understand. Interaction design principles that people are accustomed to on their phones (scrolling, pinching, etc.), are difficult to apply to the manipulation of a 3D space.

Apart from exploring the most practical aspects of augmented reality and interactions with our smartphones, BlockIt! aims to create an engaging playing experience through the sharing of 3D models. The application provides certain affordances through the inherit design of the creation tools, restricting the user to only creating with cubes. While this certainly restricts the style of creations, giving creations a low-poly style, this distinct style also provides an effective aesthetic frameworks for users to create within. In this sense, the project also aims to make this creation process easier for the average user.

Chicken

Fox

Dolphin

The Technology

This application was built using Unity and ARFoundation for iOS. AR Foundation is a Unity package for the development of AR experiences on different platforms. ARFoundation interfaces with Apple's SDK for augmented reality development (ARKit) and this is built for my iPhone using Xcode. Apart from this, I used Mapbox’s SDK for Unity development. This gave me easy access to an out of the box example of a map with a marker that updated according to the current longitude and latitude coordinates of the user. Registering for a Mapbox API key also provided me with the tools to create my own designs for the map, which I used to change the map color to a light-blue. In terms of server-side development, the back-end of this application consists of PHP scripts interacting with a MySQL database. Unity’s WWW module calls PHP scripts which then update data in the database or pull data for use in the application.

Background

This capstone project was inspired by a few of my favorite games, either for their creativity or their innovative contribution to how games are played. Namely, this project was inspired by Scribblenauts (Nintendo DS, 2008), a game that invited users to create based on a user's understanding of the currently rendered game environment. In Scribblenauts, what users decide to create is determined by their personal understanding of various objects and how their functions might impact the generated environment. Similarly, through BlockIt!'s creation tools, BlockIt! users utilize their personal understanding of an object and attempt to communicate this object through simple shapes rather than through words.

LittleBigPlanet (PS3, 2008) inspired BlockIt! with its distinct aesthetics and how that lent itself to both creativity and inclusivity. The puzzle game allowed players to share their designs for characters, levels and objects with anyone over the Playstation Network, creating an environment that inspired creativity. LittleBigPlanet balances customizability while not overwhelming the user with choices.My capstone project also aims to allow users to freely create and share their designs, regardless of how “successfully” they might have followed the object they are prompted to create. This concept of play as a tool for the larger goal of self-expression and creation is something that I want my capstone project to explore as I want users to share their creations with all users.

Finally, a discussion of augmented reality and location-based games would not be complete without Pokémon GO, a game that revolutionized movement as a core component of gaming through its in-game map. BlockIt! takes heavy inspiration from Pokémon GO, as it aims to encourage users to interact with other users as well as with their environment, using both the digital and physical world to create an engaging social experience. The intention is for certain locations in BlockIt! to become hubs for creating and guessing markers, similar to how locations are known in Pokémon GO for hosting gyms, raids and trading.

The Process

For a more thorough overview of my process and prototyping please see my weekly blog posts here

Though my intention for this project has always been an augmented reality application, I did experiment with the potential for modelling within a rendered 3D environment using a pannable and zoomable camera and a plane to place objects on. This iteration of the application was entirely virtual and had no AR features.

I also iterated over features of the creation features of BlockIt!. I initially had resize and move features. The resize feature allowed users to make cubes they had placed bigger or smaller by pinching the screen and the move feature allowed the user to move previously placed objects. The resizing functionality posed an issue to the stacking features that the application uses. If the user resized a cube to make it bigger or smaller, how would the position and size of cubes stacked on to it behave? This was difficult to address and it also warped the grid that the objects were placed onto. The move function also eliminated the effectiveness of the grid system. I also had other shapes included during first iterations of the project. It included cylinders, planes and spheres. The plane and the cylinders were very difficult to manipulate and create with effectively. Though I initially believed the spheres would be an interesting addition, due to spherical/circular objects being prevalent in real-life, the geometry of the sphere was difficult to work with. All of these shapes altered the grid for the cubes that I designed and implemented.

From these experiments, I decided to simplify the functionality of the create process. This prevented the user from getting overwhelmed while also preserving some fundamental aspects of the application that I believe maximize its effectiveness as a modelling tool.

Early iteration of the map

Iteration of the modelling tools

Entirely digital version of the application