diff --git a/README.md b/README.md index 05ed162..2b3f4ac 100644 --- a/README.md +++ b/README.md @@ -2,23 +2,87 @@ > **Disclaimer:** This project is still a work in progress and in early development. -## Structure +## Project Structure -- **Unity/** - Unity VR/AR application with educational tasks - - `Assets/Scenes/VR/` - VR learning tasks (1-4, task 1 currently usable) - - `Assets/Scenes/AR/` - AR learning tasks (1-4, task 1 currently usable) - - Uses Convai SDK for AI-powered conversations and Ready Player Me avatars - - `TaskTimer.cs` - Manages a configurable countdown timer for tasks (e.g., duration, warning threshold, auto-start), displaying time in UI and changing color when time is low. Automatically loads the "Lobby" scene upon expiration. - - `TaskButtonManager.cs` - Facilitates scene navigation, allowing users to switch between VR/AR tasks (1-4) using number keys (1-8) and return to the "Lobby" scene using 'L' or '0'. - - `PositionTracker.cs` - Records and saves the positions of two specified Unity `Transform` objects to a CSV file at a configurable interval, useful for data collection. +### Unity VR/AR Application (`Unity/`) -- **Chat-App/** - Flutter-based AI Chat Lab application - - Cross-platform chat interface (Android, iOS, Windows, Linux, macOS, Web) - - Connects to AI backend for conversational learning - - Uses Convai SDK for AI-powered conversations - - Stores conversations with possibility to automatically translate using DeepL API +#### Scenes +- **`Assets/Scenes/VR/`** - VR learning tasks (1-4, task 1 currently usable) +- **`Assets/Scenes/AR/`** - AR learning tasks (1-4, task 1 currently usable) +- **`Lobby.unity`** - Main lobby/menu scene -- **App-Installers/** - Pre-built installers for the chat app - - Android APK - - Windows executable - - Linux AppImage \ No newline at end of file +#### Key Scripts +- **`TaskTimer.cs`** - Configurable countdown timer with UI display, color warnings when time is low, and auto-return to Lobby on expiration +- **`TaskButtonManager.cs`** - Scene navigation using number keys (1-8 for tasks, L/0 for Lobby) +- **`PositionTracker.cs`** - Records Transform positions to CSV at configurable intervals for data collection + +#### Technologies +- Convai SDK for AI-powered conversations +- Ready Player Me for avatars +- Meta Quest (Oculus) XR support + +#### Setup Instructions + +1. **Enable Quest Link** + - Open the Oculus app on your PC + - Connect your Quest headset via USB-C cable + - Put on your headset and enable Quest Link when prompted + - Alternatively, use Air Link for wireless connection (Settings → Experimental) + +2. **Enable Beta Passthrough (for AR tasks)** + - On your PC, open the Oculus app + - Go to **Settings → Beta** + - Enable **"Passthrough over Oculus Link"** or **"Passthrough API"** + - Restart the Oculus app and reconnect your headset + +3. **Run the Unity Project** + - Open the project in Unity Editor + - Load the `Lobby` scene from `Assets/Scenes/` + - Press Play in Unity Editor + - The application will run on your Quest via Link + +#### Navigation Controls +- **Number Keys 1-8** - Switch between VR/AR tasks +- **L or 0** - Return to Lobby +- VR controllers for interaction within tasks + +--- + +### Chat Application (`Chat-App/`) + +Flutter-based cross-platform chat interface. + +#### Features +- Cross-platform support (Android, iOS, Windows, Linux, macOS, Web) +- AI-powered conversations using Convai SDK +- Conversation history with persistent storage +- Automatic translation support via DeepL API + +#### Installation +Pre-built installers available in `App-Installers/`: +- **Android** - `AI-Chat-Lab.apk` +- **Windows** - `AIChatLab-Setup.exe` +- **Linux** - `ai_chat_lab-0.1.0-x86_64.AppImage` + +#### Development +To develop or run the application from source, you'll need to set up your Flutter development environment. + +1. **Install Flutter SDK** + * Follow the official Flutter installation guide for your operating system: [https://flutter.dev/docs/get-started/install](https://flutter.dev/docs/get-started/install) + * Ensure you have all necessary dependencies (e.g., Android Studio, Xcode for iOS, VS Code, etc.) and run `flutter doctor` to verify your setup. + +2. **Run the Application** + * Navigate to the `Chat-App/` directory in your terminal: + ```bash + cd Chat-App/ + ``` + * Get the project dependencies: + ```bash + flutter pub get + ``` + * Run the application on your desired platform (e.g., Android, Windows, Web): + ```bash + flutter run + ``` + * To run on a specific device or platform, use the `-d` flag (e.g., `flutter run -d windows`, `flutter run -d chrome`, `flutter run -d `). + * Ensure you have a device connected or an emulator/simulator running for mobile platforms.