Catalog of AR Patterns: Event-driven Design Patterns in Creating Augmented Reality Experiences
This catalog is the main repository of the AR Patterns community. It is split into three parts the Augmentation Patterns, the Behavioral Patterns and the description of the overarching Event-Condition-Action Pattern.
While a VR/3D designer is placing virtual objects using positions in a controlled world coordinate system, an AR content creator primarily specifies object placement intents relative to appearing anchors, which are dynamically produced by detectors. These spatial anchors serve as reference points for pinning objects. Generally in AR Patterns, the augmentation intents are formulated as Event-Condition-Action (ECA) rules that are triggered by detector events. When a detector event occurs, ECA rule’s reaction will add augmentation items to the AR scene.
The following table outlines several common placement intents for event-driven augmentation patterns that can be used to stage AR experiences. In AR, the real world serves as the spatial context for the stage, making users both spectators and performers. Their movements and perspectives influence the firing of events, leaving limited control over time and space for AR scenography (in contrast to film, theater, and VR/3D/game design).
| Icon | Pattern | Description | Example |
|---|---|---|---|
| Geolocated Remark Pattern | Triggering of action or of user feedback based on GPS location data or on address data | Visual or audio feedback about location-based point of interest | |
| Segment Overlay Pattern | Presentation of 2D overlay on top of image segment detected in video stream | Attaching 2D text description to a detected image segment | |
| Area Enrichment Pattern | Approximately placing 3D content at area of image segment | Presenting ballons in sky area | |
| Captured Twin Pattern | Captured element of real world added to 3D data model | Captured walls and doors and windows in an indoor AR session | |
| Anchored Supplement Pattern | Presentation of 3D content aligned to detected entity for enhancement | Attaching visual 3D elements to a detected image (marker) or captured object | |
| Superimposition Pattern | Presentation of 3D content replacing a detected entity | Cover a detected object with a virtual one | |
| Tag-along Pattern | Presentation of 3D content within user’s field of view while head-locked | Place 3D control panel that follows the user | |
| Hand/Palm Pop-up Pattern | Presentation of 3D content on hand or palm while visible | Place 3D UI elements at palm of user's one hand | |
| Ahead Staging Pattern | Presentation of 3D content ahead of user | Placing 3D item on floor in front of spectator | |
| Pass-through Portal Pattern | Present partly hidden 3D content to force user to go through | Placing 3D scene behind a portal / behind an opening | |
| Staged Progression Pattern | Ordered, linear story: temporal order or interaction flow of 3D presentations | Sequence of 3D content with forth and optionally back movements | |
| Attention Director Pattern | Guide user’s attention to relevant place | Use animated pointers to direct user’s attention | |
| Contextual Plot Pattern | Spatio-temporal setting that aggregates diverse AR patterns to form a scenario or a non-linear plot | Scenography of dynamic, interactive, and animated AR |
The real world context during an AR session can be seen as stage. The dynamic behavior of an AR experience is determined by its Event-Condition-Action rules, which are triggered by events occurring in the actual real-world context.
| Icon | Pattern | Description | Example |
|---|---|---|---|
| Instant Reaction Pattern | Direct execution of action triggered by invocation of rule | Immediate command of action or call of function | |
| Timed Reaction Pattern | Temporally executed action | Delayed action or sequence of timed actions | |
| Conditional Reaction Pattern | Execute an action only when a condition is fulfilled after being triggered by event | State-driven, asynchronous programming logic | |
| Continous Evaluation Pattern | Continuous polling of state changes that will triggers rules | Continuous checks on value change, existence, visibility, proximity | |
| Publish-Subscribe Notification Pattern | Receive notifications via a message queue from a subscribed system | From speech recognition system or from WebRTC system in collaboration session | |
| Request-Response Pattern | Remote procedure call resulting in asynchronously receiving ECA rules or media assets | REST API call via a Web URL to load rules or assets (images, 3D models) | |
| Chain Reaction Pattern | Course of events processed as sequence of indirect reactions of running subsequenced rules | Rule changing data that will trigger a rule to update an item’s visual as a follow-up | |
| Complementary Reactions Pattern | Two active rules with opposite reactions | Reacting on toggling states with two complementary active rules | |
| Detector Reactivation Pattern | Reactivate detector with only-once reaction | Reactivate detector after resulting augmentation is no longer existing |
To design reactive systems, breaking down the system’s behavior into discrete events, conditions, and actions provides a structured and modular approach. Event-Condition-Action (ECA) rules serve as a core pattern for explaining reactive AR applications. Learn more on using the ECA Pattern
Based on the core ECA pattern, all other AR patterns can be documented in a standardized way by the ECA Diagram.
This is a community-driven catalog, which means we need you as a contributor! Join us in creating new patterns and enhancing the existing ones. We would love to see more examples of the patterns in use in other technologies.
How to contribute is described in detail here: Contributing