Sunday 5 February 2012

The Prototype Post Mortem

After much early experimentation with different AR SDKs it was finally decided to use QUALCOMM’s Vuforia SDK. This entry will be brief rundown of the development of the prototype.

Goals

  • Familiarize myself with the iPhone and Vuforia SDKs
  • Develop a mock up of what I expect the final output to be
  • Analyse it to work out procedures and development strategies for the main project

Development

The development of the prototype is a necessary step in the development of the final application. Whilst none of the code produced for this will be used in the final product it has been a valuable learning experience. The basic development of the prototype started by taking one of the simple development samples in the Vuforia SDK and expanding it to provide a basic version of the functionality I desire to create in the final application. In this case the initial sample showed a teapot, I removed the code that rendered the teapot and replaced with the code to render the planets. I also wrapped this code in a function so multiple planets could be spawned easily. I also developed an overlay menu. This menu was developed using interface builder, and involved handling input to manipulate the planetary data provided for the prototype. In the prototype the only data manipulated is the scale of each individual planet, and whether all the planets are displayed or not.

Issues

There are several issues with this prototype. Firstly there is no design to speak of and it whilst it uses the basic concepts of Apple’s Model View Controller (MVC) methodology, it doesn’t implement a full MVC design, especially as all of the AR tracking, planetary simulation, and rendering code are all in one View. To follow proper MVC convention the planetary simulation would be part of the model component and the tracking would have parts in both the controller and the model.

Lessons

  • Working around the sample framework allowed me to learn a lot about how the Vuforia SDK interacts with iOS
  • Taught me about the MVC design pattern and how Apples interface builder works
  • Familiarised me with OpenGL ES on the iPhone
  • Helped me get handle on how the final application should be designed
  • Helped me learn how to set AR tracking

Further Development

  • Create a rough design outline of the different components required for the final application
  • Familiarise myself with Apple’s Coremotion library to add the further features needed for the app
  • Research a method to load data from a data file on the iPhone