Skip to content

v3.0-release

Choose a tag to compare

@Xviizyk Xviizyk released this 02 May 17:50
· 6 commits to main since this release

Release v3.0.0: The Modular Evolution

This release marks the most significant transformation of SimpleVirtualAvatar to date. Version 3.0.0 introduces a complete architectural overhaul, a modernized UI experience, and a fully platform-agnostic core designed for high-performance virtual expression.

🛠 Key Highlights

  • Architectural Rebirth: The entire source tree has been reorganized into a modular hierarchy (core, graphics, system, ui, utils). Combined with a transition to snake_case API naming and C++20 standards, the codebase is now cleaner, faster, and more maintainable.
  • Next-Gen UI & UX: Out with floating buttons, in with a sleek, semi-transparent sidebar. A new State Badge System and dynamic volume bars provide real-time visual feedback (Idle, Talk, Scream), while improved DPI Awareness ensures the interface looks sharp on any display.
  • Universal OS Layer: Legacy Windows dependencies are gone. The new OsUtils layer provides native deep-system integration for Windows (DWM), Linux (X11), and macOS (Cocoa), enabling features like true window transparency across all platforms.
  • Professional Build Pipeline: Now requiring CMake 3.31+, the build system is strictly target-based. With CPM.cmake handling dependencies and integrated static analysis, the project adheres to the highest modern C++ development standards.

📋 Full Change Summary

Added

  • Interface: Sleek sidebar and menu bar system replacing legacy UI elements.
  • Visuals: Interactive "State Badges" and color-coded dynamic volume bars.
  • Flexibility: Dynamic DPI scaling and refined "Shake" effects with configurable trigger modes.
  • Robustness: Automated directory creation for assets/shaders and absolute path resolution to prevent loading errors.
  • Developer Experience: Custom ASCII art logo in CMake and strict compiler warnings (-Wall, -Wextra) for code safety.

Changed

  • Engine Core: Upgraded to C++20 and modernized the ConfigManager to use platform-specific paths (like %APPDATA%).
  • API Style: Standardized all internal methods to snake_case for consistency.
  • Build Logic: Optimized MSVC linking to hide the console window in Release builds and implemented GNUInstallDirs.
  • Performance: VSync is now forced in Release mode to eliminate screen tearing and reduce GPU strain.

Fixed

  • Stability: Resolved X11 linker errors on Linux and fixed flickering transparency issues on Windows.
  • Memory: Eliminated potential leaks in the Renderer by validating window contexts during destruction.

Removed

  • Bloat: Deleted the external/ directory and .gitmodules in favor of automated package management.
  • Legacy: Fully stripped out WinUtils.cpp and all remaining Win32-only header dependencies.

For a detailed technical breakdown, please refer to the CHANGELOG.md.