A window into another world. Real-time Tauri desktop client that renders a 3D VRM avatar, streams microphone audio to Fern via LiveKit WebRTC, and animates the avatar in sync with the AI's voice using live viseme data.
Find a file
2026-06-18 17:46:32 +03:00
.github/workflows fix linux build 2026-06-18 17:46:32 +03:00
.vscode Initial Commit 2026-06-10 07:10:10 -05:00
src fix audio track 2026-06-15 23:00:11 +03:00
src-tauri Rehaul UI and added more stuff 2026-06-12 16:06:31 -05:00
.gitattributes Initial Commit 2026-06-10 07:10:10 -05:00
.gitignore Rehaul UI and added more stuff 2026-06-12 16:06:31 -05:00
config.json Rehaul UI and added more stuff 2026-06-12 16:06:31 -05:00
index.html Rehaul UI and added more stuff 2026-06-12 16:06:31 -05:00
LICENSE include license 2026-06-14 02:15:01 +03:00
package-lock.json fix ci/cd pipeline 2026-06-18 17:25:09 +03:00
package.json fix ci/cd pipeline 2026-06-18 17:25:09 +03:00
README.md Initial Commit 2026-06-10 07:10:10 -05:00
ui.html Added character selection menu, fixed connectivity issues and added idle animations 2026-06-14 22:27:34 -05:00
vite.config.js fix ci/cd pipeline 2026-06-18 17:25:09 +03:00

🦋 Frieren Desktop (The Face)

"A window into another world."

Frieren Desktop is the real-time 3D client of the Frieren AI Ecosystem. It renders an interactive VRM avatar, streams microphone audio to Fern via WebRTC, and animates the avatar in sync with the AI's voice using live viseme data.

🔮 Responsibilities

  • The Face (VRM Renderer): Loads and renders a fully rigged 3D VRM avatar in real-time using Three.js, with live lip-sync driven by viseme frames pushed from Fern.
  • The Ear (Audio Transport): Captures microphone input and streams raw PCM audio to Fern via LiveKit WebRTC transport.
  • The Voice Receiver (TTS Playback): Receives synthesized audio chunks from Fern and plays them back in real-time as they arrive.
  • The Hub (Character Selection): Authenticates with Fern and displays available AI characters fetched from the ecosystem's character registry.

📐 Architecture Integration

From Direction / Protocol To Data Transferred
Microphone to Fern (VAD / STT) Raw Audio PCM Captures raw microphone input from the user.
Fern (TTS Engine) to Audio output Audio chunks Synthesized voice streamed back and played in real-time.
Fern (Pipeline) to VRM Renderer Viseme JSON Lip-sync animation frames applied to the 3D avatar.
Fern (API) to Character Hub Characters Available AI characters loaded on login.

🛠 Tech Stack & Spells

  • Framework: Tauri 2.0 (Rust + WebView)
  • 3D Rendering: Three.js + @pixiv/three-vrm
  • Audio Transport: LiveKit Client SDK
  • Frontend: Vanilla JavaScript + Vite
  • Avatar Format: VRM

🚀 Quick Start

  1. Clone the repository:
   git clone https://github.com/Frierenclaw/frieren-desktop.git
   cd frieren-desktop
  1. Install dependencies:
   npm install
  1. Configure Fern's URL, open src/main.js and set:
   const FERN_URL = "http://your-fern-server:8000";
  1. Run in development mode:
   npm run tauri dev

⚠️ Requirements


Part of the Frieren AI Ecosystem.