An open-source 3D FPS aim training application built with modern C++ architecture, Qt6, and VTK rendering.
View API Documentation | Build Instructions
XAimAssist provides a modular, extensible framework for first-person shooter aim training with real-time performance tracking, customizable training modes, and comprehensive statistics analysis. The application features clean separation of concerns across multiple architectural layers, enabling maintainability and testability.
- Multiple built-in modes: Static Sphere, GridShot, Next Shot, Tracking, Strafing
- Configurable session parameters (duration, distance, target properties)
- Real-time performance metrics and scoring
- Session pause/resume capability
- Customizable target appearance (color, size, resolution)
- Real-time statistics: accuracy, reaction time, shots per second
- Session history with per-mode performance aggregation
- Performance tier classification (best, above average, average, below average, worst)
- Frame-time monitoring and diagnostics
- SQLite-backed profile management with per-profile settings isolation
- Session history storage with queryable metrics
- Automatic schema versioning and migrations
- Legacy INI configuration import (one-time)
- Modern QML-based responsive UI with five screens
- Real-time metric visualization during training
- Dynamic light/dark theme system harmonized with target color
- Multi-language support (English, Turkish)
- Physical sensitivity model (cm/360 + DPI)
- Raw input support for unaccelerated mouse movement
- Configurable yaw/pitch multipliers and Y-axis inversion
- FPS-style mouse capture
Download the latest release for your platform from GitHub Releases.
See BUILD.md for detailed build instructions for Linux, Windows, and macOS.
XAimAssist/
├── src/
│ ├── CMakeLists.txt
│ ├── app/ # Application composition and lifecycle
│ ├── core/ # EventBus, Logger, FrameClock
│ ├── engine/ # VTK rendering abstraction
│ ├── world/ # Entity-Component-System
│ ├── gameplay/ # Game modes and target system
│ ├── input/ # Input handling and sensitivity
│ ├── stats/ # Statistics tracking
│ ├── persistence/ # SQLite persistence layer
│ └── ui/ # QML interface and view models
├── CMakeLists.txt
├── BUILD.md # Build instructions
└── README.md # This file
app: Application lifecycle, dependency injection, Qt/VTK integration.
core: EventBus (pub/sub), Logger, FrameClock (fixed timestep).
engine: VTK abstraction (Engine, RenderContext, Scene, CameraBackend).
world: ECS (World, Transform/Render/Collider components, render sync).
gameplay: Game mode framework, TargetSystem, built-in modes.
input: InputManager, SensitivityModel (cm/360 calculations).
stats: StatTracker, performance tier classification.
persistence: SQLite database, ProfileManager, SessionHistory, SettingsManager.
ui: QML views, UiViewModel bridge, theme/localization.
Full API documentation is available at xaprier.github.io/XAimAssist.
Generate documentation locally:
doxygen Doxyfile
xdg-open docs/html/index.html
This project is licensed under the GNU General Public License v3.0. See LICENSE for details.
Contributions are welcome! Please:
- Fork the repository and create a feature branch
- Follow existing code style
- Add Doxygen documentation for public APIs
- Test in both Debug and Release builds
- Submit a pull request with clear description
See BUILD.md file for build instructions and requirements.