# riba2534/claude-opus-5-5-demo architecture

> Architecture diagram of the GitHub repository riba2534/claude-opus-5-5-demo, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-10-01). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/riba2534/claude-opus-5-5-demo
- Repository: https://github.com/riba2534/claude-opus-5-5-demo
- Video tour (about a minute): https://gitdiagram.com/riba2534/claude-opus-5-5-demo/video

## Overview

The repository contains three independent, playable Three.js browser games: a pelican cycling game, a transport-ship FPS, and a QQ Speed-style racer. In each, the player interacts with the game’s main runtime, which coordinates simulation and presentation; each game also has distinct world, gameplay, and audio/UI capabilities. The graph preserves those documented branches and sampled modules. Some subsystem links are dashed where the README describes a capability but the relevant call sites were not sampled.

Main entry points: [`pelican-bike/src/main.js`](https://github.com/riba2534/claude-opus-5-5-demo/blob/main/pelican-bike/src/main.js) (Game Runtime), [`cf-transport-ship/src/game.js`](https://github.com/riba2534/claude-opus-5-5-demo/blob/main/cf-transport-ship/src/game.js) (Match Runtime), [`qq-speed/src/main.js`](https://github.com/riba2534/claude-opus-5-5-demo/blob/main/qq-speed/src/main.js) (Race Runtime), [`pelican-bike/src/world.js`](https://github.com/riba2534/claude-opus-5-5-demo/blob/main/pelican-bike/src/world.js) (Coastal World)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_pelican["Pelican Cycling"]
  node_bike_runtime["Game Runtime<br/>[main.js]"]
  node_bike_world["Coastal World<br/>[world.js]"]
  node_bike_bicycle["Bicycle<br/>[bicycle.js]"]
  node_bike_pelican["Pelican<br/>[pelican.js]"]
  node_bike_fish["Fish<br/>[fish.js]"]
  node_bike_ocean["Ocean<br/>[ocean.js]"]
  node_bike_sky["Day Night<br/>[sky.js]"]
  node_bike_effects["Effects<br/>[effects.js]"]
  node_bike_audio["Audio<br/>[audio.js]"]
  node_bike_textures["Textures<br/>[textures.js]"]
end

subgraph group_cf["Transport Ship FPS"]
  node_cf_runtime["Match Runtime<br/>[game.js]"]
  node_cf_map["Ship Map<br/>[map.js]"]
  node_cf_guns["Gun Models<br/>[guns.js]"]
  node_cf_weapons["Weapon Logic<br/>[weapons.js]"]
  node_cf_bots["Bot Opponents<br/>[bots.js]"]
  node_cf_physics["Physics<br/>[physics.js]"]
  node_cf_hud["HUD<br/>[hud.js]"]
  node_cf_audio["Audio<br/>[audio.js]"]
  node_cf_textures["Textures<br/>[textures.js]"]
end

subgraph group_qq["QQ Speed Racing"]
  node_qq_runtime["Race Runtime<br/>[main.js]"]
  node_qq_track["Race Track<br/>[track.js]"]
  node_qq_world["World Terrain<br/>[world.js]"]
  node_qq_props["Track Props<br/>[props.js]"]
  node_qq_vehicle["Vehicle<br/>[vehicle.js]"]
  node_qq_ai["AI Racers<br/>[ai.js]"]
  node_qq_items["Race Items<br/>[items.js]"]
  node_qq_hud["Race HUD<br/>[hud.js]"]
  node_qq_textures["Textures<br/>[textures.js]"]
end

node_player(("Player"))

node_player -->|"plays"| node_bike_runtime
node_bike_runtime -->|"builds"| node_bike_world
node_bike_runtime -.->|"coordinates"| node_bike_bicycle
node_bike_runtime -.->|"updates"| node_bike_fish
node_bike_runtime -.->|"renders"| node_bike_ocean
node_bike_runtime -.->|"updates"| node_bike_sky
node_bike_runtime -.->|"uses"| node_bike_effects
node_bike_runtime -.->|"uses"| node_bike_audio
node_bike_world -->|"uses"| node_bike_ocean
node_bike_runtime -.->|"coordinates"| node_bike_pelican
node_bike_runtime -.->|"uses"| node_bike_textures
node_player -->|"plays"| node_cf_runtime
node_cf_runtime -->|"builds"| node_cf_textures
node_cf_runtime -->|"builds"| node_cf_map
node_cf_runtime -->|"builds"| node_cf_guns
node_cf_runtime -.->|"uses"| node_cf_weapons
node_cf_runtime -.->|"dispatches"| node_cf_bots
node_cf_runtime -.->|"uses"| node_cf_physics
node_cf_runtime -.->|"updates"| node_cf_hud
node_cf_runtime -.->|"plays"| node_cf_audio
node_player -->|"plays"| node_qq_runtime
node_qq_runtime -->|"creates"| node_qq_track
node_qq_runtime -->|"builds"| node_qq_world
node_qq_runtime -->|"checks space"| node_qq_props
node_qq_runtime -->|"creates"| node_qq_items
node_qq_runtime -.->|"coordinates"| node_qq_vehicle
node_qq_runtime -.->|"coordinates"| node_qq_ai
node_qq_runtime -.->|"updates"| node_qq_hud
node_qq_runtime -.->|"uses"| node_qq_textures

click node_bike_runtime "https://github.com/riba2534/claude-opus-5-5-demo/blob/main/pelican-bike/src/main.js"
click node_bike_world "https://github.com/riba2534/claude-opus-5-5-demo/blob/main/pelican-bike/src/world.js"
click node_bike_bicycle "https://github.com/riba2534/claude-opus-5-5-demo/blob/main/pelican-bike/src/bicycle.js"
click node_bike_pelican "https://github.com/riba2534/claude-opus-5-5-demo/blob/main/pelican-bike/src/pelican.js"
click node_bike_fish "https://github.com/riba2534/claude-opus-5-5-demo/blob/main/pelican-bike/src/fish.js"
click node_bike_ocean "https://github.com/riba2534/claude-opus-5-5-demo/blob/main/pelican-bike/src/ocean.js"
click node_bike_sky "https://github.com/riba2534/claude-opus-5-5-demo/blob/main/pelican-bike/src/sky.js"
click node_bike_effects "https://github.com/riba2534/claude-opus-5-5-demo/blob/main/pelican-bike/src/effects.js"
click node_bike_audio "https://github.com/riba2534/claude-opus-5-5-demo/blob/main/pelican-bike/src/audio.js"
click node_bike_textures "https://github.com/riba2534/claude-opus-5-5-demo/blob/main/pelican-bike/src/textures.js"
click node_cf_runtime "https://github.com/riba2534/claude-opus-5-5-demo/blob/main/cf-transport-ship/src/game.js"
click node_cf_map "https://github.com/riba2534/claude-opus-5-5-demo/blob/main/cf-transport-ship/src/map.js"
click node_cf_guns "https://github.com/riba2534/claude-opus-5-5-demo/blob/main/cf-transport-ship/src/guns.js"
click node_cf_weapons "https://github.com/riba2534/claude-opus-5-5-demo/blob/main/cf-transport-ship/src/weapons.js"
click node_cf_bots "https://github.com/riba2534/claude-opus-5-5-demo/blob/main/cf-transport-ship/src/bots.js"
click node_cf_physics "https://github.com/riba2534/claude-opus-5-5-demo/blob/main/cf-transport-ship/src/physics.js"
click node_cf_hud "https://github.com/riba2534/claude-opus-5-5-demo/blob/main/cf-transport-ship/src/hud.js"
click node_cf_audio "https://github.com/riba2534/claude-opus-5-5-demo/blob/main/cf-transport-ship/src/audio.js"
click node_cf_textures "https://github.com/riba2534/claude-opus-5-5-demo/blob/main/cf-transport-ship/src/textures.js"
click node_qq_runtime "https://github.com/riba2534/claude-opus-5-5-demo/blob/main/qq-speed/src/main.js"
click node_qq_track "https://github.com/riba2534/claude-opus-5-5-demo/blob/main/qq-speed/src/track.js"
click node_qq_world "https://github.com/riba2534/claude-opus-5-5-demo/blob/main/qq-speed/src/world.js"
click node_qq_props "https://github.com/riba2534/claude-opus-5-5-demo/blob/main/qq-speed/src/props.js"
click node_qq_vehicle "https://github.com/riba2534/claude-opus-5-5-demo/blob/main/qq-speed/src/vehicle.js"
click node_qq_ai "https://github.com/riba2534/claude-opus-5-5-demo/blob/main/qq-speed/src/ai.js"
click node_qq_items "https://github.com/riba2534/claude-opus-5-5-demo/blob/main/qq-speed/src/items.js"
click node_qq_hud "https://github.com/riba2534/claude-opus-5-5-demo/blob/main/qq-speed/src/hud.js"
click node_qq_textures "https://github.com/riba2534/claude-opus-5-5-demo/blob/main/qq-speed/src/textures.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_bike_runtime,node_bike_world,node_bike_bicycle,node_bike_pelican,node_bike_fish,node_bike_ocean,node_bike_sky,node_bike_effects,node_bike_audio,node_bike_textures toneBlue
class node_cf_runtime,node_cf_map,node_cf_guns,node_cf_weapons,node_cf_bots,node_cf_physics,node_cf_hud,node_cf_audio,node_cf_textures toneAmber
class node_qq_runtime,node_qq_track,node_qq_world,node_qq_props,node_qq_vehicle,node_qq_ai,node_qq_items,node_qq_hud,node_qq_textures toneMint
class node_player toneIndigo
```

## Components

### Pelican Cycling

- [Game Runtime](https://github.com/riba2534/claude-opus-5-5-demo/blob/main/pelican-bike/src/main.js): `pelican-bike/src/main.js`
- [Coastal World](https://github.com/riba2534/claude-opus-5-5-demo/blob/main/pelican-bike/src/world.js): `pelican-bike/src/world.js`
- [Bicycle](https://github.com/riba2534/claude-opus-5-5-demo/blob/main/pelican-bike/src/bicycle.js): `pelican-bike/src/bicycle.js`
- [Pelican](https://github.com/riba2534/claude-opus-5-5-demo/blob/main/pelican-bike/src/pelican.js): `pelican-bike/src/pelican.js`
- [Fish](https://github.com/riba2534/claude-opus-5-5-demo/blob/main/pelican-bike/src/fish.js): `pelican-bike/src/fish.js`
- [Ocean](https://github.com/riba2534/claude-opus-5-5-demo/blob/main/pelican-bike/src/ocean.js): `pelican-bike/src/ocean.js`
- [Day Night](https://github.com/riba2534/claude-opus-5-5-demo/blob/main/pelican-bike/src/sky.js): `pelican-bike/src/sky.js`
- [Effects](https://github.com/riba2534/claude-opus-5-5-demo/blob/main/pelican-bike/src/effects.js): `pelican-bike/src/effects.js`
- [Audio](https://github.com/riba2534/claude-opus-5-5-demo/blob/main/pelican-bike/src/audio.js): `pelican-bike/src/audio.js`
- [Textures](https://github.com/riba2534/claude-opus-5-5-demo/blob/main/pelican-bike/src/textures.js): `pelican-bike/src/textures.js`

### Transport Ship FPS

- [Match Runtime](https://github.com/riba2534/claude-opus-5-5-demo/blob/main/cf-transport-ship/src/game.js): `cf-transport-ship/src/game.js`
- [Ship Map](https://github.com/riba2534/claude-opus-5-5-demo/blob/main/cf-transport-ship/src/map.js): `cf-transport-ship/src/map.js`
- [Gun Models](https://github.com/riba2534/claude-opus-5-5-demo/blob/main/cf-transport-ship/src/guns.js): `cf-transport-ship/src/guns.js`
- [Weapon Logic](https://github.com/riba2534/claude-opus-5-5-demo/blob/main/cf-transport-ship/src/weapons.js): `cf-transport-ship/src/weapons.js`
- [Bot Opponents](https://github.com/riba2534/claude-opus-5-5-demo/blob/main/cf-transport-ship/src/bots.js): `cf-transport-ship/src/bots.js`
- [Physics](https://github.com/riba2534/claude-opus-5-5-demo/blob/main/cf-transport-ship/src/physics.js): `cf-transport-ship/src/physics.js`
- [HUD](https://github.com/riba2534/claude-opus-5-5-demo/blob/main/cf-transport-ship/src/hud.js): `cf-transport-ship/src/hud.js`
- [Audio](https://github.com/riba2534/claude-opus-5-5-demo/blob/main/cf-transport-ship/src/audio.js): `cf-transport-ship/src/audio.js`
- [Textures](https://github.com/riba2534/claude-opus-5-5-demo/blob/main/cf-transport-ship/src/textures.js): `cf-transport-ship/src/textures.js`

### QQ Speed Racing

- [Race Runtime](https://github.com/riba2534/claude-opus-5-5-demo/blob/main/qq-speed/src/main.js): `qq-speed/src/main.js`
- [Race Track](https://github.com/riba2534/claude-opus-5-5-demo/blob/main/qq-speed/src/track.js): `qq-speed/src/track.js`
- [World Terrain](https://github.com/riba2534/claude-opus-5-5-demo/blob/main/qq-speed/src/world.js): `qq-speed/src/world.js`
- [Track Props](https://github.com/riba2534/claude-opus-5-5-demo/blob/main/qq-speed/src/props.js): `qq-speed/src/props.js`
- [Vehicle](https://github.com/riba2534/claude-opus-5-5-demo/blob/main/qq-speed/src/vehicle.js): `qq-speed/src/vehicle.js`
- [AI Racers](https://github.com/riba2534/claude-opus-5-5-demo/blob/main/qq-speed/src/ai.js): `qq-speed/src/ai.js`
- [Race Items](https://github.com/riba2534/claude-opus-5-5-demo/blob/main/qq-speed/src/items.js): `qq-speed/src/items.js`
- [Race HUD](https://github.com/riba2534/claude-opus-5-5-demo/blob/main/qq-speed/src/hud.js): `qq-speed/src/hud.js`
- [Textures](https://github.com/riba2534/claude-opus-5-5-demo/blob/main/qq-speed/src/textures.js): `qq-speed/src/textures.js`

### Other components

- **Player**

## Connections

- Player → Game Runtime: plays (evidence: `README.md`)
- Game Runtime → Coastal World: builds (evidence: `pelican-bike/src/main.js`)
- Game Runtime → Bicycle: coordinates (evidence: `pelican-bike/src/main.js`)
- Game Runtime → Fish: updates (evidence: `pelican-bike/src/main.js`)
- Game Runtime → Ocean: renders (evidence: `pelican-bike/src/main.js`)
- Game Runtime → Day Night: updates (evidence: `pelican-bike/src/main.js`)
- Game Runtime → Effects: uses (evidence: `pelican-bike/src/main.js`)
- Game Runtime → Audio: uses (evidence: `pelican-bike/src/main.js`)
- Coastal World → Ocean: uses (evidence: `pelican-bike/src/world.js`)
- Game Runtime → Pelican: coordinates (evidence: `pelican-bike/src/main.js`)
- Game Runtime → Textures: uses (evidence: `pelican-bike/src/main.js`)
- Player → Match Runtime: plays (evidence: `README.md`)
- Match Runtime → Textures: builds (evidence: `cf-transport-ship/src/game.js`)
- Match Runtime → Ship Map: builds (evidence: `cf-transport-ship/src/game.js`)
- Match Runtime → Gun Models: builds (evidence: `cf-transport-ship/src/game.js`)
- Match Runtime → Weapon Logic: uses (evidence: `cf-transport-ship/src/game.js`)
- Match Runtime → Bot Opponents: dispatches (evidence: `cf-transport-ship/src/game.js`)
- Match Runtime → Physics: uses (evidence: `cf-transport-ship/src/game.js`)
- Match Runtime → HUD: updates (evidence: `cf-transport-ship/src/game.js`)
- Match Runtime → Audio: plays (evidence: `cf-transport-ship/src/game.js`)
- Player → Race Runtime: plays (evidence: `README.md`)
- Race Runtime → Race Track: creates (evidence: `qq-speed/src/main.js`)
- Race Runtime → World Terrain: builds (evidence: `qq-speed/src/main.js`)
- Race Runtime → Track Props: checks space (evidence: `qq-speed/src/main.js`)
- Race Runtime → Race Items: creates (evidence: `qq-speed/src/main.js`)
- Race Runtime → Vehicle: coordinates (evidence: `qq-speed/src/main.js`)
- Race Runtime → AI Racers: coordinates (evidence: `qq-speed/src/main.js`)
- Race Runtime → Race HUD: updates (evidence: `qq-speed/src/main.js`)
- Race Runtime → Textures: uses (evidence: `qq-speed/src/main.js`)
