AI-powered robotics companion platform for Linux, ported from the Android Merlin application.
This project is a complete rewrite of the Merlin Android application for Linux desktop using Flutter. It provides the same AI-powered conversational interface with avatar video, speech recognition, text-to-speech, and face detection capabilities.
lib/
├── core/ # Core utilities and configuration
│ ├── api/ # HTTP client setup
│ ├── config/ # App configuration
│ ├── di/ # Dependency injection
│ ├── error/ # Error handling
│ ├── extensions/ # Dart extensions
│ └── utils/ # Utility functions
├── data/ # Data layer
│ ├── datasources/ # Local and remote data sources
│ │ ├── local/ # Local storage (Hive, SharedPrefs)
│ │ └── remote/ # API services (Retrofit)
│ ├── models/ # Data transfer objects
│ └── repositories/ # Repository implementations
├── domain/ # Business logic layer
│ ├── entities/ # Business entities
│ ├── repositories/ # Repository interfaces
│ └── usecases/ # Business use cases
└── presentation/ # UI layer
├── common/ # Shared UI components
│ ├── theme/ # App theming
│ └── widgets/ # Reusable widgets
├── features/ # Feature modules
│ ├── avatar/ # Avatar video display
│ ├── conversation/ # Chat interface
│ ├── home/ # Home screen
│ ├── settings/ # Settings screen
│ ├── speech/ # STT/TTS controls
│ └── vision/ # Camera/face detection
└── providers/ # Riverpod providers
| Category | Technology |
|---|---|
| UI Framework | Flutter 3.x |
| State Management | Riverpod |
| Networking | Dio + Retrofit |
| Local Storage | Hive + SharedPreferences |
| DI | GetIt + Injectable |
| Video Player | media_kit |
| Audio | record + audioplayers |
| STT | speech_to_text / Google Cloud |
| TTS | flutter_tts / Azure SDK |
| Camera | camera package |
| Face Detection | google_mlkit_face_detection |
| Code Generation | freezed, json_serializable |
- Flutter SDK 3.2.0 or higher
- Linux development dependencies:
sudo apt-get install clang cmake ninja-build pkg-config libgtk-3-dev liblzma-dev libstdc++-12-dev
- For media_kit video playback:
sudo apt-get install libmpv-dev mpv
-
Clone the repository:
git clone https://github.com/AmityCo/robotics-flutter.git cd robotics-flutter -
Install dependencies:
flutter pub get
-
Generate code:
dart run build_runner build --delete-conflicting-outputs
-
Run the application:
flutter run -d linux
flutter build linux --releaseThe built application will be in build/linux/x64/release/bundle/.
This project uses build_runner for code generation (freezed, json_serializable, etc.):
# One-time build
dart run build_runner build --delete-conflicting-outputs
# Watch mode for development
dart run build_runner watch --delete-conflicting-outputs# Run all tests
flutter test
# Run with coverage
flutter test --coverageProprietary - Amity Solutions
- robotics-android - Original Android application