updated README

This commit is contained in:
tom.hempel
2025-10-12 14:41:08 +02:00
parent 50410cffd7
commit daed8fae2c

View File

@ -2,23 +2,87 @@
> **Disclaimer:** This project is still a work in progress and in early development. > **Disclaimer:** This project is still a work in progress and in early development.
## Structure ## Project Structure
- **Unity/** - Unity VR/AR application with educational tasks ### Unity VR/AR Application (`Unity/`)
- `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.
- **Chat-App/** - Flutter-based AI Chat Lab application #### Scenes
- Cross-platform chat interface (Android, iOS, Windows, Linux, macOS, Web) - **`Assets/Scenes/VR/`** - VR learning tasks (1-4, task 1 currently usable)
- Connects to AI backend for conversational learning - **`Assets/Scenes/AR/`** - AR learning tasks (1-4, task 1 currently usable)
- Uses Convai SDK for AI-powered conversations - **`Lobby.unity`** - Main lobby/menu scene
- Stores conversations with possibility to automatically translate using DeepL API
- **App-Installers/** - Pre-built installers for the chat app #### Key Scripts
- Android APK - **`TaskTimer.cs`** - Configurable countdown timer with UI display, color warnings when time is low, and auto-return to Lobby on expiration
- Windows executable - **`TaskButtonManager.cs`** - Scene navigation using number keys (1-8 for tasks, L/0 for Lobby)
- Linux AppImage - **`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 <device_id>`).
* Ensure you have a device connected or an emulator/simulator running for mobile platforms.