# iot-ahmad/nashmigames architecture

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

- Interactive diagram: https://gitdiagram.com/iot-ahmad/nashmigames
- Repository: https://github.com/iot-ahmad/nashmigames

## Overview

This repository is a browser arcade hub: a visitor selects a game in the React interface, which opens that game in an embedded player. The hub also renders a deferred 3D landing background. The tree contains many independent game implementations, so the graph samples representative games rather than treating them as one shared engine. Wiring beyond the supplied App excerpt is not inferred; in particular, the individual games’ internal flows are not shown.

Main entry points: [`src/App.tsx`](https://github.com/iot-ahmad/nashmigames/blob/main/src/App.tsx) (Arcade Interface), [`src/threeui/index.ts`](https://github.com/iot-ahmad/nashmigames/blob/main/src/threeui/index.ts) (3D Landing Scene), [`src/components/theme-provider.tsx`](https://github.com/iot-ahmad/nashmigames/blob/main/src/components/theme-provider.tsx) (Theme Provider), [`an-easy-mario-game-with-canvas/an-easy-mario-game-with-canvas/src/script.js`](https://github.com/iot-ahmad/nashmigames/blob/main/an-easy-mario-game-with-canvas/an-easy-mario-game-with-canvas/src/script.js) (Canvas Game)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_hub["Arcade Hub"]
  node_app["Arcade Interface<br/>[App.tsx]"]
  node_theme["Theme Provider<br/>[theme-provider.tsx]"]
end

subgraph group_games["Embedded Games"]
  node_canvasgame["Canvas Game<br/>[script.js]"]
  node_chess["Two-player Chess<br/>[App.tsx]"]
  node_mansaf["Mansaf Quest<br/>[main.js]"]
  node_irbid["Irbid Runner<br/>[App.tsx]"]
  node_temple["Sun Temple Runner<br/>[App.tsx]"]
  node_slingshot["Gemini Slingshot<br/>[App.tsx]"]
  node_voxel["Voxel Toy Box<br/>[App.tsx]"]
  node_snake["Multiplayer Snake<br/>[App.tsx]"]
  node_spell["Spell Caster<br/>[main.js]"]
  node_stack["Stack Game<br/>[main.js]"]
end

subgraph group_experiences["3D Experiences"]
  node_landing["3D Landing Scene<br/>[index.ts]"]
  node_sublevel["Sublevel Landing<br/>[LandingPages.tsx]"]
end

node_visitor(("Visitor"))

node_visitor -->|"browses and selects"| node_app
node_app -->|"wraps interface"| node_theme
node_app -->|"renders scene"| node_landing
node_landing -->|"exports landing page"| node_sublevel
node_app -->|"embeds selected game"| node_canvasgame
node_app -->|"embeds selected game"| node_chess
node_app -->|"embeds selected game"| node_mansaf
node_app -->|"embeds selected game"| node_irbid
node_app -->|"embeds selected game"| node_temple
node_app -->|"embeds selected game"| node_slingshot
node_app -->|"embeds selected game"| node_voxel
node_app -->|"embeds selected game"| node_snake
node_app -->|"embeds selected game"| node_spell
node_app -->|"embeds selected game"| node_stack

click node_app "https://github.com/iot-ahmad/nashmigames/blob/main/src/App.tsx"
click node_theme "https://github.com/iot-ahmad/nashmigames/blob/main/src/components/theme-provider.tsx"
click node_landing "https://github.com/iot-ahmad/nashmigames/blob/main/src/threeui/index.ts"
click node_sublevel "https://github.com/iot-ahmad/nashmigames/blob/main/src/shaders/landing-pages/LandingPages.tsx"
click node_canvasgame "https://github.com/iot-ahmad/nashmigames/blob/main/an-easy-mario-game-with-canvas/an-easy-mario-game-with-canvas/src/script.js"
click node_chess "https://github.com/iot-ahmad/nashmigames/blob/main/classic-two-player-chess/src/App.tsx"
click node_mansaf "https://github.com/iot-ahmad/nashmigames/blob/main/Mansaf-Quest/src/main.js"
click node_irbid "https://github.com/iot-ahmad/nashmigames/blob/main/remix_-irbid-runner/App.tsx"
click node_temple "https://github.com/iot-ahmad/nashmigames/blob/main/sun-temple-runner/client/src/App.tsx"
click node_slingshot "https://github.com/iot-ahmad/nashmigames/blob/main/slingshot/App.tsx"
click node_voxel "https://github.com/iot-ahmad/nashmigames/blob/main/snake-game_tcw/voxel-toy-box/App.tsx"
click node_snake "https://github.com/iot-ahmad/nashmigames/blob/main/spell-caster/multiplayer-neon-snake/src/App.tsx"
click node_spell "https://github.com/iot-ahmad/nashmigames/blob/main/spell-caster/main.js"
click node_stack "https://github.com/iot-ahmad/nashmigames/blob/main/Stack%20game%20with%20Three.js%20and%20Cannon.js/main.js"

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_app,node_theme toneBlue
class node_canvasgame,node_chess,node_mansaf,node_irbid,node_temple,node_slingshot,node_voxel,node_snake,node_spell,node_stack toneAmber
class node_landing,node_sublevel toneMint
class node_visitor toneIndigo
```

## Components

### Arcade Hub

- [Arcade Interface](https://github.com/iot-ahmad/nashmigames/blob/main/src/App.tsx): `src/App.tsx`
- [Theme Provider](https://github.com/iot-ahmad/nashmigames/blob/main/src/components/theme-provider.tsx): `src/components/theme-provider.tsx`

### Embedded Games

- [Canvas Game](https://github.com/iot-ahmad/nashmigames/blob/main/an-easy-mario-game-with-canvas/an-easy-mario-game-with-canvas/src/script.js): `an-easy-mario-game-with-canvas/an-easy-mario-game-with-canvas/src/script.js`
- [Two-player Chess](https://github.com/iot-ahmad/nashmigames/blob/main/classic-two-player-chess/src/App.tsx): `classic-two-player-chess/src/App.tsx`
- [Mansaf Quest](https://github.com/iot-ahmad/nashmigames/blob/main/Mansaf-Quest/src/main.js): `Mansaf-Quest/src/main.js`
- [Irbid Runner](https://github.com/iot-ahmad/nashmigames/blob/main/remix_-irbid-runner/App.tsx): `remix_-irbid-runner/App.tsx`
- [Sun Temple Runner](https://github.com/iot-ahmad/nashmigames/blob/main/sun-temple-runner/client/src/App.tsx): `sun-temple-runner/client/src/App.tsx`
- [Gemini Slingshot](https://github.com/iot-ahmad/nashmigames/blob/main/slingshot/App.tsx): `slingshot/App.tsx`
- [Voxel Toy Box](https://github.com/iot-ahmad/nashmigames/blob/main/snake-game_tcw/voxel-toy-box/App.tsx): `snake-game_tcw/voxel-toy-box/App.tsx`
- [Multiplayer Snake](https://github.com/iot-ahmad/nashmigames/blob/main/spell-caster/multiplayer-neon-snake/src/App.tsx): `spell-caster/multiplayer-neon-snake/src/App.tsx`
- [Spell Caster](https://github.com/iot-ahmad/nashmigames/blob/main/spell-caster/main.js): `spell-caster/main.js`
- [Stack Game](https://github.com/iot-ahmad/nashmigames/blob/main/Stack%20game%20with%20Three.js%20and%20Cannon.js/main.js): `Stack game with Three.js and Cannon.js/main.js`

### 3D Experiences

- [3D Landing Scene](https://github.com/iot-ahmad/nashmigames/blob/main/src/threeui/index.ts): `src/threeui/index.ts`
- [Sublevel Landing](https://github.com/iot-ahmad/nashmigames/blob/main/src/shaders/landing-pages/LandingPages.tsx): `src/shaders/landing-pages/LandingPages.tsx`

### Other components

- **Visitor**

## Connections

- Visitor → Arcade Interface: browses and selects
- Arcade Interface → Theme Provider: wraps interface
- Arcade Interface → 3D Landing Scene: renders scene
- 3D Landing Scene → Sublevel Landing: exports landing page
- Arcade Interface → Canvas Game: embeds selected game
- Arcade Interface → Two-player Chess: embeds selected game
- Arcade Interface → Mansaf Quest: embeds selected game
- Arcade Interface → Irbid Runner: embeds selected game
- Arcade Interface → Sun Temple Runner: embeds selected game
- Arcade Interface → Gemini Slingshot: embeds selected game
- Arcade Interface → Voxel Toy Box: embeds selected game
- Arcade Interface → Multiplayer Snake: embeds selected game
- Arcade Interface → Spell Caster: embeds selected game
- Arcade Interface → Stack Game: embeds selected game
