Amirwopi/VPet-Ultra

Offline-First AI Desktop Companion — VPet fork with LLM inference, memory, personality, emotion, voice, and agent capabilities. Steam-free standalone mode.

C#

3

60 commits

updated Sep 28, 2026

See the code

README

🐾 VPet-Ultra

هوش مصنوعی Desktop Companion آفلاین

VPet رو به یک companion هوشمند تبدیل می‌کنه — با LLM inference درون‌پروسه‌ای، memory، personality، emotion، voice و agent capabilities. همه آفلاین، بدون نیاز به server خارجی.

Build License .NET Platform PRs Welcome


نکته: این fork از پروژه‌ی اصلی VPet، وابستگی‌های Steam کاملاً حذف شده و برنامه به‌صورت standalone اجرا می‌شه. هیچ نیازی به Steam client یا Steam SDK نیست.

✨ Features

FeatureDescription
In-Process LLM Inferenceمدل‌های GGUF مستقیماً داخل app اجرا می‌شن via LLamaSharp (llama.cpp). بدون Ollama، بدون Python، بدون server. CPU و GPU پشتیبانی می‌شن.
Model Managerbrowse، download، install، update و delete مدل‌های GGUF از HuggingFace. 9 مدل curated از قبل ثبت شده (Qwen2.5، Llama-3.2، SmolVLM، LLaVA، BGE embeddings).
Vision Moduleپشتیبانی optional از multimodal vision (LLaVA/SmolVLM). در runtime قابل toggle، به‌صورت پیش‌فرض disabled برای save RAM.
Online Modeاتصال optional به Ollama یا هر OpenAI-compatible endpoint (Qwen، GLM، DeepSeek، OpenAI) به‌جای local inference.
MemorySQLite-backed episodic + semantic memory با embedding retrieval، importance decay و consolidation.
PersonalityBig Five core traits + adaptive traits که در طول conversation تکامل پیدا می‌کنن. Relationship state (trust، familiarity، affection).
Emotion10-dimensional emotion vector با stimulus blending، antagonistic suppression و decay. به animation، voice prosody و decision bias map می‌شه.
VoiceWhisper (whisper.cpp / transcribe-cpp) برای speech-to-text، Piper برای text-to-speech. پشتیبانی از زبان فارسی. Push-to-talk با Alt+Q.
AgentGoal-driven autonomous runtime با plan execution، tool dispatch و permission gating.
ToolsOpen application، read file، open browser، clipboard. Path validation و command blocklist.
SecuritySecret redaction در logs، path traversal prevention، dangerous command detection.
Live2D Supportپشتیبانی از مدل‌های Live2D (.moc3) از طریق پلاگین 1102_Live2DAnimation.

🚀 Quick Start

دانلود ریلیز — Download Release

به‌جای build از سورس، می‌تونی ریلیز آماده رو دانلود کنی:

👉 Releases page

دو نوع پکیج هست:

فایلحجمبرای چه
VPet-Ultra-Full.zip~920 MBاولین نصب — کل برنامه + پلاگین AI + داده‌های بازی
VPet-Ultra-Plugin.zip~60 MBآپدیت — فقط پلاگین AI (اگه قبلا Full رو نصب کردی)

Prerequisites

  1. Ollama — دانلود از ollama.com/download
    • بعد از نصب: ollama pull qwen2.5:3b
  2. Windows 10/11 (یا Linux با Wine) برای اجرای WPF
  3. .NET 8 Runtime — دانلود (معمولاً داخل پکیج هست)

مدل‌های AI — AI Models (باید جداگانه دانلود کنی)

برنامه خودش مدل‌ها رو نداره. این فایل‌ها رو دانلود کن و توی پوشه‌های مشخص‌شده بذار:

مدلحجملینک دانلود مستقیممحل قرارگیری
Whisper Medium (STT)~793 MB⬇️ ggml-medium-q8_0.binmodels/whisper/whisper-medium-Q8_0.gguf
Piper Persian TTS~63 MB⬇️ fa_IR-mana-medium.onnxmodels/piper/fa_IR-mana-medium.onnx
Piper TTS Config~1 KB⬇️ fa_IR-mana-medium.onnx.jsonmodels/piper/fa_IR-mana-medium.onnx.json
Qwen2.5 LLMvia Ollamaollama pull qwen2.5:3bOllama manages this

نکته: فایل Whisper رو بعد از دانلود به whisper-medium-Q8_0.gguf تغییر نام بده.

نصب — Installation

  1. VPet-Ultra-Full.zip رو دانلود و از حالت فشرده خارج کن
  2. Ollama رو نصب کن: ollama.com/download
  3. مدل LLM رو بکش: ollama pull qwen2.5:3b
  4. مدل‌های Whisper و Piper رو (از جدول بالا) دانلود و توی پوشه‌های models/whisper/ و models/piper/ بذار
  5. VPet-Simulator.Windows.exe رو اجرا کن
  6. روی دکمه Chat توی تولبار پت کلیک کن
  7. Alt+Q رو نگه دار تا حرف بزنی، رها کن تا بفرسته

Build از سورس — Build from Source

git clone https://github.com/Amirwopi/VPet-Ultra.git
cd VPet-Ultra
dotnet restore
dotnet build

Build روی Linux

dotnet build VPet-Simulator.Windows/VPet-Simulator.Windows.csproj \
  -c Release -p:Platform=x64 -p:EnableWindowsTargeting=true

Test

dotnet test VPet.Cognition.Tests/VPet.Cognition.Tests.csproj -c Release

Debug با CLion

این پروژه C#/.NET هست، اما یک CMakeLists.txt حرفه‌ای هم داره که dotnet CLI رو wrap می‌کنه تا بتونی توی CLion پروژه رو باز کنی، build کنی، اجرا کنی و debug کنی.

# 1. CLion رو باز کن و CMakeLists.txt رو انتخاب کن (File ▸ Open)
# 2. CLion خودش configure می‌کنه (Ninja generator، Debug profile)
# 3. از toolbar Run Configurations رو انتخاب کن:
#      Build All          → dotnet build (کل solution)
#      Restore            → dotnet restore
#      Run VPet.Windows   → اجرای desktop pet (x64 Debug)
#      Run VPet.Solution  → اجرای solution launcher
#      Tests              → build + dotnet test (129 test)
#      Clean              → dotnet clean
#      Publish            → build-local.ps1 (full package)

برای step-through debugging با netcoredbg:

# netcoredbg رو نصب کن
.\scripts\install-netcoredbg.ps1

# بعد توی CLion: Tools ▸ CMake ▸ Reload CMake Project
# targetهای debug-VPet.Windows و debug-VPet.Solution ظاهر می‌شن
CMake TargetDescription
build-alldotnet build کل VPet.sln (restore + build)
restoredotnet restore (NuGet)
clean-alldotnet clean
testdotnet test (129 cognition test)
test-buildbuild + test در یک مرحله
publishbuild-local.ps1 (full package + zip)
build-<project>build تک‌پروژه‌ای (۱۶ پروژه)
run-VPet.Windowsاجرای VPet-Simulator.Windows.exe
run-VPet.Solutionاجرای VPet.Solution.exe
run-VPet.Toolاجرای VPet-Simulator.Tool.exe
debug-VPet.Windowsdebug با netcoredbg (اگر نصب باشه)

Configure

فایل appsettings.json توی output directory. default، Ollama + handy STT + piper TTS هست:

{
  "Cognition": {
    "Enabled": true,
    "Llm": {
      "Provider": "ollama",
      "Endpoint": "http://localhost:11434",
      "Model": "qwen2.5:3b"
    },
    "Voice": {
      "Enabled": true,
      "Stt": {
        "Provider": "handy",
        "ExecutablePath": "transcribe/vpet-transcribe.exe",
        "ModelPath": "models/whisper/whisper-medium-Q8_0.gguf",
        "Language": "fa"
      },
      "Tts": {
        "Provider": "piper",
        "ExecutablePath": "piper/piper/piper.exe",
        "ModelPath": "models/piper/fa_IR-mana-medium.onnx"
      }
    }
  }
}

برای local inference (بدون Ollama):

{
  "Cognition": {
    "Llm": {
      "Provider": "local",
      "Model": "qwen2.5-3b-instruct-q4_k_m",
      "ModelsDirectory": "models",
      "GpuLayerCount": 0,
      "ContextSize": 4096
    }
  }
}

🏗️ Architecture

ComponentDescription
VPet-Simulator.CoreCore engine: animation، graph، display، save system
VPet-Simulator.Windows.InterfaceInterface definitions: IMainWindow، IModInfo، ExtensionFunction
VPet-Simulator.WindowsWPF app: MainWindow، WinDesign windows، MOD system
VPet.CognitionAI layer: LLM، memory، personality، emotion، voice، agent
mod/0000_coreCore game data: pets، food، themes، images
mod/1102_Live2DAnimationLive2D model support plugin

🔧 Steam Dependency Removal

این fork تمام وابستگی‌های Steam رو حذف کرده:

RemovedStatus
Facepunch.Steamworks NuGet package✅ حذف شد
steam_api.dll / steam_api64.dll✅ حذف شد
Steam Workshop loading✅ حذف شد (فقط local mod path)
Steam Cloud saves✅ حذف شد
Steam Multiplayer (Lobby/P2P)✅ حذف کامل
Steam Leaderboards/Rankings✅ حذف شد
Steam Rich Presence✅ حذف شد
Steam Screenshots✅ حذف شد
Mod publishing به Workshop✅ حذف شد

IsSteamUser property به‌صورت false ثابت نگه‌داشته شده برای backward compatibility.

📦 Live2D Setup

پلاگین Live2D از قبل در mod/1102_Live2DAnimation نصب شده. فقط نیاز به Live2DCubismCore.dll:

  1. به Live2D SDK بروید
  2. Cubism Native SDK را دانلود کنید
  3. Live2DCubismCore.dll را کنار VPet.exe یا در mod/1102_Live2DAnimation/plugin/ قرار دهید

📋 Documentation

  • INSTALL.md — راهنمای نصب صفر تا صد (فارسی)
  • Changelog.md — تغییرات
  • CONTRIBUTING.md — راهنمای مشارکت
  • TESTING.md — راهنمای تست
  • wiki/ — مستندات کامل (Architecture، Build، Configuration، AI Models، Live2D، Mod System، Steam Removal، Troubleshooting، FAQ)

🤝 Contributing

مشارکت‌ها welcome هستند! ببینید CONTRIBUTING.md.

📝 License

این پروژه تحت Apache License 2.0 است. ببینید LICENSE.

پروژه‌ی اصلی: VPet توسط @LorisYounger.

🙏 Acknowledgments

  • LorisYounger — سازنده‌ی پروژه‌ی اصلی VPet
  • LLamaSharp — .NET binding برای llama.cpp
  • Live2D — Live2D Cubism SDK
  • OpenTK — OpenGL برای .NET

⭐ Star History

اگر پروژه مفید بود، Star بدهید!

Star History Chart

ai-companion
csharp
desktop-assistant
desktop-pet
dotnet
dotnet-8
live2d
llama
llm
offline-ai
virtual-pet
wpf

Amirwopi/VPet-Ultra

Offline-First AI Desktop Companion — VPet fork with LLM inference, memory, personality, emotion, voice, and agent capabilities. Steam-free standalone mode.

C#

3

60 commits

updated Sep 28, 2026

See the code

README

🐾 VPet-Ultra

هوش مصنوعی Desktop Companion آفلاین

VPet رو به یک companion هوشمند تبدیل می‌کنه — با LLM inference درون‌پروسه‌ای، memory، personality، emotion، voice و agent capabilities. همه آفلاین، بدون نیاز به server خارجی.

Build License .NET Platform PRs Welcome


نکته: این fork از پروژه‌ی اصلی VPet، وابستگی‌های Steam کاملاً حذف شده و برنامه به‌صورت standalone اجرا می‌شه. هیچ نیازی به Steam client یا Steam SDK نیست.

✨ Features

FeatureDescription
In-Process LLM Inferenceمدل‌های GGUF مستقیماً داخل app اجرا می‌شن via LLamaSharp (llama.cpp). بدون Ollama، بدون Python، بدون server. CPU و GPU پشتیبانی می‌شن.
Model Managerbrowse، download، install، update و delete مدل‌های GGUF از HuggingFace. 9 مدل curated از قبل ثبت شده (Qwen2.5، Llama-3.2، SmolVLM، LLaVA، BGE embeddings).
Vision Moduleپشتیبانی optional از multimodal vision (LLaVA/SmolVLM). در runtime قابل toggle، به‌صورت پیش‌فرض disabled برای save RAM.
Online Modeاتصال optional به Ollama یا هر OpenAI-compatible endpoint (Qwen، GLM، DeepSeek، OpenAI) به‌جای local inference.
MemorySQLite-backed episodic + semantic memory با embedding retrieval، importance decay و consolidation.
PersonalityBig Five core traits + adaptive traits که در طول conversation تکامل پیدا می‌کنن. Relationship state (trust، familiarity، affection).
Emotion10-dimensional emotion vector با stimulus blending، antagonistic suppression و decay. به animation، voice prosody و decision bias map می‌شه.
VoiceWhisper (whisper.cpp / transcribe-cpp) برای speech-to-text، Piper برای text-to-speech. پشتیبانی از زبان فارسی. Push-to-talk با Alt+Q.
AgentGoal-driven autonomous runtime با plan execution، tool dispatch و permission gating.
ToolsOpen application، read file، open browser، clipboard. Path validation و command blocklist.
SecuritySecret redaction در logs، path traversal prevention، dangerous command detection.
Live2D Supportپشتیبانی از مدل‌های Live2D (.moc3) از طریق پلاگین 1102_Live2DAnimation.

🚀 Quick Start

دانلود ریلیز — Download Release

به‌جای build از سورس، می‌تونی ریلیز آماده رو دانلود کنی:

👉 Releases page

دو نوع پکیج هست:

فایلحجمبرای چه
VPet-Ultra-Full.zip~920 MBاولین نصب — کل برنامه + پلاگین AI + داده‌های بازی
VPet-Ultra-Plugin.zip~60 MBآپدیت — فقط پلاگین AI (اگه قبلا Full رو نصب کردی)

Prerequisites

  1. Ollama — دانلود از ollama.com/download
    • بعد از نصب: ollama pull qwen2.5:3b
  2. Windows 10/11 (یا Linux با Wine) برای اجرای WPF
  3. .NET 8 Runtime — دانلود (معمولاً داخل پکیج هست)

مدل‌های AI — AI Models (باید جداگانه دانلود کنی)

برنامه خودش مدل‌ها رو نداره. این فایل‌ها رو دانلود کن و توی پوشه‌های مشخص‌شده بذار:

مدلحجملینک دانلود مستقیممحل قرارگیری
Whisper Medium (STT)~793 MB⬇️ ggml-medium-q8_0.binmodels/whisper/whisper-medium-Q8_0.gguf
Piper Persian TTS~63 MB⬇️ fa_IR-mana-medium.onnxmodels/piper/fa_IR-mana-medium.onnx
Piper TTS Config~1 KB⬇️ fa_IR-mana-medium.onnx.jsonmodels/piper/fa_IR-mana-medium.onnx.json
Qwen2.5 LLMvia Ollamaollama pull qwen2.5:3bOllama manages this

نکته: فایل Whisper رو بعد از دانلود به whisper-medium-Q8_0.gguf تغییر نام بده.

نصب — Installation

  1. VPet-Ultra-Full.zip رو دانلود و از حالت فشرده خارج کن
  2. Ollama رو نصب کن: ollama.com/download
  3. مدل LLM رو بکش: ollama pull qwen2.5:3b
  4. مدل‌های Whisper و Piper رو (از جدول بالا) دانلود و توی پوشه‌های models/whisper/ و models/piper/ بذار
  5. VPet-Simulator.Windows.exe رو اجرا کن
  6. روی دکمه Chat توی تولبار پت کلیک کن
  7. Alt+Q رو نگه دار تا حرف بزنی، رها کن تا بفرسته

Build از سورس — Build from Source

git clone https://github.com/Amirwopi/VPet-Ultra.git
cd VPet-Ultra
dotnet restore
dotnet build

Build روی Linux

dotnet build VPet-Simulator.Windows/VPet-Simulator.Windows.csproj \
  -c Release -p:Platform=x64 -p:EnableWindowsTargeting=true

Test

dotnet test VPet.Cognition.Tests/VPet.Cognition.Tests.csproj -c Release

Debug با CLion

این پروژه C#/.NET هست، اما یک CMakeLists.txt حرفه‌ای هم داره که dotnet CLI رو wrap می‌کنه تا بتونی توی CLion پروژه رو باز کنی، build کنی، اجرا کنی و debug کنی.

# 1. CLion رو باز کن و CMakeLists.txt رو انتخاب کن (File ▸ Open)
# 2. CLion خودش configure می‌کنه (Ninja generator، Debug profile)
# 3. از toolbar Run Configurations رو انتخاب کن:
#      Build All          → dotnet build (کل solution)
#      Restore            → dotnet restore
#      Run VPet.Windows   → اجرای desktop pet (x64 Debug)
#      Run VPet.Solution  → اجرای solution launcher
#      Tests              → build + dotnet test (129 test)
#      Clean              → dotnet clean
#      Publish            → build-local.ps1 (full package)

برای step-through debugging با netcoredbg:

# netcoredbg رو نصب کن
.\scripts\install-netcoredbg.ps1

# بعد توی CLion: Tools ▸ CMake ▸ Reload CMake Project
# targetهای debug-VPet.Windows و debug-VPet.Solution ظاهر می‌شن
CMake TargetDescription
build-alldotnet build کل VPet.sln (restore + build)
restoredotnet restore (NuGet)
clean-alldotnet clean
testdotnet test (129 cognition test)
test-buildbuild + test در یک مرحله
publishbuild-local.ps1 (full package + zip)
build-<project>build تک‌پروژه‌ای (۱۶ پروژه)
run-VPet.Windowsاجرای VPet-Simulator.Windows.exe
run-VPet.Solutionاجرای VPet.Solution.exe
run-VPet.Toolاجرای VPet-Simulator.Tool.exe
debug-VPet.Windowsdebug با netcoredbg (اگر نصب باشه)

Configure

فایل appsettings.json توی output directory. default، Ollama + handy STT + piper TTS هست:

{
  "Cognition": {
    "Enabled": true,
    "Llm": {
      "Provider": "ollama",
      "Endpoint": "http://localhost:11434",
      "Model": "qwen2.5:3b"
    },
    "Voice": {
      "Enabled": true,
      "Stt": {
        "Provider": "handy",
        "ExecutablePath": "transcribe/vpet-transcribe.exe",
        "ModelPath": "models/whisper/whisper-medium-Q8_0.gguf",
        "Language": "fa"
      },
      "Tts": {
        "Provider": "piper",
        "ExecutablePath": "piper/piper/piper.exe",
        "ModelPath": "models/piper/fa_IR-mana-medium.onnx"
      }
    }
  }
}

برای local inference (بدون Ollama):

{
  "Cognition": {
    "Llm": {
      "Provider": "local",
      "Model": "qwen2.5-3b-instruct-q4_k_m",
      "ModelsDirectory": "models",
      "GpuLayerCount": 0,
      "ContextSize": 4096
    }
  }
}

🏗️ Architecture

ComponentDescription
VPet-Simulator.CoreCore engine: animation، graph، display، save system
VPet-Simulator.Windows.InterfaceInterface definitions: IMainWindow، IModInfo، ExtensionFunction
VPet-Simulator.WindowsWPF app: MainWindow، WinDesign windows، MOD system
VPet.CognitionAI layer: LLM، memory، personality، emotion، voice، agent
mod/0000_coreCore game data: pets، food، themes، images
mod/1102_Live2DAnimationLive2D model support plugin

🔧 Steam Dependency Removal

این fork تمام وابستگی‌های Steam رو حذف کرده:

RemovedStatus
Facepunch.Steamworks NuGet package✅ حذف شد
steam_api.dll / steam_api64.dll✅ حذف شد
Steam Workshop loading✅ حذف شد (فقط local mod path)
Steam Cloud saves✅ حذف شد
Steam Multiplayer (Lobby/P2P)✅ حذف کامل
Steam Leaderboards/Rankings✅ حذف شد
Steam Rich Presence✅ حذف شد
Steam Screenshots✅ حذف شد
Mod publishing به Workshop✅ حذف شد

IsSteamUser property به‌صورت false ثابت نگه‌داشته شده برای backward compatibility.

📦 Live2D Setup

پلاگین Live2D از قبل در mod/1102_Live2DAnimation نصب شده. فقط نیاز به Live2DCubismCore.dll:

  1. به Live2D SDK بروید
  2. Cubism Native SDK را دانلود کنید
  3. Live2DCubismCore.dll را کنار VPet.exe یا در mod/1102_Live2DAnimation/plugin/ قرار دهید

📋 Documentation

  • INSTALL.md — راهنمای نصب صفر تا صد (فارسی)
  • Changelog.md — تغییرات
  • CONTRIBUTING.md — راهنمای مشارکت
  • TESTING.md — راهنمای تست
  • wiki/ — مستندات کامل (Architecture، Build، Configuration، AI Models، Live2D، Mod System، Steam Removal، Troubleshooting، FAQ)

🤝 Contributing

مشارکت‌ها welcome هستند! ببینید CONTRIBUTING.md.

📝 License

این پروژه تحت Apache License 2.0 است. ببینید LICENSE.

پروژه‌ی اصلی: VPet توسط @LorisYounger.

🙏 Acknowledgments

  • LorisYounger — سازنده‌ی پروژه‌ی اصلی VPet
  • LLamaSharp — .NET binding برای llama.cpp
  • Live2D — Live2D Cubism SDK
  • OpenTK — OpenGL برای .NET

⭐ Star History

اگر پروژه مفید بود، Star بدهید!

Star History Chart

ai-companion
csharp
desktop-assistant
desktop-pet
dotnet
dotnet-8
live2d
llama
llm
offline-ai
virtual-pet
wpf

Languages

C#

93.2%

HTML

4.8%

CMake

1.1%