# nul1ex/catalyst architecture

> Architecture diagram of the GitHub repository nul1ex/catalyst, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/nul1ex/catalyst
- Repository: https://github.com/nul1ex/catalyst

## Overview

Catalyst appears to be a Windows game-overlay application with combat assistance, ESP, miscellaneous gameplay features, a configurable menu, and rendering. The likely user workflow is configuring features in the menu and viewing their effects in an overlay, supported by game-state collection and feature modules. The tree also shows a substantial systems layer for entities, geometry, view state, schemas, and related data. README provides no feature detail, and most application sources were not excerpted, so runtime call relationships cannot be confirmed; only explicit external-library references are connected below.

Main entry points: [`catalyst/project/core/systems/impl`](https://github.com/nul1ex/catalyst/tree/main/catalyst/project/core/systems/impl) (Game-state systems), [`catalyst/project/core/render/render.cpp`](https://github.com/nul1ex/catalyst/blob/main/catalyst/project/core/render/render.cpp) (Overlay renderer), [`catalyst/project/external/zdraw/zdraw.cpp`](https://github.com/nul1ex/catalyst/blob/main/catalyst/project/external/zdraw/zdraw.cpp) (D3D drawing), [`catalyst/project/core/features/impl/combat/legit.cpp`](https://github.com/nul1ex/catalyst/blob/main/catalyst/project/core/features/impl/combat/legit.cpp) (Combat assistance)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_runtime["Runtime and systems"]
  node_entry["Application entry<br/>[entry.cpp]"]
  node_threads["Background threads<br/>[threads.cpp]"]
  node_systems["Game-state systems"]
  node_bvh["Spatial BVH<br/>[bvh.cpp]"]
  node_collector["Data collector<br/>[collector.cpp]"]
  node_entities["Entity tracking<br/>[entities.cpp]"]
  node_icons["Icon handling<br/>[icons.cpp]"]
  node_settings["Feature settings<br/>[settings.hpp]"]
end

subgraph group_features["Gameplay features"]
  node_combat["Combat assistance<br/>[legit.cpp]"]
  node_combat_shared["Combat helpers<br/>[shared.cpp]"]
  node_player_esp["Player ESP<br/>[player.cpp]"]
  node_item_esp["Item ESP<br/>[item.cpp]"]
  node_projectile_esp["Projectile ESP<br/>[projectile.cpp]"]
  node_grenades["Grenade features<br/>[grenades.cpp]"]
  node_impacts["Impact features<br/>[impacts.cpp]"]
end

subgraph group_presentation["Interface and rendering"]
  node_menu["Configuration menu<br/>[menu.cpp]"]
  node_render["Overlay renderer<br/>[render.cpp]"]
end

subgraph group_thirdparty["Bundled libraries"]
  node_zui["Immediate UI<br/>[zui.cpp]"]
  node_zdraw["D3D drawing<br/>[zdraw.cpp]"]
  node_shaders["Rendering shaders<br/>[shaders.hpp]"]
  node_font["Embedded Inter font<br/>[inter.hpp]"]
  node_nanosvg["NanoSVG parser<br/>[nanosvg.h]"]
  node_nanosvg_raster["NanoSVG rasterizer<br/>[nanosvgrast.h]"]
  node_lz4["LZ4 compression<br/>[lz4.c]"]
  node_lz4_header["LZ4 API<br/>[lz4.h]"]
  node_dense["Dense hash containers"]
end

node_user(("Player"))

node_zui -->|"uses drawing API"| node_zdraw
node_zdraw -->|"uses shaders"| node_shaders
node_zdraw -->|"includes font"| node_font
node_zdraw -->|"uses SVG support"| node_nanosvg
node_nanosvg_raster -->|"uses parser types"| node_nanosvg
node_lz4 -->|"implements API"| node_lz4_header
node_zdraw -->|"includes containers"| node_dense
node_user -.->|"starts application"| node_entry
node_menu -.->|"configures features"| node_settings
node_systems -.->|"provides game state"| node_combat
node_systems -.->|"provides game state"| node_player_esp
node_systems -.->|"provides game state"| node_item_esp
node_systems -.->|"provides game state"| node_projectile_esp
node_systems -.->|"provides game state"| node_grenades
node_systems -.->|"provides game state"| node_impacts
node_combat -.->|"contributes overlay"| node_render
node_player_esp -.->|"contributes overlay"| node_render
node_item_esp -.->|"contributes overlay"| node_render
node_projectile_esp -.->|"contributes overlay"| node_render
node_grenades -.->|"contributes overlay"| node_render
node_impacts -.->|"contributes overlay"| node_render

click node_entry "https://github.com/nul1ex/catalyst/blob/main/catalyst/project/entry.cpp"
click node_threads "https://github.com/nul1ex/catalyst/blob/main/catalyst/project/core/threads/threads.cpp"
click node_systems "https://github.com/nul1ex/catalyst/tree/main/catalyst/project/core/systems/impl"
click node_bvh "https://github.com/nul1ex/catalyst/blob/main/catalyst/project/core/systems/impl/bvh.cpp"
click node_collector "https://github.com/nul1ex/catalyst/blob/main/catalyst/project/core/systems/impl/collector.cpp"
click node_entities "https://github.com/nul1ex/catalyst/blob/main/catalyst/project/core/systems/impl/entities.cpp"
click node_icons "https://github.com/nul1ex/catalyst/blob/main/catalyst/project/core/systems/impl/icons.cpp"
click node_settings "https://github.com/nul1ex/catalyst/blob/main/catalyst/project/core/settings.hpp"
click node_combat "https://github.com/nul1ex/catalyst/blob/main/catalyst/project/core/features/impl/combat/legit.cpp"
click node_combat_shared "https://github.com/nul1ex/catalyst/blob/main/catalyst/project/core/features/impl/combat/shared.cpp"
click node_player_esp "https://github.com/nul1ex/catalyst/blob/main/catalyst/project/core/features/impl/esp/player.cpp"
click node_item_esp "https://github.com/nul1ex/catalyst/blob/main/catalyst/project/core/features/impl/esp/item.cpp"
click node_projectile_esp "https://github.com/nul1ex/catalyst/blob/main/catalyst/project/core/features/impl/esp/projectile.cpp"
click node_grenades "https://github.com/nul1ex/catalyst/blob/main/catalyst/project/core/features/impl/misc/grenades.cpp"
click node_impacts "https://github.com/nul1ex/catalyst/blob/main/catalyst/project/core/features/impl/misc/impacts.cpp"
click node_menu "https://github.com/nul1ex/catalyst/blob/main/catalyst/project/core/menu/menu.cpp"
click node_render "https://github.com/nul1ex/catalyst/blob/main/catalyst/project/core/render/render.cpp"
click node_zui "https://github.com/nul1ex/catalyst/blob/main/catalyst/project/external/zdraw/zui/zui.cpp"
click node_zdraw "https://github.com/nul1ex/catalyst/blob/main/catalyst/project/external/zdraw/zdraw.cpp"
click node_shaders "https://github.com/nul1ex/catalyst/blob/main/catalyst/project/external/zdraw/external/shaders/shaders.hpp"
click node_font "https://github.com/nul1ex/catalyst/blob/main/catalyst/project/external/zdraw/external/fonts/inter.hpp"
click node_nanosvg "https://github.com/nul1ex/catalyst/blob/main/catalyst/project/external/nanosvg/x/nanosvg.h"
click node_nanosvg_raster "https://github.com/nul1ex/catalyst/blob/main/catalyst/project/external/nanosvg/x/nanosvgrast.h"
click node_lz4 "https://github.com/nul1ex/catalyst/blob/main/catalyst/project/external/lz4/lz4.c"
click node_lz4_header "https://github.com/nul1ex/catalyst/blob/main/catalyst/project/external/lz4/lz4.h"
click node_dense "https://github.com/nul1ex/catalyst/blob/main/catalyst/project/external/zdraw/external/unordered_dense.hpp"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_entry,node_threads,node_systems,node_bvh,node_collector,node_entities,node_icons,node_settings toneBlue
class node_combat,node_combat_shared,node_player_esp,node_item_esp,node_projectile_esp,node_grenades,node_impacts toneAmber
class node_menu,node_render toneMint
class node_zui,node_zdraw,node_shaders,node_font,node_nanosvg,node_nanosvg_raster,node_lz4,node_lz4_header,node_dense toneRose
class node_user toneIndigo
```

## Components

### Runtime and systems

- [Application entry](https://github.com/nul1ex/catalyst/blob/main/catalyst/project/entry.cpp): `catalyst/project/entry.cpp`
- [Background threads](https://github.com/nul1ex/catalyst/blob/main/catalyst/project/core/threads/threads.cpp): `catalyst/project/core/threads/threads.cpp`
- [Game-state systems](https://github.com/nul1ex/catalyst/tree/main/catalyst/project/core/systems/impl): `catalyst/project/core/systems/impl`
- [Spatial BVH](https://github.com/nul1ex/catalyst/blob/main/catalyst/project/core/systems/impl/bvh.cpp): `catalyst/project/core/systems/impl/bvh.cpp`
- [Data collector](https://github.com/nul1ex/catalyst/blob/main/catalyst/project/core/systems/impl/collector.cpp): `catalyst/project/core/systems/impl/collector.cpp`
- [Entity tracking](https://github.com/nul1ex/catalyst/blob/main/catalyst/project/core/systems/impl/entities.cpp): `catalyst/project/core/systems/impl/entities.cpp`
- [Icon handling](https://github.com/nul1ex/catalyst/blob/main/catalyst/project/core/systems/impl/icons.cpp): `catalyst/project/core/systems/impl/icons.cpp`
- [Feature settings](https://github.com/nul1ex/catalyst/blob/main/catalyst/project/core/settings.hpp): `catalyst/project/core/settings.hpp`

### Gameplay features

- [Combat assistance](https://github.com/nul1ex/catalyst/blob/main/catalyst/project/core/features/impl/combat/legit.cpp): `catalyst/project/core/features/impl/combat/legit.cpp`
- [Combat helpers](https://github.com/nul1ex/catalyst/blob/main/catalyst/project/core/features/impl/combat/shared.cpp): `catalyst/project/core/features/impl/combat/shared.cpp`
- [Player ESP](https://github.com/nul1ex/catalyst/blob/main/catalyst/project/core/features/impl/esp/player.cpp): `catalyst/project/core/features/impl/esp/player.cpp`
- [Item ESP](https://github.com/nul1ex/catalyst/blob/main/catalyst/project/core/features/impl/esp/item.cpp): `catalyst/project/core/features/impl/esp/item.cpp`
- [Projectile ESP](https://github.com/nul1ex/catalyst/blob/main/catalyst/project/core/features/impl/esp/projectile.cpp): `catalyst/project/core/features/impl/esp/projectile.cpp`
- [Grenade features](https://github.com/nul1ex/catalyst/blob/main/catalyst/project/core/features/impl/misc/grenades.cpp): `catalyst/project/core/features/impl/misc/grenades.cpp`
- [Impact features](https://github.com/nul1ex/catalyst/blob/main/catalyst/project/core/features/impl/misc/impacts.cpp): `catalyst/project/core/features/impl/misc/impacts.cpp`

### Interface and rendering

- [Configuration menu](https://github.com/nul1ex/catalyst/blob/main/catalyst/project/core/menu/menu.cpp): `catalyst/project/core/menu/menu.cpp`
- [Overlay renderer](https://github.com/nul1ex/catalyst/blob/main/catalyst/project/core/render/render.cpp): `catalyst/project/core/render/render.cpp`

### Bundled libraries

- [Immediate UI](https://github.com/nul1ex/catalyst/blob/main/catalyst/project/external/zdraw/zui/zui.cpp): `catalyst/project/external/zdraw/zui/zui.cpp`
- [D3D drawing](https://github.com/nul1ex/catalyst/blob/main/catalyst/project/external/zdraw/zdraw.cpp): `catalyst/project/external/zdraw/zdraw.cpp`
- [Rendering shaders](https://github.com/nul1ex/catalyst/blob/main/catalyst/project/external/zdraw/external/shaders/shaders.hpp): `catalyst/project/external/zdraw/external/shaders/shaders.hpp`
- [Embedded Inter font](https://github.com/nul1ex/catalyst/blob/main/catalyst/project/external/zdraw/external/fonts/inter.hpp): `catalyst/project/external/zdraw/external/fonts/inter.hpp`
- [NanoSVG parser](https://github.com/nul1ex/catalyst/blob/main/catalyst/project/external/nanosvg/x/nanosvg.h): `catalyst/project/external/nanosvg/x/nanosvg.h`
- [NanoSVG rasterizer](https://github.com/nul1ex/catalyst/blob/main/catalyst/project/external/nanosvg/x/nanosvgrast.h): `catalyst/project/external/nanosvg/x/nanosvgrast.h`
- [LZ4 compression](https://github.com/nul1ex/catalyst/blob/main/catalyst/project/external/lz4/lz4.c): `catalyst/project/external/lz4/lz4.c`
- [LZ4 API](https://github.com/nul1ex/catalyst/blob/main/catalyst/project/external/lz4/lz4.h): `catalyst/project/external/lz4/lz4.h`
- [Dense hash containers](https://github.com/nul1ex/catalyst/blob/main/catalyst/project/external/zdraw/external/unordered_dense.hpp): `catalyst/project/external/zdraw/external/unordered_dense.hpp`

### Other components

- **Player**

## Connections

- Immediate UI → D3D drawing: uses drawing API
- D3D drawing → Rendering shaders: uses shaders (evidence: `catalyst/project/external/zdraw/zdraw.cpp`)
- D3D drawing → Embedded Inter font: includes font (evidence: `catalyst/project/external/zdraw/zdraw.cpp`)
- D3D drawing → NanoSVG parser: uses SVG support (evidence: `catalyst/project/external/zdraw/zdraw.cpp`)
- NanoSVG rasterizer → NanoSVG parser: uses parser types (evidence: `catalyst/project/external/nanosvg/x/nanosvgrast.h`)
- LZ4 compression → LZ4 API: implements API (evidence: `catalyst/project/external/lz4/lz4.c`)
- D3D drawing → Dense hash containers: includes containers
- Player → Application entry: starts application
- Configuration menu → Feature settings: configures features
- Game-state systems → Combat assistance: provides game state
- Game-state systems → Player ESP: provides game state
- Game-state systems → Item ESP: provides game state
- Game-state systems → Projectile ESP: provides game state
- Game-state systems → Grenade features: provides game state
- Game-state systems → Impact features: provides game state
- Combat assistance → Overlay renderer: contributes overlay
- Player ESP → Overlay renderer: contributes overlay
- Item ESP → Overlay renderer: contributes overlay
- Projectile ESP → Overlay renderer: contributes overlay
- Grenade features → Overlay renderer: contributes overlay
- Impact features → Overlay renderer: contributes overlay
