Augmented Reality (Fall 2022)

Assignment 1: Augmenting Real Objects

As we have seen, augmented reality can be used in advertising and entertainment. For example, a 3D model of a car can be projected onto a magazine ad for the car. Or, in a children’s book with a picture of lion, the lion can “come to life” and walk around and roar, etc.

This assignment is to develop an AR application in Unity with an advertising or entertainment theme. The idea is to augment real objects with virtual objects, where the real objects relate somehow to the real objects. For example, you might have a poster for the “Lord of the Rings” movie that you augment with a virtual dragon, and the actual “Lord of the Rings” book that you augment with a virtual hobbit. If you put the hobbit close to the dragon, you should get a reaction out of them; for example, the figures could look at each other, or the dragon could spit fireballs at the hobbit, etc.

You will use the Vuforia engine to detect and track the real objects. Although Vuforia comes with pre-defined targets, such as the “Mars” images, you should create your own targets.

For the virtual objects, use 3D models that you create or import from Unity Assets store (but not the simple Unity geometric primitives like a cube or sphere). Be sure to appropriately cite where you got the models from.

Note that the main focus of this first assignment is on accurately registering virtual objects to real objects. The focus is not on user interaction, or physics simulation (we will get to that a little
later in the course).

You will use the USB webcam handed out in the class for this exercise (the camera that is incorporated in your laptop will also work, but is much less convenient to use).

Below is an example video showing tracking of two real objects (a cereal box and a placemat) with corresponding virtual objects. The virtual objects interact when they get close. This video also contains sound and an animation (the virtual bowl jumps when it gets hit).

Requirements

  • Augment at least two real objects, with virtual objects that are 3D models.
  • Track the real objects using the Vuforia engine. At a minimum, you can print out an image target that you paste onto a real object, and import that image into the Target Manager. If you do that, choose an image that relates thematically somehow to the real object (for example, you could affix an image of coffee beans to a coffee maker).
  • The virtual objects must react, or “do something” when they are close together. For example, they can move, animate, change appearance, etc.

For full credit, do at least two of the following:

  • Instead of (or in addition to) pasting image targets onto real objects, take a picture of the real object and use that for the image target. For example, you can take a picture of the cover of a book and import it into Vuforia’s Target Manager, as an image target.
  • Instead of (or in addition to) planar image targets, create and use other types of targets that the Vuforia engine can track, such as “Multi Targets”, or “Cylinder Targets”.
  • Incorporate sound that is related to the objects, and trigger it at an appropriate time. For example, you could play a “crash” sound when one of your virtual objects hits another.
  • Create an animation using Unity’s Animation controller, and trigger it an appropriate time.
  • Instead of (or in addition to) importing 3D models, develop your own 3D model using a program such as Blender, Maya, Sketchup, or Paint3D. The model must be non-trivial and be composed of multiple subparts.

Submission

  • Record a video of the output, showing the virtual objects registered to the real objects, and examples where the camera and objects are moving. Show examples of the virtual objects interacting.
  • Write a description of the application, including:
    • The architecture of your application; i.e., what are the main GameObjects and scripts, and what do the scripts do.
    • How you created the image targets.
    • How you created the virtual objects (or, where you imported them from).
    • How your application meets the requirements above.
  • Export a “package” from Unity containing all your files. To do this, in the Unity “Project” window, select all files and folders in the “Assets” folder. Go up to the Assets menu and select Export Package.
  • Submit on Canvas: (1) The video file, (2) the description, (3) the C# script files, and (4) your Unity package.

Rubric (100 pts)

  • (10 pts) Video submission
  • (10 pts) Application description
  • (10 pts) C# script files submission
  • (10 pts) Unity package submission
  • (10 pts) Real objects augmented with virtual objects
  • (10 pts) Vuforia used for tracking, image targets are thematically consistent with real objects
  • (20 pts) Virtual object interaction
  • (20 pts) At least two of the following
    • Picture of a real object used as an image target
    • Non-planar image target used
    • Sound triggers
    • Unity animation
    • Custom, non-trivial 3D mode;