Terra

Terra
January 2025
Unity, C#, ARCore, AR Foundation, ProBuilder

Overview

In this project we wanted to change the way people see the world by combining augmented reality with creative building mechanics. Our vision was simple: let anyone build structures in real world spaces using just their phone.

Key Features

We designed an intuitive interface where you simply click on your phone screen to add blocks in 3D space. You can view your buildings from any angle and experience life-sized models seamlessly integrated into your environment.

Terra AR Gameplay 2
Terra AR Gameplay 1

Technical Implementation

We built Terra with Unity and C#, using ARCore and AR Foundation for AR functionality on mobile devices. The core placement system we developed uses raycasting to detect planes and existing blocks, with a grid-snapping system to ensure blocks align correctly.

Vector3 SnapToGrid(Vector3 position)
{
    float x = Mathf.Round(position.x / snapGridSize) * snapGridSize;
    float y = Mathf.Round(position.y / snapGridSize) * snapGridSize;
    float z = Mathf.Round(position.z / snapGridSize) * snapGridSize;
    return new Vector3(x, y, z);
}

Our placement system handles two scenarios: placing blocks on AR-detected planes (ground, tables, walls) and stacking blocks on top of existing blocks. When you tap, the system first raycasts against existing blocks to enable stacking, then falls back to AR plane detection for new structures. We also added block customization with three color options (blue, red, green), accessible through the UI buttons.

Credits

This project was built for UofTHacks 2025 by: