GSoC 2021 Building the AR Draw Experience with UNITY 3D and Integrating it with the present MapMint4ME App

== Introduction ==
 
=== Idea ===
The Idea is basically about introducing the Augmented Reality experience in the present MapMint4ME project by building the AR Draw feature in UNITY 3D and adding its intent in the MapMint4ME project. 	
AR Draw - It’s an AR experience that just lets you draw simple lines using a line renderer in 3D space by touching your screen with a single finger or can be with multiple fingers and moving the phone around the space.
MapMint4ME means MapMint 4 (for) Measure and Evaluation, It is an Android application that allows you to edit geolocated data in online or offline mode.
===Project proposal===
 
My proposal for GSoC 2021 can be found here.
 
=== Advantages from this project ===
 
This project will bring the Augmented Reality capabilities to the software with better UI and UX parts for the MapMint4ME AR Draw experience. User Experience for GIS services puts UX at the heart of your GIS applications, increasing usability for GIS apps.
 
Link to Github repository: Repository
=== Final Report for GSoC 2021 ===
Here is the Final Report link about the project and the contribution I did during this period to MapMint4ME. 
Final Report
== Timeline ==
=== Community bonding period ===
17th May - 7th June:
Task Done during the period :
* Introduced myself over the channel and shared my proposal over the mailing list for suggestions and feedbacks.
* Communicating with mentors and Getting familiar with the source code of the project given by mentors.
* Created a wiki page for the project "Building the AR Draw Experience with UNITY 3D and Integrating it with the present MapMint4ME App".
* Forked the repository of MapMint4ME android application. Repository
* Updated wiki User page and added my personal information. User 
* Updated links on the wiki Google Summer of Code 2021 Accepted page. Page
* Joined MapMint Slack Workspace created by mentors.
* Development Environment setup of MapMint4ME android application for UNITY 3D and Android Studio.
* Discussing with the mentors their expectations over the GSoC 2021 project period.
=== Coding period 1:===
Week 1 - 7th June - 13th June:
Task Done during the period:
*Discussing with the mentors for some doubts regarding the project.
*Gone through some blogs, documentation, and videos regarding the project.
*Worked upon some UX and UI for the AR experience.
*Worked on writing some C# script in UNITY for the project.
*Building the first iteration APK of the AR Draw project in UNITY 3D.
Week 2 - 14th June - 20th June:
Task Done during the period:
*Discussing with the mentors about using Google AR cloud anchor or using open source AR cloud project.
*Gone through documentation, projects file, code, and videos regarding the Open AR cloud open-source project.
*Cloned the OpenAR Cloud project( link ) unity client and tried to build that project & needed more time to spend on this part for the project.
*Worked on adding UI elements like line width dropbox and etc & make them working with code.
*Building the iteration APK of the AR Draw project in UNITY 3D for trial and Testing.
Week 3 - 21th June - 27th June:
Task Done during the period:
*Worked on bugs in the line width dropbox and line drawing in the project and resolved them.
*Discussed with mentors about the current aspect and more features that we can add to the ARDraw Experience.
*Gone through the related topics to the color picker feature for the lines drawn in the AR Draw experience. Ref: https://forum.unity.com/threads/color-picker.267043/
*Build the apk for testing and trial. Video link: 
*About bug/issue: While selecting the width from the dropbox the touch was drawing a line at the back of the UI.
 After issue Resolved: Link
 Before issue Resolved Link
Week 4 - 28th June - 3rd July:
Task Done during the period:
*Added the feature to draw the lines over the recognized planes like horizontal or vertical planes.Video link
*Multi-touch draw feature added to the AR Draw experience.
*Discussion with mentors about the current features and the features that need to be added to the AR experience.
Week 5 - 4th July - 10th July:
Task Done during the period:
*I have added the feature to calculate the length of the drawn line in the AR draw experience. Video link:
*Worked upon sticking the 3D text of the length of the line to the rendered line in the scene.
Week 6 - 11th July - 17th July:
Task Done during the period:
*Worked on Optimizing C# code.
*Read articles about how to integrate the UNITY 3D project with the Android Studio Project. Link
*Worked upon improving some AR Experience and feedback to the user.
Week 7 - 18th July - 25th July:
Task Done during the period:
*Added the remove lines feature to erase the line drawn on the plane in the AR experience. Video
*Gone through the MM4ME Android studio project file and added the button in-app to launch the AR draw experience.
*Worked upon UI elements on the canvas to change the button size color and font.
Week 8 - 26th July - 31st July:
Task Done during the period:
*Found a bug in AR Draw that was not rendering more planes afterward drawing the first line and resolved it. video
*I Went through the MM4ME Android projects file and was facing some difficulty with JDK in build & run on my device then resolved that issue.
*Tried to export the UNITY project as a module and integrate it with the Android project.
Week 9 - 1st August - 8th August:
Task Done during the period:
*I build a demo native android app in android studio and import the unity project as the library in that and start the AR experience on button click. Video
Next Week Target:
*Will work on documentation about the Unity project and comments in C# scripts for future prospects.
*Will build the final apk of MM4ME with AR Experience in it.
*Will work on some AR experience and will try if We can add some more things to add in time.
Week 10 - 9th August - 16th August:
Task Done during the period:
*Build the final apk of MM4ME with AR Experience in it.Video
*Working on final documentation about the project.
*Had a meeting and discussion with fellow GSoC students and mentors about the error faced and resolved them.
== Student's Biography ==
I am Sourav Singh a second-year undergraduate student at the Indian Institute of Information Technology Nagpur ( Maharashtra, INDIA ) focused on Electronics and Communication Engineering. As introducing myself in tech I am an XR enthusiast✨ and exploring AR/VR development, Game Development, Computer Vision & Open-Source Projects. 
for more information here is the link : LinkedIn
	
== Mentors ==
*Rajat Shinde
*Fenoy Gerald 
*Venkatesh Raghavan 
*Sittichai choosumrong 
*Samuel Souk aloun
Category: Google Summer of Code