An augmented reality indoor navigation app made using Google ARCore and Unity
This was made at NITK Surathkal for HackVerse by team Array[] yaar;
Note: The project has been permanently moved to ashishgopalhattimare/PathMarkAR. Kindly check out that repository for the latest updates.
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.
Download or clone the repository onto your local machine.
Download the latest version of Unity from here. Unity Hub is available to facilitate the management of Unity installations and projects. (Unity 2018.3.11f1 is recommended for this project)
Install Unity and open the project in Unity using Unity Hub on your system.
Cloning the project should include all the required libraries and plugins. However, if errors show up, the following can be done to manually get the application running.
Install the ARCore SDK for Unity from here. The full guide can be found at Quickstart for Android page at the Google Developers site.
Things should load up smoothly. Warnings may be ignored.
For Android and iOS support, Android Development and iOS Development plugins should be installed as well. iOS support was not extensively tested and might require some additional effort to get it running. ARKit plugin must also be installed if working on iOS.
Might need to install Android Studio with the Android SDK and JDK for exporting the app to an Android device.
For exporting an app to iOS, Xcode (11.3 or above) must be installed on a Mac running macOS 10.14 Mojave or later. An Apple Developer account is required for signing the application.
For a quick demo, an apk file has been attached as pathmarkARX.apk
which can be installed on an Android device. The apk compatibility cannot be guaranteed.
Imagine going to a mall and getting lost in the maze of shops. If an augmented reality app could guide users to their destination using the shortest path, it could save users from a lot of hassle and save time.
This app can also be used when exploring unknown places or trekking so that a path can be traced back to the source.
At the entrance, the user will be shown a list of all the shops. Once a destination is selected, a stored AR path is shown. This service can be made available to a selected number of shops who are paid members. A subscription model can be implemented for businesses if they wish to stay on the app.
Businesses who would like to be promoted can have their places suggested when the app is being used for navigation. This will need to be as unintrusive as possible.
Once the destination is close enough, Google Maps does not provide the best user experience. In that case an indoor AR application seems more suited to the cause.
Demo of the plane detection and placing markers on the screen (2.5x speed)
Placing markers âž¡ Saving markers âž¡ Character guiding user
- Detection of real world planes using ARCore
- Placement of markers that will be used to mark the path to be used
- Storing of paths to be used at a later time
- Guiding the user along the saved path using a character model
The project can be scaled up so that more paths can be saved. Currently only 2 paths are being saved and are being switched between using the on screen buttons.
Once multiple paths are stored, they can be integrated into a search like interface so that the user can choose which destination is to be reached.
Other user interface and user experience improvements can be implemented to make the app easier and more pleasing to use.
- Unity - Cross-platform real-time game engine developed by Unity Technologies
- ARCore - A software development kit developed by Google that allows for augmented reality applications to be built
- Microsoft Visual Studio - Integrated development environment for C# from Microsoft
- Visual Studio Code - An open source code editor developed by Microsoft
Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.
We used GitHub for versioning. For the versions available, see the tags on this repository.
- Ashish Gopal Hattimare - Lead Developer - ashishgopalhattimare
- Rajat Dipta Biswas - Developer and Designer - rajatdiptabiswas
- Akash Yadav - Tester and Technical Lead - aky91
See also the list of contributors who participated in this project.
This project is licensed under the MIT License - see the LICENSE.md file for details
- raywenderlich.com | Unity for Beginners
- andreasjakl.com | Getting Started with Google ARCore, Part 2: Visualizing Planes & Placing Objects
- Google Developers | Quickstart for Android
- Google Developers | Unity API Reference for ARCore
- Unity Asset Store | White Rabbit by Niwashi Games
- Unity Asset Store | Vectrosity by Starscene Software
- Unity3D Documentations
- Unity Answers
- StackOverflow