- Project structure with modular architecture - State management system (emotion states, conversation history) - Transparent, draggable PyQt6 window - OpenGL rendering widget with placeholder cube - Discord bot framework (commands, event handlers) - Complete documentation (README, project plan, research findings) - Environment configuration template - Dependencies defined in requirements.txt MVP features working: - Transparent window appears at bottom-right - Window can be dragged around - Placeholder 3D cube renders and rotates - Emotion state changes on interaction - Event-driven state management Next steps: VRM model loading and rendering
42 lines
1.0 KiB
Python
42 lines
1.0 KiB
Python
"""
|
|
Desktop Waifu - Main Entry Point
|
|
A VRM-based AI desktop companion with Discord integration
|
|
"""
|
|
import sys
|
|
import asyncio
|
|
from PyQt6.QtWidgets import QApplication
|
|
from PyQt6.QtCore import Qt
|
|
from dotenv import load_dotenv
|
|
|
|
# Load environment variables
|
|
load_dotenv()
|
|
|
|
# Import application modules
|
|
from src.ui.waifu_window import WaifuWindow
|
|
from src.discord_bot.bot import WaifuBot
|
|
from src.core.state_manager import StateManager
|
|
|
|
def main():
|
|
"""Main application entry point"""
|
|
# Create Qt Application
|
|
app = QApplication(sys.argv)
|
|
app.setApplicationName("Desktop Waifu")
|
|
|
|
# Initialize state manager (shared between desktop and Discord)
|
|
state_manager = StateManager()
|
|
|
|
# Create main window
|
|
window = WaifuWindow(state_manager)
|
|
window.show()
|
|
|
|
# Start Discord bot in background (if configured)
|
|
# TODO: Implement Discord bot integration
|
|
# discord_bot = WaifuBot(state_manager)
|
|
# asyncio.create_task(discord_bot.start())
|
|
|
|
# Run application
|
|
sys.exit(app.exec())
|
|
|
|
if __name__ == "__main__":
|
|
main()
|