# armisael5/gtnh-bec-controller architecture

> Architecture diagram of the GitHub repository armisael5/gtnh-bec-controller, 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/armisael5/gtnh-bec-controller
- Repository: https://github.com/armisael5/gtnh-bec-controller

## Overview

This repository documents an OpenComputers controller for automating Bose–Einstein Condensate (BEC) processing, with multiple IONodes sharing an Observation Array. The documented workflow separates queued patterns, input staging, processing, and output collection, with separate nanite handling. The README also describes optional passive condensate storage and safeguards against voiding recipes. The tree contains only `bec_controller.lua` as runtime source; its implementation is not sampled, and the README excerpt ends during setup, so controller wiring and later operational details are not inferred.

Main entry points: [`bec_controller.lua`](https://github.com/armisael5/gtnh-bec-controller/blob/main/bec_controller.lua) (BEC controller)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_automation["BEC automation"]
  node_ionodes["IONodes"]
  node_entangler["Entangler"]
  node_observation["Observation Array"]
  node_containment[("Containment Field")]
  node_bec_conduits["BEC conduits"]
end

subgraph group_networks["AE2 networks"]
  node_mainnet[("Main network")]
  node_pending[("Pending subnet")]
  node_input[("Input subnet")]
  node_output[("Output subnet")]
  node_item_conduits["Item conduits"]
end

subgraph group_nanites["Nanite handling"]
  node_nanite_storage[("Nanite storage")]
  node_nanite_subnets[("Nanite subnets")]
end

subgraph group_oc["OpenComputers"]
  node_controller["BEC controller<br/>[bec_controller.lua]"]
  node_opencomputers["OpenComputers rack"]
end

node_operator(("Operator"))

node_operator -->|"submits patterns"| node_pending
node_mainnet -->|"pushes patterns"| node_pending
node_pending -->|"transfers items"| node_input
node_pending -->|"extracts items"| node_item_conduits
node_item_conduits -->|"inserts items"| node_input
node_input -->|"wireless supply"| node_ionodes
node_input -->|"wireless supply"| node_entangler
node_ionodes -->|"sends outputs"| node_output
node_output -->|"returns outputs"| node_mainnet
node_ionodes -->|"line-of-sight"| node_observation
node_entangler -->|"shares condensate"| node_bec_conduits
node_containment -->|"shares condensate"| node_bec_conduits
node_observation -->|"shares condensate"| node_bec_conduits
node_nanite_subnets -->|"stores nanites"| node_nanite_storage
node_nanite_subnets -->|"fills and drains"| node_observation
node_pending -->|"pattern-count input"| node_controller
node_opencomputers -->|"hosts"| node_controller

click node_controller "https://github.com/armisael5/gtnh-bec-controller/blob/main/bec_controller.lua"

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_ionodes,node_entangler,node_observation,node_containment,node_bec_conduits toneBlue
class node_mainnet,node_pending,node_input,node_output,node_item_conduits toneAmber
class node_nanite_storage,node_nanite_subnets toneMint
class node_controller,node_opencomputers toneRose
class node_operator toneIndigo
```

## Components

### BEC automation

- **IONodes**
- **Entangler**
- **Observation Array**
- **Containment Field**
- **BEC conduits**

### AE2 networks

- **Main network**
- **Pending subnet**
- **Input subnet**
- **Output subnet**
- **Item conduits**

### Nanite handling

- **Nanite storage**
- **Nanite subnets**

### OpenComputers

- [BEC controller](https://github.com/armisael5/gtnh-bec-controller/blob/main/bec_controller.lua): `bec_controller.lua`
- **OpenComputers rack**

### Other components

- **Operator**

## Connections

- Operator → Pending subnet: submits patterns
- Main network → Pending subnet: pushes patterns
- Pending subnet → Input subnet: transfers items
- Pending subnet → Item conduits: extracts items
- Item conduits → Input subnet: inserts items
- Input subnet → IONodes: wireless supply
- Input subnet → Entangler: wireless supply
- IONodes → Output subnet: sends outputs
- Output subnet → Main network: returns outputs
- IONodes → Observation Array: line-of-sight
- Entangler → BEC conduits: shares condensate
- Containment Field → BEC conduits: shares condensate
- Observation Array → BEC conduits: shares condensate
- Nanite subnets → Nanite storage: stores nanites
- Nanite subnets → Observation Array: fills and drains
- Pending subnet → BEC controller: pattern-count input
- OpenComputers rack → BEC controller: hosts
