Skip to content

MurilloLog/CollabAR

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

72 Commits
 
 
 
 
 
 
 
 

Repository files navigation

A Framework for Collaborative Augmented Reality Applications | I3D 2025

Two users collaborating on AR drawing

Figure: Real-time AR drawing synchronization between two mobile devices using our framework

Overview

This repository presents a framework designed to streamline the deployment and configuration of colocated collaborative augmented reality (AR) experiences for mobile devices (currently supporting ARCore-compatible devices). The solution employs a centralized client-server architecture, where a dedicated local server (PC) manages real-time data communication and synchronization across connected devices. This approach eliminates reliance on cloud anchor services or third-party platforms, which often impose restrictive limitations.

Perfect for:

  • Prototyping multi-user AR experiences
  • Collaborative projects
  • AR education tools

🧩 Project Components

Folder Purpose What You'll Find There
Server/ Contains the complete architecture and technical configuration for the local server, including all necessary components and operational processes Server code, database setup
App/ Includes the mobile application implementation that connects to and interacts with the server framework Unity project, App setup

🛠️ Setup Guide

Before You Begin

You'll need:

Computer: Windows/Mac/Linux with:

Phones: 2+ Android devices with:

✔ Refer to SERVER.md and APP.md for setup instructions.

Step 1: Get the Code

  1. Clone the repository (download the project):
git clone https://github.com/MurilloLog/CollabAR.git
  1. Navigate into the project folder:
cd CollabAR

Step 2: Launch the Server

  1. Open two terminal windows and navigate both to the Server/ folder:
cd Server
  1. In first terminal (Database-MongoDB)
  • Start MongoDB

    mongod

    ✅ Successful confirmation

    Wait for the log message: [initandlisten] Waiting for connections.

  1. In the second Terminal (Application - Node.js)
  • Install dependencies (first time only):
npm install
  • Start the server:
npm start

✅ Successful confirmation

Look for the message: "Wating for connections..."

⚠️ Important Notes:

  • Do not close either terminal window while using the application.

  • Closing the first terminal (mongod) will shut down the database.

  • Closing the second terminal (npm start) will stop the server.

  • To stop the servers safely: Press Ctrl + C in each terminal to terminate processes gracefully.

🎨 Using the App

  1. Connect Devices:
  • Positioning: Point all device cameras at the same flat surface (table/floor).
  • Connection:
    • Enter the server’s IP:PORT address manually (found in SERVER.md).
    • Tap "Join" to sync devices.
    • Wait for all players
  • Verification:
    • Check terminal logs for "Client [IP] connected" confirmation
  1. Start Drawing:
  • Choose colors from the palette in your app
  • Draw in the air – your strokes appear when you finish - others will see your drawings
  • Walk around - drawings stay anchored to their physical location

🔍 System Verification

To confirm the system is operating correctly:

  1. Check the server terminal (where you ran npm start).
  2. Look for these key log messages:
  • ✅ "Connecting to MongoDB..."
  • ✅ "Successful connection..."
  • ✅ "Waiting for connections..."

❓ Common Questions

Q: Why do devices need to be close together?

A: Devices need to be close to share the same AR space and use a common reference point from the starting position for accurate synchronization

Q: Can I use iPhones?

A: Currently Android-only (ARCore requirement), but iOS support could be added.

Q: How many users can join simultaneously?

A. The system supports theoretically unlimited connections, but practical performance depends on:

  • The PC specifications (CPU/RAM)
  • Network conditions (latency and stability)
  • Drawing complexity (size/detail of shared AR content)

Please kindly cite our paper as:

@inproceedings{10.1145/3722564.3728390,
author = {Murillo Gutierrez, Gustavo Adolfo and Jin, Rong and Ramirez Paredes, Juan Pablo Ignacio and Hernandez Belmonte, Uriel Haile},
title = {A Framework for Collaborative Augmented Reality Applications},
year = {2025},
isbn = {9798400718335},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/3722564.3728390},
doi = {10.1145/3722564.3728390},
series = {I3D Companion '25}
}

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •