# opengalaxea/galaxeavla architecture

> Architecture diagram of the GitHub repository opengalaxea/galaxeavla, 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/opengalaxea/galaxeavla
- Repository: https://github.com/opengalaxea/galaxeavla

## Overview

GalaxeaVLA is a pretrained vision-language-action model for robot control. Its main runtime path turns robot observations and task instructions into batched inference, then postprocessed action chunks for execution; the README describes closed-loop replanning from new observations. The repository also supports demonstration-data loading and processing, action-token representation, model training/fine-tuning, and simulation evaluation. The tree and excerpts establish these subsystems, but do not expose every training or serving call site, so uncertain internal wiring is omitted.

Main entry points: [`scripts/serve_policy.py`](https://github.com/opengalaxea/galaxeavla/blob/main/scripts/serve_policy.py) (Policy serving), [`src/g05/utils/websocket/msgpack.py`](https://github.com/opengalaxea/galaxeavla/blob/main/src/g05/utils/websocket/msgpack.py) (WebSocket transport), [`src/g05/models/g05`](https://github.com/opengalaxea/galaxeavla/tree/main/src/g05/models/g05) (G0.5 policy), [`src/g05/data_processor/processor`](https://github.com/opengalaxea/galaxeavla/tree/main/src/g05/data_processor/processor) (Sample processors)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_data["Data pipeline"]
  node_dataset["LeRobot datasets"]
  node_processors["Sample processors"]
  node_transforms["Data transforms"]
end

subgraph group_model["G0.5 model"]
  node_tokenizer["ActionCodec tokenizer"]
  node_policy["G0.5 policy"]
  node_model_modules["Model modules"]
  node_qwen["Qwen3.5 backbone"]
end

subgraph group_runtime["Inference runtime"]
  node_training["Training entrypoint<br/>[finetune.py]"]
  node_inferencer["Policy inferencer<br/>[inferencer.py]"]
  node_serve["Policy serving<br/>[serve_policy.py]"]
  node_websocket["WebSocket transport<br/>[msgpack.py]"]
end

subgraph group_deployment["Robot deployment"]
  node_r1lite["R1 Lite deployment"]
  node_r1pro["R1 Pro deployment"]
  node_so100["SO-100 client"]
end

subgraph group_evaluation["Evaluation"]
  node_libero["LIBERO evaluation"]
  node_robotwin["RoboTwin evaluation"]
end

node_operator(("Operator"))
node_demonstrations[("Robot demonstrations")]
node_robot(("Robot platform"))
node_simulator["Simulation environment"]

node_demonstrations -->|"provides episodes"| node_dataset
node_dataset -->|"loads samples"| node_processors
node_transforms -->|"transforms samples"| node_processors
node_processors -->|"supplies batches"| node_training
node_training -->|"optimizes"| node_policy
node_policy -->|"uses modules"| node_model_modules
node_policy -->|"uses backbone"| node_qwen
node_tokenizer -->|"encodes actions"| node_policy
node_operator -->|"starts serving"| node_serve
node_serve -->|"runs inference"| node_inferencer
node_serve -->|"exchanges messages"| node_websocket
node_r1lite -->|"requests actions"| node_websocket
node_r1pro -->|"requests actions"| node_websocket
node_so100 -->|"requests actions"| node_websocket
node_websocket -->|"sends observations"| node_serve
node_serve -->|"returns actions"| node_inferencer
node_r1lite -->|"executes actions"| node_robot
node_r1pro -->|"executes actions"| node_robot
node_so100 -->|"executes actions"| node_robot
node_libero -->|"evaluates policy"| node_simulator
node_robotwin -->|"evaluates policy"| node_simulator

click node_dataset "https://github.com/opengalaxea/galaxeavla/tree/main/src/g05/data"
click node_processors "https://github.com/opengalaxea/galaxeavla/tree/main/src/g05/data_processor/processor"
click node_transforms "https://github.com/opengalaxea/galaxeavla/tree/main/src/g05/data_processor/transforms"
click node_tokenizer "https://github.com/opengalaxea/galaxeavla/tree/main/src/g05/tokenizer"
click node_policy "https://github.com/opengalaxea/galaxeavla/tree/main/src/g05/models/g05"
click node_model_modules "https://github.com/opengalaxea/galaxeavla/tree/main/src/g05/models/g05/model"
click node_qwen "https://github.com/opengalaxea/galaxeavla/tree/main/src/g05/models/g05/qwen35"
click node_training "https://github.com/opengalaxea/galaxeavla/blob/main/scripts/finetune.py"
click node_inferencer "https://github.com/opengalaxea/galaxeavla/blob/main/src/g05/models/g05/inferencer.py"
click node_serve "https://github.com/opengalaxea/galaxeavla/blob/main/scripts/serve_policy.py"
click node_websocket "https://github.com/opengalaxea/galaxeavla/blob/main/src/g05/utils/websocket/msgpack.py"
click node_r1lite "https://github.com/opengalaxea/galaxeavla/tree/main/experiments/r1lite"
click node_r1pro "https://github.com/opengalaxea/galaxeavla/tree/main/experiments/r1pro"
click node_so100 "https://github.com/opengalaxea/galaxeavla/blob/main/experiments/so100/so100_policy_client.py"
click node_libero "https://github.com/opengalaxea/galaxeavla/tree/main/experiments/libero"
click node_robotwin "https://github.com/opengalaxea/galaxeavla/tree/main/experiments/robotwin"

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_dataset,node_processors,node_transforms toneBlue
class node_tokenizer,node_policy,node_model_modules,node_qwen,node_demonstrations toneAmber
class node_training,node_inferencer,node_serve,node_websocket toneMint
class node_r1lite,node_r1pro,node_so100 toneRose
class node_libero,node_robotwin,node_operator,node_robot,node_simulator toneIndigo
```

## Components

### Data pipeline

- [LeRobot datasets](https://github.com/opengalaxea/galaxeavla/tree/main/src/g05/data): `src/g05/data`
- [Sample processors](https://github.com/opengalaxea/galaxeavla/tree/main/src/g05/data_processor/processor): `src/g05/data_processor/processor`
- [Data transforms](https://github.com/opengalaxea/galaxeavla/tree/main/src/g05/data_processor/transforms): `src/g05/data_processor/transforms`

### G0.5 model

- [ActionCodec tokenizer](https://github.com/opengalaxea/galaxeavla/tree/main/src/g05/tokenizer): `src/g05/tokenizer`
- [G0.5 policy](https://github.com/opengalaxea/galaxeavla/tree/main/src/g05/models/g05): `src/g05/models/g05`
- [Model modules](https://github.com/opengalaxea/galaxeavla/tree/main/src/g05/models/g05/model): `src/g05/models/g05/model`
- [Qwen3.5 backbone](https://github.com/opengalaxea/galaxeavla/tree/main/src/g05/models/g05/qwen35): `src/g05/models/g05/qwen35`

### Inference runtime

- [Training entrypoint](https://github.com/opengalaxea/galaxeavla/blob/main/scripts/finetune.py): `scripts/finetune.py`
- [Policy inferencer](https://github.com/opengalaxea/galaxeavla/blob/main/src/g05/models/g05/inferencer.py): `src/g05/models/g05/inferencer.py`
- [Policy serving](https://github.com/opengalaxea/galaxeavla/blob/main/scripts/serve_policy.py): `scripts/serve_policy.py`
- [WebSocket transport](https://github.com/opengalaxea/galaxeavla/blob/main/src/g05/utils/websocket/msgpack.py): `src/g05/utils/websocket/msgpack.py`

### Robot deployment

- [R1 Lite deployment](https://github.com/opengalaxea/galaxeavla/tree/main/experiments/r1lite): `experiments/r1lite`
- [R1 Pro deployment](https://github.com/opengalaxea/galaxeavla/tree/main/experiments/r1pro): `experiments/r1pro`
- [SO-100 client](https://github.com/opengalaxea/galaxeavla/blob/main/experiments/so100/so100_policy_client.py): `experiments/so100/so100_policy_client.py`

### Evaluation

- [LIBERO evaluation](https://github.com/opengalaxea/galaxeavla/tree/main/experiments/libero): `experiments/libero`
- [RoboTwin evaluation](https://github.com/opengalaxea/galaxeavla/tree/main/experiments/robotwin): `experiments/robotwin`

### Other components

- **Operator**
- **Robot demonstrations**
- **Robot platform**
- **Simulation environment**

## Connections

- Robot demonstrations → LeRobot datasets: provides episodes
- LeRobot datasets → Sample processors: loads samples
- Data transforms → Sample processors: transforms samples
- Sample processors → Training entrypoint: supplies batches
- Training entrypoint → G0.5 policy: optimizes
- G0.5 policy → Model modules: uses modules
- G0.5 policy → Qwen3.5 backbone: uses backbone
- ActionCodec tokenizer → G0.5 policy: encodes actions
- Operator → Policy serving: starts serving
- Policy serving → Policy inferencer: runs inference
- Policy serving → WebSocket transport: exchanges messages
- R1 Lite deployment → WebSocket transport: requests actions
- R1 Pro deployment → WebSocket transport: requests actions
- SO-100 client → WebSocket transport: requests actions
- WebSocket transport → Policy serving: sends observations
- Policy serving → Policy inferencer: returns actions
- R1 Lite deployment → Robot platform: executes actions
- R1 Pro deployment → Robot platform: executes actions
- SO-100 client → Robot platform: executes actions
- LIBERO evaluation → Simulation environment: evaluates policy
- RoboTwin evaluation → Simulation environment: evaluates policy
