|
1 | | -# Quantum Encoding Atlas — Website |
| 1 | +<div align="center"> |
2 | 2 |
|
3 | | -Interactive showcase website for the [Quantum Encoding Atlas](https://github.com/encoding-atlas/quantum-encoding-atlas) Python library. |
| 3 | +<img src="public/logo.png" alt="Quantum Encoding Atlas" width="100" /> |
4 | 4 |
|
5 | | -**Live:** [q-encoding-atlas.web.app](https://q-encoding-atlas.web.app) |
| 5 | +# Quantum Encoding Atlas — Web |
| 6 | + |
| 7 | +**Interactive explorer for quantum data encodings in machine learning** |
| 8 | + |
| 9 | +<!-- Version badges auto-update from package.json via shields.io dynamic JSON endpoint --> |
| 10 | +[](https://nextjs.org) |
| 11 | +[](https://react.dev) |
| 12 | +[](https://www.typescriptlang.org) |
| 13 | +[](https://tailwindcss.com) |
| 14 | +[](https://pnpm.io) |
| 15 | + |
| 16 | +[](https://github.com/encoding-atlas/quantum-encoding-atlas-web/actions/workflows/deploy.yml) |
| 17 | +[](https://q-encoding-atlas.web.app) |
| 18 | +[](https://opensource.org/licenses/MIT) |
| 19 | + |
| 20 | +--- |
| 21 | + |
| 22 | +[**Live Website**](https://q-encoding-atlas.web.app) · [**Library Repository**](https://github.com/encoding-atlas/quantum-encoding-atlas) · [**Documentation**](https://encoding-atlas.github.io/quantum-encoding-atlas/) · [**PyPI**](https://pypi.org/project/encoding-atlas/) |
| 23 | + |
| 24 | +</div> |
| 25 | + |
| 26 | +<br /> |
| 27 | + |
| 28 | +## Overview |
| 29 | + |
| 30 | +The **Quantum Encoding Atlas** web application is the interactive companion to the [`encoding-atlas`](https://pypi.org/project/encoding-atlas/) Python library. It provides an intuitive, browser-based interface for exploring, comparing, and selecting quantum data encodings for machine learning workflows — with publication-quality math rendering, interactive circuit diagrams, and an evidence-based recommendation engine. |
| 31 | + |
| 32 | +### Pages |
| 33 | + |
| 34 | +| Route | Description | |
| 35 | +|:------|:------------| |
| 36 | +| **`/`** | Landing page with hero, features overview, and encoding carousel | |
| 37 | +| **`/encodings`** | Browsable, filterable catalog of all 16 quantum encodings | |
| 38 | +| **`/encodings/[slug]`** | Detail page with circuit diagrams, properties, and MDX docs | |
| 39 | +| **`/compare`** | Side-by-side radar chart comparison of encoding properties | |
| 40 | +| **`/guide`** | 7-step interactive wizard for evidence-based encoding selection | |
| 41 | + |
| 42 | +## Features |
| 43 | + |
| 44 | +- **16 Encoding Methods** across 7 categories with detailed MDX documentation |
| 45 | +- **Interactive Circuit Diagrams** — Custom SVG renderer for quantum gate visualization (H, RX, RY, RZ, CNOT, CZ, and more) |
| 46 | +- **Radar Chart Comparisons** — [visx](https://airbnb.io/visx)-powered D3 charts for multi-dimensional property analysis |
| 47 | +- **Decision Guide Wizard** — 7-step questionnaire with a deterministic recommendation engine and shareable URL results |
| 48 | +- **KaTeX Math Rendering** — Publication-quality mathematical notation throughout |
| 49 | +- **Dark Mode** — Full light/dark theme support with system preference detection |
| 50 | +- **URL-Shareable State** — Comparison selections and guide results encoded in URL params for easy sharing |
| 51 | +- **Fully Static** — Pre-rendered for instant loading, SEO-friendly, and zero server cost |
| 52 | + |
| 53 | +## Encodings |
| 54 | + |
| 55 | +<table> |
| 56 | +<tr> |
| 57 | +<td width="25%"> |
| 58 | + |
| 59 | +**Angle-based** |
| 60 | +- Angle Encoding |
| 61 | +- Higher-Order Angle |
| 62 | + |
| 63 | +</td> |
| 64 | +<td width="25%"> |
| 65 | + |
| 66 | +**Amplitude-based** |
| 67 | +- Amplitude Encoding |
| 68 | + |
| 69 | +</td> |
| 70 | +<td width="25%"> |
| 71 | + |
| 72 | +**Basis** |
| 73 | +- Basis Encoding |
| 74 | + |
| 75 | +</td> |
| 76 | +<td width="25%"> |
| 77 | + |
| 78 | +**Entangling** |
| 79 | +- IQP Encoding |
| 80 | +- ZZ Feature Map |
| 81 | +- Pauli Feature Map |
| 82 | + |
| 83 | +</td> |
| 84 | +</tr> |
| 85 | +<tr> |
| 86 | +<td> |
| 87 | + |
| 88 | +**Variational** |
| 89 | +- Data Reuploading |
| 90 | +- Hardware-Efficient |
| 91 | +- QAOA-Inspired |
| 92 | +- Hamiltonian |
| 93 | + |
| 94 | +</td> |
| 95 | +<td> |
| 96 | + |
| 97 | +**Physics-Inspired** |
| 98 | +- Trainable Encoding |
| 99 | + |
| 100 | +</td> |
| 101 | +<td colspan="2"> |
| 102 | + |
| 103 | +**Symmetry & Equivariant** |
| 104 | +- Symmetry-Inspired |
| 105 | +- SO(2) Equivariant |
| 106 | +- Cyclic Equivariant |
| 107 | +- Swap Equivariant |
| 108 | + |
| 109 | +</td> |
| 110 | +</tr> |
| 111 | +</table> |
6 | 112 |
|
7 | 113 | ## Tech Stack |
8 | 114 |
|
9 | | -- **Framework:** Next.js (static export) with TypeScript |
10 | | -- **Styling:** Tailwind CSS v4 |
11 | | -- **Package Manager:** pnpm |
12 | | -- **Hosting:** Firebase Hosting |
13 | | -- **CI/CD:** GitHub Actions |
| 115 | +| Layer | Technology | |
| 116 | +|:------|:-----------| |
| 117 | +| **Framework** | [Next.js](https://nextjs.org) 16 — App Router, static export | |
| 118 | +| **UI Library** | [React](https://react.dev) 19 | |
| 119 | +| **Language** | [TypeScript](https://www.typescriptlang.org) 5 — strict mode | |
| 120 | +| **Styling** | [Tailwind CSS](https://tailwindcss.com) v4 — CSS-first config, OKLCH colors | |
| 121 | +| **Components** | [shadcn/ui](https://ui.shadcn.com) + [Radix UI](https://www.radix-ui.com) — 19 primitives | |
| 122 | +| **Visualizations** | [visx](https://airbnb.io/visx) (D3 bindings) + custom SVG circuit renderer | |
| 123 | +| **Math** | [KaTeX](https://katex.org) via remark-math + rehype-katex | |
| 124 | +| **Content** | [MDX](https://mdxjs.com) with [@next/mdx](https://nextjs.org/docs/app/building-your-application/configuring/mdx) | |
| 125 | +| **Syntax Highlighting** | [Shiki](https://shiki.style) | |
| 126 | +| **Animations** | [Motion](https://motion.dev) | |
| 127 | +| **Icons** | [Lucide React](https://lucide.dev) | |
| 128 | +| **Dark Mode** | [next-themes](https://github.com/pacocoursey/next-themes) | |
| 129 | +| **Hosting** | [Firebase Hosting](https://firebase.google.com/products/hosting) | |
| 130 | +| **CI/CD** | [GitHub Actions](https://github.com/features/actions) — lint, build, deploy | |
| 131 | +| **Package Manager** | [pnpm](https://pnpm.io) 10 | |
| 132 | + |
| 133 | +## Getting Started |
14 | 134 |
|
15 | | -## Development |
| 135 | +### Prerequisites |
| 136 | + |
| 137 | +- [Node.js](https://nodejs.org) >= 22 |
| 138 | +- [pnpm](https://pnpm.io) >= 10 |
| 139 | + |
| 140 | +### Development |
16 | 141 |
|
17 | 142 | ```bash |
| 143 | +# Install dependencies |
18 | 144 | pnpm install |
| 145 | + |
| 146 | +# Start development server (http://localhost:3000) |
19 | 147 | pnpm dev |
20 | 148 | ``` |
21 | 149 |
|
22 | | -## Build |
| 150 | +### Build |
23 | 151 |
|
24 | 152 | ```bash |
| 153 | +# Create optimized static export → out/ |
25 | 154 | pnpm build |
26 | 155 | ``` |
27 | 156 |
|
28 | | -Static output is written to `out/`. |
| 157 | +### Lint |
| 158 | + |
| 159 | +```bash |
| 160 | +pnpm lint |
| 161 | +``` |
| 162 | + |
| 163 | +## Deployment |
| 164 | + |
| 165 | +Deployment is fully automated via **GitHub Actions** on every push to `main`: |
29 | 166 |
|
30 | | -## Deploy |
| 167 | +``` |
| 168 | +push to main → install → lint → build → deploy to Firebase Hosting |
| 169 | +``` |
31 | 170 |
|
32 | | -Deployment is automated via GitHub Actions on push to `main`. For manual deployment: |
| 171 | +For manual deployment: |
33 | 172 |
|
34 | 173 | ```bash |
35 | 174 | firebase deploy |
36 | 175 | ``` |
| 176 | + |
| 177 | +## Project Structure |
| 178 | + |
| 179 | +``` |
| 180 | +src/ |
| 181 | +├── app/ # Next.js App Router |
| 182 | +│ ├── page.tsx # Landing page |
| 183 | +│ ├── compare/ # Encoding comparison tool |
| 184 | +│ ├── encodings/ # Catalog + [slug] detail pages |
| 185 | +│ └── guide/ # Decision guide wizard |
| 186 | +├── components/ |
| 187 | +│ ├── encodings/ # Catalog cards, detail sections |
| 188 | +│ ├── guide/ # Wizard steps, results, option cards |
| 189 | +│ ├── landing/ # Hero, features, carousel, stats |
| 190 | +│ ├── layout/ # Header, footer, navigation |
| 191 | +│ ├── math/ # InlineMath, DisplayMath (KaTeX) |
| 192 | +│ ├── ui/ # 19 shadcn/ui primitives |
| 193 | +│ └── visualization/ # Circuit diagrams, radar charts |
| 194 | +├── content/encodings/ # 16 MDX long-form documentation files |
| 195 | +├── data/ |
| 196 | +│ ├── encodings/ # 16 TypeScript encoding definitions |
| 197 | +│ ├── categories.ts # 7 encoding categories |
| 198 | +│ └── guide-rules.ts # Recommendation rules & constraints |
| 199 | +├── hooks/ # useGuideWizard, useCompareEncodings, ... |
| 200 | +└── lib/ |
| 201 | + ├── recommender.ts # Deterministic recommendation engine |
| 202 | + ├── mdx.ts # Dynamic MDX import map |
| 203 | + ├── animation-variants.ts |
| 204 | + └── utils.ts |
| 205 | +``` |
| 206 | + |
| 207 | +## Related |
| 208 | + |
| 209 | +| | Link | |
| 210 | +|:--|:-----| |
| 211 | +| **Python Library** | [`pip install encoding-atlas`](https://pypi.org/project/encoding-atlas/) | |
| 212 | +| **Source Code** | [github.com/encoding-atlas/quantum-encoding-atlas](https://github.com/encoding-atlas/quantum-encoding-atlas) | |
| 213 | +| **Documentation** | [encoding-atlas.github.io/quantum-encoding-atlas](https://encoding-atlas.github.io/quantum-encoding-atlas/) | |
| 214 | +| **Tutorials** | [encoding-atlas.github.io/.../tutorials](https://encoding-atlas.github.io/quantum-encoding-atlas/tutorials/) | |
| 215 | +| **API Reference** | [encoding-atlas.github.io/.../api](https://encoding-atlas.github.io/quantum-encoding-atlas/api/) | |
| 216 | + |
| 217 | +## License |
| 218 | + |
| 219 | +[MIT](../quantum-encoding-atlas/LICENSE) © 2026 Quantum Encoding Atlas Contributors |
0 commit comments