# catowic/artrak architecture

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

- Interactive diagram: https://gitdiagram.com/catowic/artrak
- Repository: https://github.com/catowic/artrak

## Overview

ARTRAK is a single-player, text-driven horror game. The player explores a 17-room house, chooses routes and interactions, collects items, and reaches one of five endings; room descriptions, inventory, notes, and choices support that play loop. The README documents the full game, while the sampled Python excerpt is partial, so internal wiring beyond the visible room, inventory, and interaction behavior is not inferred. All runtime components reside in the single source file.

Main entry points: [`artrak.py`](https://github.com/catowic/artrak/blob/main/artrak.py) (House rooms)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_play["Exploration"]
  node_runtime["Game runtime<br/>[artrak.py]"]
  node_rooms["House rooms<br/>[artrak.py]"]
  node_room_view["Room display<br/>[artrak.py]"]
end

subgraph group_mechanics["Game mechanics"]
  node_choices["Player choices<br/>[artrak.py]"]
  node_items["Item interactions<br/>[artrak.py]"]
  node_inventory["Inventory<br/>[artrak.py]"]
  node_notes["Notes and clues<br/>[artrak.py]"]
  node_game_state["Game state<br/>[artrak.py]"]
end

subgraph group_story["Narrative outcomes"]
  node_endings["Five endings<br/>[artrak.py]"]
end

node_player(("Player"))

node_player -->|"plays"| node_runtime
node_runtime -->|"runs room"| node_rooms
node_rooms -->|"describes"| node_room_view
node_rooms -->|"prompts"| node_choices
node_choices -->|"changes"| node_game_state
node_choices -->|"selects"| node_items
node_items -->|"collects"| node_inventory
node_items -->|"updates"| node_game_state
node_rooms -->|"reveals"| node_notes
node_game_state -->|"determines"| node_endings

click node_runtime "https://github.com/catowic/artrak/blob/main/artrak.py"
click node_rooms "https://github.com/catowic/artrak/blob/main/artrak.py"
click node_room_view "https://github.com/catowic/artrak/blob/main/artrak.py"
click node_choices "https://github.com/catowic/artrak/blob/main/artrak.py"
click node_items "https://github.com/catowic/artrak/blob/main/artrak.py"
click node_inventory "https://github.com/catowic/artrak/blob/main/artrak.py"
click node_notes "https://github.com/catowic/artrak/blob/main/artrak.py"
click node_game_state "https://github.com/catowic/artrak/blob/main/artrak.py"
click node_endings "https://github.com/catowic/artrak/blob/main/artrak.py"

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_runtime,node_rooms,node_room_view toneBlue
class node_choices,node_items,node_inventory,node_notes,node_game_state toneAmber
class node_endings toneMint
class node_player toneIndigo
```

## Components

### Exploration

- [Game runtime](https://github.com/catowic/artrak/blob/main/artrak.py): `artrak.py`
- [House rooms](https://github.com/catowic/artrak/blob/main/artrak.py): `artrak.py`
- [Room display](https://github.com/catowic/artrak/blob/main/artrak.py): `artrak.py`

### Game mechanics

- [Player choices](https://github.com/catowic/artrak/blob/main/artrak.py): `artrak.py`
- [Item interactions](https://github.com/catowic/artrak/blob/main/artrak.py): `artrak.py`
- [Inventory](https://github.com/catowic/artrak/blob/main/artrak.py): `artrak.py`
- [Notes and clues](https://github.com/catowic/artrak/blob/main/artrak.py): `artrak.py`
- [Game state](https://github.com/catowic/artrak/blob/main/artrak.py): `artrak.py`

### Narrative outcomes

- [Five endings](https://github.com/catowic/artrak/blob/main/artrak.py): `artrak.py`

### Other components

- **Player**

## Connections

- Player → Game runtime: plays
- Game runtime → House rooms: runs room
- House rooms → Room display: describes
- House rooms → Player choices: prompts
- Player choices → Game state: changes
- Player choices → Item interactions: selects
- Item interactions → Inventory: collects
- Item interactions → Game state: updates
- House rooms → Notes and clues: reveals
- Game state → Five endings: determines
