🌐

AR Development Course Overview

Jun 17, 2025

Overview

This course introduces augmented reality (AR) from theory to hands-on development, covering fundamentals, Unity, C#, marker-based AR, and practical projects, including filter creation and Spark AR.

Course Introduction & Syllabus

  • Course covers theoretical and practical aspects of AR for beginners.
  • Learn AR, virtual reality (VR), mixed reality (MR), and the mixed reality continuum.
  • Introduction to Unity3D game engine and C# for AR development.
  • In-depth study and development of marker-based AR applications using Unity and Viewforia SDK.
  • Projects include AR card customizer, AR business card, and AR encyclopedia.
  • Bonus modules cover Instagram/Facebook AR filters and 3D AR filters.

Extended Reality (XR) Concepts

  • Extended Reality (XR) includes AR, VR, and MR.
  • AR places digital objects into the real world (e.g., Pokémon Go).
  • Marker-based AR requires a visual marker for tracking digital objects.
  • Markerless AR uses algorithms (e.g., SLAM) to place objects without markers.
  • Other AR types: superimposition (overlaying information), location-based, projection-based (holograms), and outlining AR (used in navigation/vehicles).
  • VR immerses users in a virtual environment via head-mounted displays (HMD).
  • MR blends real and virtual worlds, enabling interaction between physical and digital objects.

XR Market and Growth

  • XR market projected to reach $393 billion by 2025, growing rapidly since 2017.

Unity Basics

  • Unity is a cross-platform game engine for AR/VR/game development.
  • Install via Unity Hub, choosing LTS versions for stability.
  • Unity interface panels: Project, Console, Hierarchy, Inspector, Scene, Game, Asset Store.
  • GameObjects are digital objects in the scene (e.g., cameras, lights, 3D models).
  • Tools: move, rotate, scale; use Inspector to adjust object properties.
  • Materials and textures add color and realism to GameObjects.
  • Scenes represent different environments in a project.
  • Organize projects with folders for assets, scripts, etc.

Unity Scripting with C#

  • Create and attach C# scripts to GameObjects for interactivity.
  • MonoBehaviour scripts use Start() for initialization and Update() for frame-based logic.
  • Prefabs store reusable collections of components/objects.
  • Physics: add Rigidbody for gravity, colliders for collisions; adjust physics materials for behavior.
  • Add audio with Audio Source components; controls include volume, looping, and play-on-awake.
  • User interfaces (UI) use Canvas, Buttons, TextMeshPro, and Images.
  • Manage scene/project structure for maintainability.

C# Programming Basics

  • C# is an object-oriented general-purpose programming language (part of .NET).
  • Code structure: namespaces, classes, methods (e.g., Main).
  • Comments: single-line (//), multi-line (/* */).
  • Variables store data; follow naming rules (letters, numbers, _).
  • Data types: int, long, byte, float, double, decimal, char, bool, string.
  • Type casting converts between data types.
  • String methods: concatenation (+), Length, Equals(), IndexOf(), ElementAt()._

Operators & Control Flow

  • Arithmetic: +, -, *, /, %, ++, --.
  • Relational: ==, !=, >, <, >=, <=.
  • Logical: &&, ||, !.
  • Assignment: =, +=, -=, *=, /=, %=.
  • Conditional statements: if, else, else if, switch-case, inline if (ternary).
  • Loops: for (known iterations), while (unknown iterations), do-while (executes at least once).
  • Jump statements: break (exit loop), continue (skip iteration).

Data Structures & OOP

  • Arrays: fixed-size collections, accessed via indices.
  • Common array methods: Length, Sort, IndexOf, Max, Min, Sum.
  • Functions: reusable code blocks, defined with optional parameters and return types.
  • Classes/Objects: blueprint and instances; fields, methods, constructors (for initialization).
  • Access modifiers: public (accessible everywhere), private (within class).
  • Static keyword: shared by all instances; static classes can have only static members.

Marker-Based AR with Viewforia

  • Marker-based AR uses computer vision to recognize and track markers.
  • Viewforia SDK: install, set up license, create database, add markers, and import to Unity.
  • AR camera replaces Unity's main camera.
  • Assign digital objects as children of ImageTarget for marker tracking.
  • Multiple marker tracking: adjust Viewforia configuration for simultaneous markers.
  • Virtual buttons: create, size properly, place on marker, and script interactions.
  • Video playback: add video player component, link to event handlers or UI controls.

Project Examples

  • AR Car Customizer: change car colors via UI buttons.
  • AR Business Card: display avatar, info, links, and animated UI in AR.
  • AR Encyclopedia: scan markers to display 3D dinosaur models, info, audio; includes navigation.

Spark AR (Instagram/Facebook Filters)

  • Spark AR Studio: download, install, explore templates and assets library.
  • Face tracking and mesh: add face tracker and mesh, customize materials and textures.
  • 3D filters: import models, use occluders for realism, adjust fit via face tracker.
  • Publish filters: record demo video, export file, upload to Spark AR Hub, and submit for review.

Key Terms & Definitions

  • Augmented Reality (AR) — overlays digital content onto the real world.
  • Virtual Reality (VR) — immerses users in a fully digital environment.
  • Mixed Reality (MR) — merges real and virtual worlds for interactive experiences.
  • Marker-Based AR — requires a visual marker to trigger digital content.
  • Markerless AR — places digital content without physical markers, often using SLAM.
  • Unity — a cross-platform game engine for developing interactive applications.
  • GameObject — a digital object in Unity’s scene.
  • Prefab — reusable GameObject template in Unity.
  • RigidBody — Unity component enabling physics behaviors.
  • Namespace — a collection of related classes in C#.
  • Class — a C# template for creating objects.
  • Function/Method — a block of code performing a specific task.
  • Array — a collection of elements indexed numerically.
  • Access Modifier — controls visibility (public, private, etc.).
  • Static — defines class members shared by all instances.
  • Viewforia — AR SDK for Unity supporting marker-based tracking.
  • Spark AR — Facebook/Instagram’s AR platform for filters and effects.

Action Items / Next Steps

  • Review Unity and C# basics by practicing with small AR scenes.
  • Complete project assignments: AR car customizer, business card, and encyclopedia.
  • Experiment with Spark AR Studio—create and submit a simple filter.
  • Visit the course website for notes, project assets, and further resources.
  • Join the recommended Discord community for support and networking.