From c98c8a161cbb6750a32a0f9407f6712742d4bdaf Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 24 Jan 2026 17:22:54 +0000 Subject: [PATCH 1/5] Initial plan From 7e8a8638aab1c8a94308715695ad8263dc28674e Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 24 Jan 2026 17:24:27 +0000 Subject: [PATCH 2/5] Initial assessment of quantum network visualization Co-authored-by: dirkenglund <46609341+dirkenglund@users.noreply.github.com> --- __pycache__/edges.cpython-312.pyc | Bin 0 -> 2332 bytes __pycache__/nodes.cpython-312.pyc | Bin 0 -> 3835 bytes boston_network_map.html | 1391 +++++++++++++++++++++++++++++ 3 files changed, 1391 insertions(+) create mode 100644 __pycache__/edges.cpython-312.pyc create mode 100644 __pycache__/nodes.cpython-312.pyc create mode 100644 boston_network_map.html diff --git a/__pycache__/edges.cpython-312.pyc b/__pycache__/edges.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..234fce3d7de72d0f67e466e2b6f8b9688565113a GIT binary patch literal 2332 zcmb7FOKcif6di`)kK@Fj*v_vcP8^e#*ai&PapC~BV<&(U46T9`jj->;CgI}_gHn&0 zMe9_`q6=0HOO{mL%#xj1MrtcXLaN-^G*wr#bLB;=^yA(Kn5ICa_DS=&_q_AYyZ65P z#5Y}CMheFOl}kJ@Q`FDIIU2(atmm0VcaTAzZ@Gdw8-EbUEbijL{7y8<8BlN>b7-+!< zVF*sa={6mLpMkR-@pJHAN8AGEJK`5Guhuw;{&0u*2jL=I!uZ?y$1u)L=Z>IGr#MHT zbDSgZ$ZG`a++GI;F2g8T+wSEuTtWW(@IgyGZEzL&V=&%=PkMlc+Nat~Px) zc#wY*rds$On1*Xux7Kq#*gw~>KJEAn;-}m2D{vidz%1Ns(Z2%TR($h|nLr}_ST%xX?7WjBNn@VJ} ziA-8HByk%nY;AHOt5(*tY&xFeSXMT&Y$^k}B(cpb`*ALwY^L zvdGaqOlIQ3*VF+?@Xg%VMkd9L@ws%G9p4V@nT~DW-ZP)r4({~~RGERj?w)5MzVB#{XbLVx zYzvE%ZkNp~GmGBvhoatYSqU!K>>dS>ru=nyct|d3mE-H|z*5M+90)0&;OaVlIGD=Y zLO#(*RP8RC(={ooot9bUE|Qc#QAyMhb=UZ~vVc%yySXB&?Z_h6wEnO*w3Via!{w>l z4wnt%6m?D#ABGo0I?;1`#ux7@Y{PRoh!-WE$!@tDbUAEM=lGm*haiKEy_V4+C&ZJM zl?{#)HaM`>xz6z#w{e`uHsP5Rb*}nx^$bJH5pQ^TMKt)LwtKnId?X_3Cywfs#v^2P zG&rYxg;pcE-*#oafB9Z`-W!>hb&>E=Xen}Ec}WQ0eM`n4yRs%4^scPPbaYwyoGdtM z?%N=oTCB`edCq5@8pkz6R%DS2U1f;}-~sdPgG^S?%+MWM(Ooz9$Yu z`1s}~2Nv|Q7Jml2ZH+XfVn<;G@8nSI!kBFi&($f9-7)13Sv9h$`9QfWPdbZd$V8e= z){xhb<$DQG>!g0P-sorQPvHjdLRW=fb{PMs_SGtt>PKqywaWM_tyT5zQ#c){DcZD8 z++X@Ajp6y(g0^TZ`K2D|qbhU#2S$%bS5cH4Wv0AdWftm)xyY5m|Kga73G^dnca`xU z?aGx_rHf@e|9K9X)D{fEPz z7E@BV+*8I>=j%F8YiWeb_&~kyMjlBQq}4K>?jxMD1yeC5^}dCi&U1xWska0Y20cSK zr}Fn}W$lxmRGC?V4CF5sj75K`uY`!3Abrns`A5a!B42V>83#dz@=FD=WG@NL%NWYv zDW1a8|D!XMUntxz(WN;FpDz0< SbOmD!>|Z-)pg+^pn&@xJE`44A literal 0 HcmV?d00001 diff --git a/__pycache__/nodes.cpython-312.pyc b/__pycache__/nodes.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..26bd2b1f99d2c2af17dea581a06116c40ea57fd4 GIT binary patch literal 3835 zcmZuy4Qw0L9Y3G#IQ~f7I7!=-wp?jS6NsCp`D{p=*opHUr%CKIO+Va=-^IDczH{%+ zEjgfF7SL8{W2u-#g^&hAOpG8jZ3A^$nLKSkHZ=4$BQ-sw4Gj&%*pQ)2n_$xRf6qzk z1RUkwyZ8V7zka{>-n~^+K3t1~JGKXA-7KQ-Ymj zO^je-nH~nQk21)-#OAO|t1gpfkwF%g5zNSftf&ClP$B%=kz=Va2YJGToYd|_E>why zksED6CCGzHW2PnhI;Mg&Cm=5Gae&Fbq7D zUZB=NG=zd+*%Y1HhS4!Jf=1C83gxRqZDBNyjsr6j8whqISjKEBq5Hrb!;n)ZkWNL#|I%Da~3Tx)|HOu`Nw^kC`kKY!J;sY;(?PmthIYNHEMP5g8VVPY6a~QdUJx zlqJKN5E8O77t!XDf?ZmhxK_yI;`Wsc87d;9})FmIkF_Et>8e>I-?hdmEdZyguFCElvpv z*PEK+=t4CcD`{$bZS+8(Bj$YNM{{q!K9bhW!CIfeHVhaA!xGRA3U!VI4NI?YblkA@ z^2!BXLExypQvT&z#PJ7hHSaw2#z@*QkBQ?3TQ{Ivj@Bhq!`>%>R`Ixi^a4`E;Gn*9 zBu5O_tqA8+f)t(OI%VmCps2ufuGGQ4VCV2)P{qrcGB6)uTEXQMJS=T`WA0pbF*HY8@aIncO1Hd+CJI$-9NSx{M*l8fAJrH z2PUNP_2BhQEi^cc)vU4)l=<-N-|#)}-U-~~1vT`7dOAV@3+dlK8-ReyegNw`AXp6t z+}3ca7#E|m#PxWif}{zGVNvBZ;)25=-{|m|?hL}tRb+LQxRqbF|9OcNw=%DGe;;JJ z(@YCAO`2(GgeE3lX#B$i1UGtp_hTQE+AK#8fr@O{rQjU`FQIDA%Y_tC5+Mvo z8y8{%#Mu6bRea;6{*Kr~ebJvk?x;xXt|Xu(0kv|3#-e0OiO%pUd9NEVY{zm&-A=TF zf7n)T7`VLsLiPqg9X&EsEhT^|!#WZU20}2Tf`SHFJusc6MxM94{u|JY4G-&O z8yg)~gqSP=+A?13{i(IPBX+&xn}2;XeFhZvp9mAfhu^9C=dP}f*e4&S5AXdu5Wx0^ z^^#usA{-L#PBefXaol_^nd*(qa)o-+^I08~d<4$h2YW`Li11LCzV%KPBF+%6%u%x0nE63xWz{9f zcy8$S<6~`*(WNPTGASUATx{av@h5fI-ysr>C>6h=ZoHH zK&f*#v?sP(Kq+$@(9HV7`aZv`YOpc$YB@F|!-^PHxjreHn&RP7h8Vw{YnlJ32AX(o z{MxT>l3SwyBngBse?Rlh6S0i>M-_6wbPK^4wm`5a zGU)T`WdSJ`PXUu~S#VYK95q(MVXK1k6MO5~z^k{3Qz1P=u%`?&Y#5NxAJkp&;70j5 zZAPFs0r_c9(@BHt;YuB_QqL{!555mQ-)^MW4AyJK{RB~sjdO=&=!Gno` zYMW9|?%W3QXd=hf?hku&ttp4eVk>!&Z(p$5YB<+F(SoXw8=rn$=>2b4={G^yPFCqX zz5`}o6t?9)Sx1$2cqN}y^+j;ZnoTCtUzn=*OpbrEc2i@PfyZq#!#cC{b$f-KU9ps0 zZMas1_qX8Iq2&}FpTwtl9G%4pB~z+q%>a4N;<(baxb<2Eu57+up0=c?muKdrHn_;Itj$J z3c>ptar5A^fWs&8X{g{Fj;Au73)vz9D*kGm5FS5+&k7mObk_hYXw-MCzdkA?AZARwM`B(irC498dDtzCO>!~za4&X76?0m+dWcLE((@Lh;17)=1n)Y=0vV{msRLvC4 z-g3GZt$154uIoxmbQ6>0Sh|>TK6uMry4Z*BZpCduTGlCiW^ISN)mtUyiwN)R!~s~2 zVgd3gSj(~5PgxjXR|7!seo_+b=G>k + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Legend
+  Existing Edge
+  Planned Link
+  Fiber Connection
+
+ +
+ + + + \ No newline at end of file From ad158b1eea1fe9a9074417107057d0202f4ee0df Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 24 Jan 2026 17:26:08 +0000 Subject: [PATCH 3/5] Add GitHub Pages deployment with improved visualization Co-authored-by: dirkenglund <46609341+dirkenglund@users.noreply.github.com> --- .github/workflows/deploy.yml | 55 ++ .gitignore | 38 + README.md | 55 +- __pycache__/edges.cpython-312.pyc | Bin 2332 -> 0 bytes __pycache__/nodes.cpython-312.pyc | Bin 3835 -> 0 bytes boston_network_map.html | 1391 ----------------------------- edges.py | 3 - index.html | 226 +++++ nodes.py | 2 +- 9 files changed, 369 insertions(+), 1401 deletions(-) create mode 100644 .github/workflows/deploy.yml create mode 100644 .gitignore delete mode 100644 __pycache__/edges.cpython-312.pyc delete mode 100644 __pycache__/nodes.cpython-312.pyc delete mode 100644 boston_network_map.html create mode 100644 index.html diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 0000000..f0fab45 --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,55 @@ +name: Deploy to GitHub Pages + +on: + push: + branches: + - main + workflow_dispatch: + +permissions: + contents: read + pages: write + id-token: write + +concurrency: + group: "pages" + cancel-in-progress: false + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: '3.12' + + - name: Install dependencies + run: | + pip install -r requirements.txt + + - name: Generate visualization + run: | + python main.py + + - name: Setup Pages + uses: actions/configure-pages@v4 + + - name: Upload artifact + uses: actions/upload-pages-artifact@v3 + with: + path: '.' + + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + needs: build + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a47611a --- /dev/null +++ b/.gitignore @@ -0,0 +1,38 @@ +# Python +__pycache__/ +*.py[cod] +*$py.class +*.so +.Python +env/ +venv/ +ENV/ +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +*.egg-info/ +.installed.cfg +*.egg + +# IDE +.vscode/ +.idea/ +*.swp +*.swo +*~ + +# OS +.DS_Store +Thumbs.db + +# Generated HTML (will be generated during deployment) +boston_network_map.html diff --git a/README.md b/README.md index 1980b15..a58b685 100644 --- a/README.md +++ b/README.md @@ -2,25 +2,68 @@ This repository contains a simulation of a quantum network involving various institutions, fiber hubs, and quantum technologies. -created for CQN review 2024 +Created for CQN Review 2024 + +## 🌐 Live Visualization + +View the interactive network visualization at: **[GitHub Pages](https://dirkenglund.github.io/quantum-network-code/)** + +The visualization is automatically updated whenever changes are pushed to the main branch. ## File Descriptions - **nodes.py**: Contains definitions for nodes in the network, including their properties. - **edges.py**: Contains definitions for links in the network, including properties like length, transmission loss, and link type. - **main.py**: The main script that builds the network graph and creates a Folium map for visualization. +- **index.html**: Landing page for the GitHub Pages deployment with enhanced UI. - **requirements.txt**: Lists the required Python packages to run the simulation. -## How to Run +## Network Statistics + +- **24 Network Nodes** across multiple institutions +- **27 Fiber Links** connecting the quantum network +- **Multiple Quantum Technologies** including SiV, SnV, and Trapped Ions +- **Geographic Coverage** spanning the USA and international locations + +## How to Run Locally 1. Install the required packages using: -pip install -r requirements.txt + ```bash + pip install -r requirements.txt + ``` 2. Run the main script: -python main.py - + ```bash + python main.py + ``` 3. Open the generated `boston_network_map.html` file in a web browser to view the network visualization. +## Deployment + +This project uses GitHub Actions to automatically deploy to GitHub Pages. The workflow: +1. Installs Python dependencies +2. Generates the visualization map +3. Deploys to GitHub Pages + +To enable GitHub Pages for your fork: +1. Go to repository Settings > Pages +2. Set Source to "GitHub Actions" +3. Push to main branch to trigger deployment + +## Features + +- **Interactive Map**: Click on nodes to view detailed specifications +- **Network Visualization**: Visual representation of quantum network topology +- **Real-time Updates**: Automatically deployed when code changes +- **Responsive Design**: Works on desktop and mobile devices +- **Detailed Information**: Each node shows memory type, cooling, T2 time, status, and more + +## Technologies Used + +- **Python**: For data processing and map generation +- **Folium**: For creating interactive Leaflet maps +- **NetworkX**: For graph structure and network analysis +- **GitHub Actions**: For automated deployment +- **GitHub Pages**: For hosting the visualization -[Example:](https://github.com/dirkenglund/quantum-network-code/blob/main/partial-cqn-network.html) diff --git a/__pycache__/edges.cpython-312.pyc b/__pycache__/edges.cpython-312.pyc deleted file mode 100644 index 234fce3d7de72d0f67e466e2b6f8b9688565113a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2332 zcmb7FOKcif6di`)kK@Fj*v_vcP8^e#*ai&PapC~BV<&(U46T9`jj->;CgI}_gHn&0 zMe9_`q6=0HOO{mL%#xj1MrtcXLaN-^G*wr#bLB;=^yA(Kn5ICa_DS=&_q_AYyZ65P z#5Y}CMheFOl}kJ@Q`FDIIU2(atmm0VcaTAzZ@Gdw8-EbUEbijL{7y8<8BlN>b7-+!< zVF*sa={6mLpMkR-@pJHAN8AGEJK`5Guhuw;{&0u*2jL=I!uZ?y$1u)L=Z>IGr#MHT zbDSgZ$ZG`a++GI;F2g8T+wSEuTtWW(@IgyGZEzL&V=&%=PkMlc+Nat~Px) zc#wY*rds$On1*Xux7Kq#*gw~>KJEAn;-}m2D{vidz%1Ns(Z2%TR($h|nLr}_ST%xX?7WjBNn@VJ} ziA-8HByk%nY;AHOt5(*tY&xFeSXMT&Y$^k}B(cpb`*ALwY^L zvdGaqOlIQ3*VF+?@Xg%VMkd9L@ws%G9p4V@nT~DW-ZP)r4({~~RGERj?w)5MzVB#{XbLVx zYzvE%ZkNp~GmGBvhoatYSqU!K>>dS>ru=nyct|d3mE-H|z*5M+90)0&;OaVlIGD=Y zLO#(*RP8RC(={ooot9bUE|Qc#QAyMhb=UZ~vVc%yySXB&?Z_h6wEnO*w3Via!{w>l z4wnt%6m?D#ABGo0I?;1`#ux7@Y{PRoh!-WE$!@tDbUAEM=lGm*haiKEy_V4+C&ZJM zl?{#)HaM`>xz6z#w{e`uHsP5Rb*}nx^$bJH5pQ^TMKt)LwtKnId?X_3Cywfs#v^2P zG&rYxg;pcE-*#oafB9Z`-W!>hb&>E=Xen}Ec}WQ0eM`n4yRs%4^scPPbaYwyoGdtM z?%N=oTCB`edCq5@8pkz6R%DS2U1f;}-~sdPgG^S?%+MWM(Ooz9$Yu z`1s}~2Nv|Q7Jml2ZH+XfVn<;G@8nSI!kBFi&($f9-7)13Sv9h$`9QfWPdbZd$V8e= z){xhb<$DQG>!g0P-sorQPvHjdLRW=fb{PMs_SGtt>PKqywaWM_tyT5zQ#c){DcZD8 z++X@Ajp6y(g0^TZ`K2D|qbhU#2S$%bS5cH4Wv0AdWftm)xyY5m|Kga73G^dnca`xU z?aGx_rHf@e|9K9X)D{fEPz z7E@BV+*8I>=j%F8YiWeb_&~kyMjlBQq}4K>?jxMD1yeC5^}dCi&U1xWska0Y20cSK zr}Fn}W$lxmRGC?V4CF5sj75K`uY`!3Abrns`A5a!B42V>83#dz@=FD=WG@NL%NWYv zDW1a8|D!XMUntxz(WN;FpDz0< SbOmD!>|Z-)pg+^pn&@xJE`44A diff --git a/__pycache__/nodes.cpython-312.pyc b/__pycache__/nodes.cpython-312.pyc deleted file mode 100644 index 26bd2b1f99d2c2af17dea581a06116c40ea57fd4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3835 zcmZuy4Qw0L9Y3G#IQ~f7I7!=-wp?jS6NsCp`D{p=*opHUr%CKIO+Va=-^IDczH{%+ zEjgfF7SL8{W2u-#g^&hAOpG8jZ3A^$nLKSkHZ=4$BQ-sw4Gj&%*pQ)2n_$xRf6qzk z1RUkwyZ8V7zka{>-n~^+K3t1~JGKXA-7KQ-Ymj zO^je-nH~nQk21)-#OAO|t1gpfkwF%g5zNSftf&ClP$B%=kz=Va2YJGToYd|_E>why zksED6CCGzHW2PnhI;Mg&Cm=5Gae&Fbq7D zUZB=NG=zd+*%Y1HhS4!Jf=1C83gxRqZDBNyjsr6j8whqISjKEBq5Hrb!;n)ZkWNL#|I%Da~3Tx)|HOu`Nw^kC`kKY!J;sY;(?PmthIYNHEMP5g8VVPY6a~QdUJx zlqJKN5E8O77t!XDf?ZmhxK_yI;`Wsc87d;9})FmIkF_Et>8e>I-?hdmEdZyguFCElvpv z*PEK+=t4CcD`{$bZS+8(Bj$YNM{{q!K9bhW!CIfeHVhaA!xGRA3U!VI4NI?YblkA@ z^2!BXLExypQvT&z#PJ7hHSaw2#z@*QkBQ?3TQ{Ivj@Bhq!`>%>R`Ixi^a4`E;Gn*9 zBu5O_tqA8+f)t(OI%VmCps2ufuGGQ4VCV2)P{qrcGB6)uTEXQMJS=T`WA0pbF*HY8@aIncO1Hd+CJI$-9NSx{M*l8fAJrH z2PUNP_2BhQEi^cc)vU4)l=<-N-|#)}-U-~~1vT`7dOAV@3+dlK8-ReyegNw`AXp6t z+}3ca7#E|m#PxWif}{zGVNvBZ;)25=-{|m|?hL}tRb+LQxRqbF|9OcNw=%DGe;;JJ z(@YCAO`2(GgeE3lX#B$i1UGtp_hTQE+AK#8fr@O{rQjU`FQIDA%Y_tC5+Mvo z8y8{%#Mu6bRea;6{*Kr~ebJvk?x;xXt|Xu(0kv|3#-e0OiO%pUd9NEVY{zm&-A=TF zf7n)T7`VLsLiPqg9X&EsEhT^|!#WZU20}2Tf`SHFJusc6MxM94{u|JY4G-&O z8yg)~gqSP=+A?13{i(IPBX+&xn}2;XeFhZvp9mAfhu^9C=dP}f*e4&S5AXdu5Wx0^ z^^#usA{-L#PBefXaol_^nd*(qa)o-+^I08~d<4$h2YW`Li11LCzV%KPBF+%6%u%x0nE63xWz{9f zcy8$S<6~`*(WNPTGASUATx{av@h5fI-ysr>C>6h=ZoHH zK&f*#v?sP(Kq+$@(9HV7`aZv`YOpc$YB@F|!-^PHxjreHn&RP7h8Vw{YnlJ32AX(o z{MxT>l3SwyBngBse?Rlh6S0i>M-_6wbPK^4wm`5a zGU)T`WdSJ`PXUu~S#VYK95q(MVXK1k6MO5~z^k{3Qz1P=u%`?&Y#5NxAJkp&;70j5 zZAPFs0r_c9(@BHt;YuB_QqL{!555mQ-)^MW4AyJK{RB~sjdO=&=!Gno` zYMW9|?%W3QXd=hf?hku&ttp4eVk>!&Z(p$5YB<+F(SoXw8=rn$=>2b4={G^yPFCqX zz5`}o6t?9)Sx1$2cqN}y^+j;ZnoTCtUzn=*OpbrEc2i@PfyZq#!#cC{b$f-KU9ps0 zZMas1_qX8Iq2&}FpTwtl9G%4pB~z+q%>a4N;<(baxb<2Eu57+up0=c?muKdrHn_;Itj$J z3c>ptar5A^fWs&8X{g{Fj;Au73)vz9D*kGm5FS5+&k7mObk_hYXw-MCzdkA?AZARwM`B(irC498dDtzCO>!~za4&X76?0m+dWcLE((@Lh;17)=1n)Y=0vV{msRLvC4 z-g3GZt$154uIoxmbQ6>0Sh|>TK6uMry4Z*BZpCduTGlCiW^ISN)mtUyiwN)R!~s~2 zVgd3gSj(~5PgxjXR|7!seo_+b=G>k - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Legend
-  Existing Edge
-  Planned Link
-  Fiber Connection
-
- -
- - - - \ No newline at end of file diff --git a/edges.py b/edges.py index cf3934a..3306f19 100644 --- a/edges.py +++ b/edges.py @@ -37,7 +37,4 @@ class Link: Link("ATT_HUB", "MIT-MITLL", "3 SMF-28", 80, -1.5, "fiber"), # AT&T Fiber Hub to MIT Lincoln Lab Link("ATT_HUB", "HARV", "3 SMF-28", 85, -1.5, "fiber"), # AT&T Fiber Hub to Harvard Link("ATT_HUB", "BBN", "3 SMF-28", 90, -1.5, "fiber"), # AT&T Fiber Hub to BBN Raytheon - # Additional edges for U-Maryland and IonQ - Link("UMD", "IonQ", "Trapped Ions Connection", 50, -1, "fiber"), # Example connection to IonQ - Link("UMD", "UMD-38.982397", "Trapped Ions Connection", 50, -1, "fiber"), # Example connection to another UMD location ] diff --git a/index.html b/index.html new file mode 100644 index 0000000..d3f5dec --- /dev/null +++ b/index.html @@ -0,0 +1,226 @@ + + + + + + Quantum Network Visualization - CQN Review 2024 + + + +
+

🔬 Quantum Network Simulation

+

Interactive visualization of a quantum network involving various institutions, fiber hubs, and quantum technologies - Created for CQN Review 2024

+
+ +
+
+

About This Network

+

+ This visualization displays a comprehensive quantum network connecting research institutions, + universities, and technology hubs across the United States and internationally. The network + includes both operational and planned quantum communication links using various technologies. +

+ +
+
+

24

+

Network Nodes

+
+
+

27

+

Fiber Links

+
+
+

Multiple

+

Quantum Technologies

+
+
+

2024

+

CQN Review

+
+
+
+ +
+

Network Features

+
    +
  • Quantum Memory Types: SiV (Silicon Vacancy), SnV (Tin Vacancy), Trapped Ions, and more
  • +
  • Cooling Systems: Ranging from Room Temperature (RT) to sub-100mK cryogenic systems
  • +
  • Participants: MIT, Harvard, Lincoln Lab, University of Arizona, Trinity College, and many more
  • +
  • Link Types: Fiber optic connections with varying specifications (SMF-28, PM fibers, etc.)
  • +
  • Interactive Map: Click on any node or link to see detailed technical specifications
  • +
+
+ +
+ +
+ +
+

How to Use

+

+ Explore the map above: Click on blue markers to view detailed information about each node, + including memory type, cooling specifications, coherence time (T2), operational status, and participating organizations. + Lines between nodes represent fiber optic connections with detailed specifications available on click. +

+

+ Legend: Blue lines indicate existing operational links, while red dashed lines show planned connections. + The map is interactive - you can zoom, pan, and click on any element for more information. +

+ + + View on GitHub → + +
+
+ + + + diff --git a/nodes.py b/nodes.py index 010350c..81755bc 100644 --- a/nodes.py +++ b/nodes.py @@ -34,7 +34,7 @@ class Node: "UMASS": Node("UMASS", "UMass Amherst", (42.3902, -72.5297), "N/A", "1K", "N/A", "Installed", "MIT-LL"), "UMD": Node("UMD", "University of Maryland", (38.9856, -76.9426), "trapped ions", "RT", ">1 s", "Online", "Startup"), "TRINITY": Node("TRINITY", "Trinity College (Ireland)", (53.3434, -6.2540), "SnV", "<1K", "?", "Online", "CQN"), - "BU-QuNETT": Node("BU", "Boston University Photonics Incubator", (42.350876, -71.106918), "SiV", "<1K", "soon", "Installed", "QuNETT"), + "BU-QuNETT": Node("BU-QuNETT", "Boston University Photonics Incubator", (42.350876, -71.106918), "SiV", "<1K", "soon", "Installed", "QuNETT"), "ATT_HUB": Node("ATT_HUB", "AT&T Fiber Hub", (42.3633196, -71.0925566), "N/A", "N/A", "N/A", "Online", "AT&T"), "ENG_LAB": Node("ENG_LAB", "Englund Lab (36-575)", (42.3615, -71.0930), "SiV, SnV", "4K", "N/A", "Online", "MIT"), "BBN": Node("BBN", "BBN Raytheon", (42.3897538, -71.1475561), "fridge exists, in discussions", "<100mK", "N/A", "Online", "BBN"), From 4055325786a695b329be4a770bb7cae5c73a85d4 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 24 Jan 2026 17:27:14 +0000 Subject: [PATCH 4/5] Add Vercel deployment support and build script Co-authored-by: dirkenglund <46609341+dirkenglund@users.noreply.github.com> --- README.md | 30 ++++++++++++++++++++++++++++++ build.sh | 10 ++++++++++ vercel.json | 12 ++++++++++++ 3 files changed, 52 insertions(+) create mode 100755 build.sh create mode 100644 vercel.json diff --git a/README.md b/README.md index a58b685..5f63484 100644 --- a/README.md +++ b/README.md @@ -36,11 +36,18 @@ The visualization is automatically updated whenever changes are pushed to the ma ```bash python main.py ``` + + Or use the build script: + ```bash + ./build.sh + ``` 3. Open the generated `boston_network_map.html` file in a web browser to view the network visualization. ## Deployment +### GitHub Pages (Recommended) + This project uses GitHub Actions to automatically deploy to GitHub Pages. The workflow: 1. Installs Python dependencies 2. Generates the visualization map @@ -51,6 +58,29 @@ To enable GitHub Pages for your fork: 2. Set Source to "GitHub Actions" 3. Push to main branch to trigger deployment +### Vercel (Alternative) + +You can also deploy this project to Vercel: + +1. Install Vercel CLI: + ```bash + npm i -g vercel + ``` + +2. Deploy: + ```bash + vercel + ``` + +Or connect your GitHub repository to Vercel through their dashboard for automatic deployments. + +The `vercel.json` configuration file is already set up to: +- Install Python dependencies +- Generate the visualization map during build +- Serve the static files +2. Generates the visualization map +3. Deploys to GitHub Pages + ## Features - **Interactive Map**: Click on nodes to view detailed specifications diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..65d1030 --- /dev/null +++ b/build.sh @@ -0,0 +1,10 @@ +#!/bin/bash +# Simple build script for generating the visualization + +echo "Installing dependencies..." +pip install -r requirements.txt + +echo "Generating quantum network visualization..." +python main.py + +echo "Done! Open index.html in your browser to view the visualization." diff --git a/vercel.json b/vercel.json new file mode 100644 index 0000000..ac6378a --- /dev/null +++ b/vercel.json @@ -0,0 +1,12 @@ +{ + "version": 2, + "buildCommand": "pip install -r requirements.txt && python main.py", + "outputDirectory": ".", + "installCommand": "pip install -r requirements.txt", + "framework": null, + "public": true, + "github": { + "enabled": true, + "autoAlias": true + } +} From 9d74f784f0d72f80e57c60a2d8894685e6f7b943 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 24 Jan 2026 17:28:46 +0000 Subject: [PATCH 5/5] Fix duplicate content in README Co-authored-by: dirkenglund <46609341+dirkenglund@users.noreply.github.com> --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index 5f63484..72c7c62 100644 --- a/README.md +++ b/README.md @@ -78,8 +78,6 @@ The `vercel.json` configuration file is already set up to: - Install Python dependencies - Generate the visualization map during build - Serve the static files -2. Generates the visualization map -3. Deploys to GitHub Pages ## Features