This project is a functional prototype of an innovative system designed to modernize the book-finding experience in libraries. By integrating Internet of Things (IoT) hardware with an Augmented Reality (AR) mobile application, this system transforms a traditionally tedious task into an intuitive, efficient, and engaging process. Users can simply search for a book on their device and receive real-time, visual guidance directly to its precise location on the shelf.
This repository contains the complete source code for the client-side application developed in Unity (URP).
The current prototype successfully implements the following key features in a simulated library environment:
- 🖥️ PC-Based First-Person Controller: A fully interactive prototype that allows users to navigate the virtual library using standard WASD keyboard controls and a mouse for camera movement.
- 🔍 Interactive Search UI: A user-friendly interface for searching books by title. The UI is designed to switch between an interactive mode (for typing) and a gameplay mode (for navigation).
- 💡 Dynamic Pathfinding: Upon a successful search, the system utilizes Unity's NavMesh to calculate the shortest, collision-free path from the user's current location to the target bookshelf.
- ✨ Visual Guidance System:
- Navigation Line: A glowing line is rendered in real-time on the floor, providing clear, step-by-step directions.
- Bookshelf Highlighting: Once the user arrives at the destination, the target bookshelf is illuminated with a distinct glow effect, eliminating any final ambiguity.
- 🔩 Data-Driven Logic: The book catalog is managed via an external JSON file, allowing for easy updates and scalability without altering the core application code.
- 🕶️ VR-Ready Architecture: The project is architected with a clear separation between control logic and core systems, enabling a seamless transition to VR interaction. The
VRInteractionController.csscript, based on the SteamVR plugin, is included to demonstrate the intended implementation for the VIVE Pro 2 headset.
- Game Engine: Unity 2022.3 (Universal Render Pipeline - URP)
- Programming Language: C#
- VR Integration (Planned): SteamVR Plugin for HTC VIVE Pro 2
- Navigation: Unity AI Navigation (NavMesh Components)
- Data Format: JSON
- Clone the Repository:
git clone https://github.com/YourUsername/Smart-Library-AR-Navigation.git
- Open in Unity Hub:
- Open Unity Hub.
- Click "Open" and navigate to the cloned repository folder.
- Select the project to open it in the Unity Editor (version 2022.3.x is recommended).
- Open the Main Scene:
- In the
Projectwindow, navigate to theAssets/Scenesfolder. - Double-click the
VR_Scene(or your main scene file) to open it.
- In the
- Run the Simulation:
- Press the "Play" button at the top of the Unity Editor.
- Use WASD to move and the Mouse to look around.
- Press the Tab key to activate the UI, search for a book (e.g., "IoT Basics", "AR Development"), and press "Find".
- Press Tab again to regain movement control and follow the generated path.
All core scripts for this project are located in the Assets/Scripts directory, organized by functionality:
/Managers: Contains high-level controller scripts likeGameManager,UIManager, andHighlightController./Navigation: Contains theNavigationControllerresponsible for pathfinding and line rendering./Player: Contains thePlayerControllerfor keyboard input and theVRInteractionControllerfor VR input./Data: Contains the C# classes (Book.cs,BookDatabase.cs) that map to the structure of thebooks.jsonfile.