Skip to content

AmityCo/robotics-flutter

Repository files navigation

Merlin Linux - Flutter Desktop Application

AI-powered robotics companion platform for Linux, ported from the Android Merlin application.

Overview

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.

Architecture

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

Tech Stack

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

Getting Started

Prerequisites

  • 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

Installation

  1. Clone the repository:

    git clone https://github.com/AmityCo/robotics-flutter.git
    cd robotics-flutter
  2. Install dependencies:

    flutter pub get
  3. Generate code:

    dart run build_runner build --delete-conflicting-outputs
  4. Run the application:

    flutter run -d linux

Building for Distribution

flutter build linux --release

The built application will be in build/linux/x64/release/bundle/.

Development

Code Generation

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

Testing

# Run all tests
flutter test

# Run with coverage
flutter test --coverage

License

Proprietary - Amity Solutions

Related Projects

About

Merlin Robotics Linux Desktop Application - Flutter Port

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages