‹ Reports
The Dispatch

OSS Report: dnhkng/GlaDOS


GLaDOS Project Advances with New UI, Performance Optimizations

The GLaDOS Personality Core project aims to create a real-life version of the AI from the Portal game series, combining voice generation, language models, and planned hardware components. Recent development has focused on improving cross-platform compatibility, introducing a new user interface, and optimizing performance.

Significant recent progress includes the addition of a new UI based on Portal 2 end credits (PR #67), performance optimizations for GPU usage (PR #56), and enhanced configurability for voice modules (PR #50). These changes represent major steps towards a more user-friendly, efficient, and customizable GLaDOS implementation.

Recent Activity

The project's issues and PRs indicate a focus on platform compatibility, performance optimization, and user experience enhancement. Cross-platform support improvements (issues #30, #28, #23) address crucial accessibility concerns. Performance issues like high CPU usage during idle listening (issue #43) are being tackled. Voice quality and interruption handling (issues #32, #31) remain key areas for improvement to achieve a seamless GLaDOS experience.

Recent development team activities:

  1. David (dnhkng):

    • Merged PR #70 adding macOS installation instructions
    • Updated Llama and Whisper components
    • Added FUNDING.yml
    • Merged multiple PRs from other contributors
  2. Ghostboo-124:

    • Updated README.md with macOS installation instructions
    • Edited batch files for Windows installation and startup
  3. Lawrence Akka (lawrenceakka):

    • Contributed to UI development
    • Improved speech functionality
    • Reorganized startup method
  4. Vaibhav Patel (vp2305):

    • Enhanced support for changing voice modules
    • Updated TTS file and glados_config for better readability
  5. Judtoff:

    • Added support for GPU flags --Split-mode row and --Flash-attn

Of Note

  1. The introduction of a new UI (PRs #70 and #67) marks a significant shift from a purely command-line interface to a more user-friendly experience.

  2. Performance optimizations, particularly for GPU usage (PR #56), demonstrate a commitment to achieving the project's low-latency goals.

  3. The project's cross-platform focus is evident in recent PRs and issues, with significant efforts to improve compatibility across Windows, macOS, and Linux.

  4. While software development is active, there's been less recent focus on the planned hardware components, suggesting a current prioritization of AI and interaction aspects.

  5. The project maintains an active community, with multiple contributors working on different aspects and frequent updates to documentation and installation instructions.

Quantified Reports

Quantify commits



Quantified Commit Activity Over 30 Days

Developer Avatar Branches PRs Commits Files Changes
Otto (Skyrion9) 0 2/0/0 0 0 0

PRs: created by that dev and opened/merged/closed-unmerged during the period

Quantify Issues



Recent GitHub Issues Activity

Timespan Opened Closed Comments Labeled Milestones
7 Days 0 0 0 0 0
30 Days 3 0 2 3 1
90 Days 10 5 43 10 1
All Time 48 34 - - -

Like all software activity quantification, these numbers are imperfect but sometimes useful. Comments, Labels, and Milestones refer to those issues opened in the timespan in question.

Detailed Reports

Report On: Fetch issues



Recent Activity Analysis

The GLaDOS project has seen active development and community engagement recently. The last commit was made just 3 days ago, indicating ongoing work and improvements. With 142 total commits, the project demonstrates consistent progress and refinement.

Several issues stand out as particularly significant:

  1. Cross-platform compatibility (#30, #28, #23): There have been ongoing efforts to improve support for Windows and address platform-specific library issues. This is crucial for broadening the project's accessibility.

  2. Performance optimization (#43): Reports of high CPU usage during idle listening highlight the need for efficiency improvements, especially for resource-constrained systems.

  3. Voice quality and interruption handling (#32, #31): Users have reported issues with voice interruptions and response quality, which are critical for achieving a seamless GLaDOS experience.

  4. Hardware development (#66, #45): There's interest in developing the physical embodiment of GLaDOS, including discussions on motor controllers and even humorously considering a "PotatOS" implementation.

  5. Model and backend flexibility (#52, #24): Discussions about integrating different language models and TTS systems show a desire for versatility in the AI components.

These issues reflect the project's multifaceted nature, combining software, hardware, and AI challenges. The community seems engaged in both troubleshooting and proposing enhancements, indicating a healthy open-source development environment.

Issue Details

Most recently created issues:

  1. #80: "MacOS: No such file or directory: PosixPath('/Users/user/repos/GlaDOS/submodules/llama.cpp/llama-server')" - Open, created 8 days ago
  2. #79: "ggml_metal_init: error: Error Domain=MTLLibraryErrorDomain Code=3 "program_source:3:10: fatal error: 'ggml-common.h' file not found" - Open, created 17 days ago
  3. #78: "[Feature Request] Additional Voices: Wheatley, etc." - Open, created 25 days ago

Most recently updated issues:

  1. #80: As above - Updated 8 days ago
  2. #79: As above - Updated 17 days ago
  3. #73: "Can't connect to external LLM servers" - Open, updated 36 days ago

These recent issues highlight ongoing work on macOS compatibility, model integration challenges, and feature requests for voice expansion. The project appears to be actively addressing platform-specific issues while also considering new features to enhance the GLaDOS experience.

Report On: Fetch pull requests



Overview

The GLaDOS project has seen significant development activity with 28 closed pull requests, ranging from minor documentation updates to major feature additions and performance improvements.

Summary of Pull Requests

#82: Fixed UI encoding issues and added a batch script for Windows startup. #81: Added client-side sampling parameter configuration for improved LLM control. #77: Updated Mac installation script to use correct make target and improve compilation times. #76: Fixed OpenAI API incompatibility issues. #70: Added a UI application using the Textual library, enhancing the user interface. #67: Introduced a new UI based on Portal 2 end credits, requiring the Textual package. #65: Refactored server startup into a separate method for better modularity. #64: Updated path construction for llama.cpp server to reflect repository changes. #62: Improved logging system to redirect libwhisper output to loguru. #61: Enhanced Windows batch files for better readability and execution. #59: Removed redundant code related to voice recognition settings. #57: Updated README with clearer Mac compilation instructions and fixed typos. #56: Added support for GPU flags to improve performance with multiple GPUs. #54: Improved Mac build instructions in README. #51: Fixed performance issues when using CUDA provider for text-to-speech. #50: Added support for changing voice modules and improved configuration flexibility. #39: Made the 'Interruptable' feature optional to prevent voice detection loops. #36: Introduced a simplified Windows installer and startup script. #33: Fixed segfault issues with eSpeak-ng and improved phonemizer flexibility. #29: Added initial Dockerfile for running GLaDOS in Docker containers. #25: Introduced YAML-based configuration and improved interfaces for better compatibility.

Analysis of Pull Requests

The pull requests demonstrate a strong focus on improving cross-platform compatibility, particularly for Windows and macOS users. This is evident in PRs #82, #77, #36, and #29, which address installation and startup processes for different operating systems. The project maintainers are clearly committed to making GLaDOS accessible to a wide range of users.

Performance optimization has been a key theme, as seen in PRs #81, #56, and #51. These changes aim to improve the efficiency of the language model and GPU utilization, which is crucial for the project's goal of achieving low-latency responses.

The introduction of a new UI (PRs #70 and #67) represents a significant step forward in user experience, moving beyond a purely command-line interface. This addition could make the project more appealing to a broader audience and provide a more immersive GLaDOS experience.

Flexibility and configurability have been enhanced through PRs like #81, #50, and #25. These changes allow users to customize various aspects of GLaDOS's behavior, from sampling parameters to voice modules, making the project more adaptable to different use cases and preferences.

There's also a clear effort to improve code quality and maintainability, as evidenced by PRs #65, #59, and #25. The introduction of YAML-based configuration and better interface abstractions suggests a move towards a more modular and easily maintainable codebase.

The project is actively addressing compatibility issues with external libraries and APIs, as seen in PRs #76 and #62. This demonstrates a commitment to keeping the project up-to-date with changes in the broader AI and software ecosystem.

One area that seems to have received less attention is the hardware aspect of the project. While there are mentions of future plans for physical embodiment, the recent pull requests focus primarily on software improvements. This could indicate that the project is currently prioritizing the AI and interaction aspects before moving on to hardware integration.

Overall, the pull request history shows a project that is rapidly evolving, with a strong focus on usability, performance, and flexibility. The maintainers appear responsive to user feedback and are actively working to improve both the core functionality and the user experience of GLaDOS.

Report On: Fetch commits



Development Team and Recent Activity

Team Members and Recent Contributions

  1. David (dnhkng)

    • Merged PR #70 adding macOS installation instructions
    • Updated Llama and Whisper components
    • Added FUNDING.yml
    • Merged multiple PRs from other contributors
    • Added configuration updates and bug fixes
  2. Ghostboo-124

    • Updated README.md with macOS installation instructions
    • Edited batch files for Windows installation and startup
  3. Lawrence Akka (lawrenceakka)

    • Contributed to UI development
    • Improved speech functionality
    • Reorganized startup method
    • Updated logging for libwhisper output
  4. Vaibhav Patel (vp2305)

    • Enhanced support for changing voice modules
    • Updated TTS file and glados_config for better readability
    • Implemented ability to modify speaker ID from config file
  5. Judtoff

    • Added support for GPU flags --Split-mode row and --Flash-attn
  6. tn-17

    • Fixed performance issues when using CUDA provider
    • Added instructions for using Python 3.10
  7. Magistr (umag)

    • Contributed to Dockerfile development
    • Added WSL2 guide

Patterns and Themes

  1. Active Development: The project has seen consistent activity, with the most recent commit 48 days ago.

  2. Collaborative Effort: Multiple team members are actively contributing to different aspects of the project.

  3. Focus on Compatibility: Recent work includes improvements for various platforms (Windows, macOS, Linux) and different Python versions.

  4. Performance Optimization: Efforts to improve speech quality, GPU support, and CUDA performance.

  5. Documentation Improvements: Several commits focused on updating the README and installation instructions.

  6. UI Development: Recent work on implementing a user interface.

  7. Configuration Enhancements: Updates to configuration files for better customization and ease of use.

  8. Ongoing Refactoring: Code reorganization and cleanup to improve maintainability.

Conclusions

The GLaDOS project is under active development with a diverse team contributing to various aspects. Recent focus has been on improving cross-platform compatibility, performance optimization, and user experience. The project is evolving with new features like UI implementation while also refining existing functionality and documentation.