# chinmoybiswasdeep/photographiq architecture

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

- Interactive diagram: https://gitdiagram.com/chinmoybiswasdeep/photographiq
- Repository: https://github.com/chinmoybiswasdeep/photographiq

## Overview

PhotoGraphiQ is a CV photonic measurement-based quantum-computing platform. Its principal workflow turns a resource graph and circuit into an executable measurement pattern, analyzes flow and corrections, runs the pattern on a selected simulation backend, and returns outcomes and diagnostics. The graph also preserves documented calculus, sampling, non-Gaussian/GKP, visualization, acceleration, and learning capabilities. Relationships are grounded primarily in the README; unsampled subsystem internals are represented at their existing source paths without inferred call chains.

Main entry points: [`src/photographiq/ir.py`](https://github.com/chinmoybiswasdeep/photographiq/blob/main/src/photographiq/ir.py) (OpenGraph IR), [`src/photographiq/simulator.py`](https://github.com/chinmoybiswasdeep/photographiq/blob/main/src/photographiq/simulator.py) (Pattern simulator), [`src/photographiq/backends`](https://github.com/chinmoybiswasdeep/photographiq/tree/main/src/photographiq/backends) (Simulation backends), [`src/photographiqml/models.py`](https://github.com/chinmoybiswasdeep/photographiq/blob/main/src/photographiqml/models.py) (Learning models)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_model["Models and compilation"]
  node_resource["Resource graphs<br/>[graph.py]"]
  node_commands["Circuit commands<br/>[commands.py]"]
  node_ir["OpenGraph IR<br/>[ir.py]"]
  node_compiler["Pattern compiler<br/>[compiler.py]"]
  node_pattern["Measurement pattern<br/>[pattern.py]"]
end

subgraph group_execution["Execution and engines"]
  node_simulator["Pattern simulator<br/>[simulator.py]"]
  node_registry["Backend registry<br/>[registry.py]"]
  node_backends["Simulation backends"]
  node_native["Native C++ engines"]
  node_states["States and results<br/>[states.py]"]
end

subgraph group_analysis["Analysis and calculus"]
  node_flow["Flow analysis<br/>[cv.py]"]
  node_calculus["MBQC calculus"]
end

subgraph group_extensions["Research capabilities"]
  node_sampling["Boson sampling"]
  node_non_gaussian["Non-Gaussian resources<br/>[non_gaussian.py]"]
  node_gkp["GKP resources<br/>[gkp.py]"]
  node_gpu["GPU acceleration"]
  node_cudaq["CUDA-Q adapter<br/>[cudaq_dynamics.py]"]
  node_ml_models["Learning models<br/>[models.py]"]
  node_ml_logical["Logical MuTA<br/>[logical.py]"]
  node_ml_lowering["Physical GKP lowering<br/>[lowering.py]"]
  node_ml_physical["Physical execution<br/>[physical.py]"]
end

subgraph group_presentation["Visualization"]
  node_visualization["Static visualization<br/>[visualization.py]"]
  node_interactive["Interactive views<br/>[graph_view.py]"]
end

node_user(("Quantum developer"))
node_piquasso["Piquasso reference"]

node_user -->|"builds resources"| node_resource
node_user -->|"defines circuit"| node_commands
node_resource -->|"forms graph model"| node_ir
node_commands -->|"compiles circuit"| node_compiler
node_compiler -->|"produces pattern"| node_pattern
node_ir -->|"analyzes flow"| node_flow
node_flow -->|"derives corrections"| node_pattern
node_pattern -->|"executes pattern"| node_simulator
node_simulator -->|"selects backend"| node_registry
node_registry -->|"dispatches to"| node_backends
node_backends -->|"uses native engines"| node_native
node_simulator -->|"returns results"| node_states
node_user -->|"uses calculus"| node_calculus
node_user -->|"samples distributions"| node_sampling
node_user -->|"builds resources"| node_non_gaussian
node_user -->|"uses GKP tools"| node_gkp
node_user -->|"draws results"| node_visualization
node_ir -->|"visualizes graph"| node_interactive
node_user -->|"accelerates kernels"| node_gpu
node_user -.->|"uses adapter"| node_cudaq
node_user -->|"trains models"| node_ml_models
node_ml_models -->|"uses logical model"| node_ml_logical
node_ml_models -.->|"lowers to GKP"| node_ml_lowering
node_ml_lowering -.->|"executes physically"| node_ml_physical
node_backends -.->|"optional reference"| node_piquasso

click node_resource "https://github.com/chinmoybiswasdeep/photographiq/blob/main/src/photographiq/graph.py"
click node_commands "https://github.com/chinmoybiswasdeep/photographiq/blob/main/src/photographiq/commands.py"
click node_ir "https://github.com/chinmoybiswasdeep/photographiq/blob/main/src/photographiq/ir.py"
click node_compiler "https://github.com/chinmoybiswasdeep/photographiq/blob/main/src/photographiq/compiler.py"
click node_pattern "https://github.com/chinmoybiswasdeep/photographiq/blob/main/src/photographiq/pattern.py"
click node_flow "https://github.com/chinmoybiswasdeep/photographiq/blob/main/src/photographiq/flows/cv.py"
click node_calculus "https://github.com/chinmoybiswasdeep/photographiq/tree/main/src/photographiq/calculus"
click node_simulator "https://github.com/chinmoybiswasdeep/photographiq/blob/main/src/photographiq/simulator.py"
click node_registry "https://github.com/chinmoybiswasdeep/photographiq/blob/main/src/photographiq/registry.py"
click node_backends "https://github.com/chinmoybiswasdeep/photographiq/tree/main/src/photographiq/backends"
click node_native "https://github.com/chinmoybiswasdeep/photographiq/tree/main/cpp/src"
click node_states "https://github.com/chinmoybiswasdeep/photographiq/blob/main/src/photographiq/states.py"
click node_sampling "https://github.com/chinmoybiswasdeep/photographiq/tree/main/src/photographiq/sampling"
click node_non_gaussian "https://github.com/chinmoybiswasdeep/photographiq/blob/main/src/photographiq/non_gaussian.py"
click node_gkp "https://github.com/chinmoybiswasdeep/photographiq/blob/main/src/photographiq/gkp.py"
click node_visualization "https://github.com/chinmoybiswasdeep/photographiq/blob/main/src/photographiq/visualization.py"
click node_interactive "https://github.com/chinmoybiswasdeep/photographiq/blob/main/src/photographiq/interactive/graph_view.py"
click node_gpu "https://github.com/chinmoybiswasdeep/photographiq/tree/main/src/photographiq/gpu"
click node_cudaq "https://github.com/chinmoybiswasdeep/photographiq/blob/main/src/photographiq/cudaq_dynamics.py"
click node_ml_models "https://github.com/chinmoybiswasdeep/photographiq/blob/main/src/photographiqml/models.py"
click node_ml_logical "https://github.com/chinmoybiswasdeep/photographiq/blob/main/src/photographiqml/logical.py"
click node_ml_lowering "https://github.com/chinmoybiswasdeep/photographiq/blob/main/src/photographiqml/lowering.py"
click node_ml_physical "https://github.com/chinmoybiswasdeep/photographiq/blob/main/src/photographiqml/physical.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_resource,node_commands,node_ir,node_compiler,node_pattern toneBlue
class node_simulator,node_registry,node_backends,node_native,node_states toneAmber
class node_flow,node_calculus toneMint
class node_sampling,node_non_gaussian,node_gkp,node_gpu,node_cudaq,node_ml_models,node_ml_logical,node_ml_lowering,node_ml_physical toneRose
class node_visualization,node_interactive,node_user,node_piquasso toneIndigo
```

## Components

### Models and compilation

- [Resource graphs](https://github.com/chinmoybiswasdeep/photographiq/blob/main/src/photographiq/graph.py): `src/photographiq/graph.py`
- [Circuit commands](https://github.com/chinmoybiswasdeep/photographiq/blob/main/src/photographiq/commands.py): `src/photographiq/commands.py`
- [OpenGraph IR](https://github.com/chinmoybiswasdeep/photographiq/blob/main/src/photographiq/ir.py): `src/photographiq/ir.py`
- [Pattern compiler](https://github.com/chinmoybiswasdeep/photographiq/blob/main/src/photographiq/compiler.py): `src/photographiq/compiler.py`
- [Measurement pattern](https://github.com/chinmoybiswasdeep/photographiq/blob/main/src/photographiq/pattern.py): `src/photographiq/pattern.py`

### Execution and engines

- [Pattern simulator](https://github.com/chinmoybiswasdeep/photographiq/blob/main/src/photographiq/simulator.py): `src/photographiq/simulator.py`
- [Backend registry](https://github.com/chinmoybiswasdeep/photographiq/blob/main/src/photographiq/registry.py): `src/photographiq/registry.py`
- [Simulation backends](https://github.com/chinmoybiswasdeep/photographiq/tree/main/src/photographiq/backends): `src/photographiq/backends`
- [Native C++ engines](https://github.com/chinmoybiswasdeep/photographiq/tree/main/cpp/src): `cpp/src`
- [States and results](https://github.com/chinmoybiswasdeep/photographiq/blob/main/src/photographiq/states.py): `src/photographiq/states.py`

### Analysis and calculus

- [Flow analysis](https://github.com/chinmoybiswasdeep/photographiq/blob/main/src/photographiq/flows/cv.py): `src/photographiq/flows/cv.py`
- [MBQC calculus](https://github.com/chinmoybiswasdeep/photographiq/tree/main/src/photographiq/calculus): `src/photographiq/calculus`

### Research capabilities

- [Boson sampling](https://github.com/chinmoybiswasdeep/photographiq/tree/main/src/photographiq/sampling): `src/photographiq/sampling`
- [Non-Gaussian resources](https://github.com/chinmoybiswasdeep/photographiq/blob/main/src/photographiq/non_gaussian.py): `src/photographiq/non_gaussian.py`
- [GKP resources](https://github.com/chinmoybiswasdeep/photographiq/blob/main/src/photographiq/gkp.py): `src/photographiq/gkp.py`
- [GPU acceleration](https://github.com/chinmoybiswasdeep/photographiq/tree/main/src/photographiq/gpu): `src/photographiq/gpu`
- [CUDA-Q adapter](https://github.com/chinmoybiswasdeep/photographiq/blob/main/src/photographiq/cudaq_dynamics.py): `src/photographiq/cudaq_dynamics.py`
- [Learning models](https://github.com/chinmoybiswasdeep/photographiq/blob/main/src/photographiqml/models.py): `src/photographiqml/models.py`
- [Logical MuTA](https://github.com/chinmoybiswasdeep/photographiq/blob/main/src/photographiqml/logical.py): `src/photographiqml/logical.py`
- [Physical GKP lowering](https://github.com/chinmoybiswasdeep/photographiq/blob/main/src/photographiqml/lowering.py): `src/photographiqml/lowering.py`
- [Physical execution](https://github.com/chinmoybiswasdeep/photographiq/blob/main/src/photographiqml/physical.py): `src/photographiqml/physical.py`

### Visualization

- [Static visualization](https://github.com/chinmoybiswasdeep/photographiq/blob/main/src/photographiq/visualization.py): `src/photographiq/visualization.py`
- [Interactive views](https://github.com/chinmoybiswasdeep/photographiq/blob/main/src/photographiq/interactive/graph_view.py): `src/photographiq/interactive/graph_view.py`

### Other components

- **Quantum developer**
- **Piquasso reference**

## Connections

- Quantum developer → Resource graphs: builds resources (evidence: `README.md`)
- Quantum developer → Circuit commands: defines circuit (evidence: `README.md`)
- Resource graphs → OpenGraph IR: forms graph model (evidence: `README.md`)
- Circuit commands → Pattern compiler: compiles circuit (evidence: `README.md`)
- Pattern compiler → Measurement pattern: produces pattern (evidence: `README.md`)
- OpenGraph IR → Flow analysis: analyzes flow (evidence: `README.md`)
- Flow analysis → Measurement pattern: derives corrections (evidence: `README.md`)
- Measurement pattern → Pattern simulator: executes pattern (evidence: `README.md`)
- Pattern simulator → Backend registry: selects backend (evidence: `README.md`)
- Backend registry → Simulation backends: dispatches to (evidence: `README.md`)
- Simulation backends → Native C++ engines: uses native engines (evidence: `README.md`)
- Pattern simulator → States and results: returns results (evidence: `README.md`)
- Quantum developer → MBQC calculus: uses calculus (evidence: `README.md`)
- Quantum developer → Boson sampling: samples distributions (evidence: `README.md`)
- Quantum developer → Non-Gaussian resources: builds resources (evidence: `README.md`)
- Quantum developer → GKP resources: uses GKP tools (evidence: `README.md`)
- Quantum developer → Static visualization: draws results (evidence: `README.md`)
- OpenGraph IR → Interactive views: visualizes graph
- Quantum developer → GPU acceleration: accelerates kernels (evidence: `README.md`)
- Quantum developer → CUDA-Q adapter: uses adapter (evidence: `README.md`)
- Quantum developer → Learning models: trains models (evidence: `README.md`)
- Learning models → Logical MuTA: uses logical model (evidence: `src/photographiqml/models.py`)
- Learning models → Physical GKP lowering: lowers to GKP
- Physical GKP lowering → Physical execution: executes physically (evidence: `src/photographiqml/physical.py`)
- Simulation backends → Piquasso reference: optional reference (evidence: `README.md`)
