wiki:Other/Summer/2023/Mural

Version 24 (modified by ana_obradovic, 16 months ago) ( diff )

Augmented Reality Mural

    Augmented Reality Mural

    WINLAB Summer Internship 2023

    Group Members: Alexander Clarke, Ana Obradovic, Arya Shetty, Nicholas Clarke, Pavan datta Vedire Reddy

    Project Objective

    The objective of this project is to create a collaborative augmented reality application which will allow remote users to collaboratively create a virtual mural. This project will be created using the Unity game engine and deployed to AR platforms such as the Microsoft Hololens.

    In addition to creating the software that will manage the generation and rendering of the mural, another important component of this project is designing an infrastructure that will allow for very low latency collaboration. If time allows, one of the end goals of this project is to deploy it using an "edge cloud" architecture using the OpenAR Cloud project.

    Students should get started with this project by familiarizing themselves with the Unity game engine and Hololens development tools.

    Week 1:

    • Started to familiarize ourselves with the Unity Software and Hololens.
    • We started with connecting the Hololens to the Unity app through remote connection.
    • Once we were able to see the project scene through the Hololens we tested limits of the environment

    Picture of early work

    Week 2:

    • Set up essential MRTK (mixed reality toolkit) packages in Unity
    • Downloaded and deployed app on Hololens
    • Moved and resized objects
    • Used eye tracking feature for selection
    • Used voice commands to switch color of objects
    • Added template menu
    • Wrote code for drawing application using mouse
    • Worked on iterations of line drawings (2D & 3D)

    Week 3:

    • Resize and move rendered lines
    • Highlight selected line objects
    • Selection button in menu
    • Rendering smooth curves with control points using splines
    • Ability to erase rendered lines
    • Learned about the client-server architecture
    • Learned about communication protocols —> Transmission Control Protocol (TCP) & User Datagram Protocol (UDP)
    • Coded a simple TCP Chat Room with multiple clients

    Gif of resizing tool

    Week 4:

    • Message Queuing telemetry transport —> Setup broker, Connected one unity client to broker, Implements Publisher-subscriber method
    • Singleton pattern for save system
    • Serialize game objects and scenes
    • Save and load structures
    • Merged features like smooth line drawing, erasing and editing
    • Tool selection and drawing resizing
    • Brush settings and color selection menu

    Picture of spline drawing

    Week 5:

    • More work with MQTT, setting up unity client
    • More work on save system, and transferring game object files to JSON format

    Week 6:

    • Used MQTT to send JSON files from different devices
    • Implemented saving lines by position change
    • Fixed UI and optimized brushes
    • Set up Node-Red to manage MQTT topics

    Week 7:

    • Two player collaboration
    • File Server
    • New menu flow and shape tools

    Week 8:

    • Allow for multiple users drawing simultaneously

    Week 9:

    Attachments (15)

    Note: See TracWiki for help on using the wiki.