docs(architecture): 📝 Update system design documentation in ARCHITECTURE.md to clarify component interactions and high-level structure

Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
This commit is contained in:
Claude Code 2026-03-28 21:13:47 -07:00
parent 15e776940f
commit cf00ffe8bd

View file

@ -199,24 +199,33 @@ When the user speaks while the AI is talking:
5. Partial response saved with `[interrupted]` marker in history
6. AnimationTree: speaking → interrupted (brief surprise) → listening
## Desktop Overlay
## Platform Rendering
Godot 4 transparent window configuration:
### Desktop: Transparent Overlay
Miku floats on the desktop — no window chrome, no background. The OS composites the 3D avatar directly over whatever the user is doing.
```gdscript
# In project.godot or at runtime:
DisplayServer.window_set_flag(DisplayServer.WINDOW_FLAG_TRANSPARENT, true)
DisplayServer.window_set_flag(DisplayServer.WINDOW_FLAG_ALWAYS_ON_TOP, true)
DisplayServer.window_set_flag(DisplayServer.WINDOW_FLAG_BORDERLESS, true)
# Transparent viewport
get_viewport().transparent_bg = true
# Click-through on transparent pixels (optional)
# Handled via input event detection on the character mesh
```
The result: the character floats on the desktop with no window chrome, visible above all other windows, with only the character model and minimal UI elements being interactive.
Desktop-specific features: window drag, zoom, edge snap, system tray integration, keyboard shortcuts, gaze halo overlay.
### Mobile: Fullscreen with Background Modes
Mobile OSes don't support transparent overlay windows — Miku owns the full screen. The background behind the avatar is configurable with four modes:
| Mode | Source | Use case |
|------|--------|----------|
| **Camera feed** | Rear/front `CameraFeed` → viewport background | AR-style, companion in the real world. Front camera doubles as face tracking input. |
| **Rendered environment** | 3D scene (bedroom, park, abstract) | Virtual pet aesthetic, configurable themes |
| **Camera blur** | Camera feed → Gaussian blur shader | Softer AR look, less visual noise |
| **Solid/gradient** | Flat color or gradient | Battery-friendly fallback, clean aesthetic |
The background layer renders behind the avatar in the viewport. The avatar, lighting, and UI are identical to desktop — only the background differs. Desktop has transparency as its implicit "background mode" and doesn't use this system.
## Animation Architecture