Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Smart Library: AR-Guided Book Retrieval System

Project Overview

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).


Core Features

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.cs script, based on the SteamVR plugin, is included to demonstrate the intended implementation for the VIVE Pro 2 headset.

Technology Stack

  • 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

How to Run the Prototype

  1. Clone the Repository:
    git clone https://github.com/YourUsername/Smart-Library-AR-Navigation.git
  2. 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).
  3. Open the Main Scene:
    • In the Project window, navigate to the Assets/Scenes folder.
    • Double-click the VR_Scene (or your main scene file) to open it.
  4. 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.

Code Structure

All core scripts for this project are located in the Assets/Scripts directory, organized by functionality:

  • /Managers: Contains high-level controller scripts like GameManager, UIManager, and HighlightController.
  • /Navigation: Contains the NavigationController responsible for pathfinding and line rendering.
  • /Player: Contains the PlayerController for keyboard input and the VRInteractionController for VR input.
  • /Data: Contains the C# classes (Book.cs, BookDatabase.cs) that map to the structure of the books.json file.

About

Prototype for an AR-guided book retrieval system in a smart library.

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages