explaingit

johnzja/rydbergcomms

Analysis updated 2026-06-24

11MATLABAudience · researcherComplexity · 5/5Setup · hard

TLDR

Research code that simulates radio communication signals received by a Rydberg atomic receiver, with a Flask web UI, C++ RK4, and CUDA backends.

Mindmap

mindmap
  root((RydbergComms))
    Inputs
      TX waveforms
      Simulation params
      Backend choice
    Outputs
      RX waveforms
      Constellation plots
      MSE in dB
    Use Cases
      Test atomic receivers
      Reproduce paper results
      Run quantum sim on GPU
    Tech Stack
      Python
      Flask
      MATLAB
      C++
      CUDA
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Simulate a single-carrier signal hitting a Rydberg atomic receiver

USE CASE 2

Compare CPU and GPU quantum-solver backends on the same waveform

USE CASE 3

Reproduce the dynamic transfer function results from the paper

USE CASE 4

Drive simulations from a browser via the Flask web UI

What is it built with?

PythonFlaskMATLABC++CUDA

How does it compare?

johnzja/rydbergcommschenshuo/dspfirstaaronjackson/vrn
Stars11164,521
LanguageMATLABMATLABMATLAB
Setup difficultyhardeasyhard
Complexity5/52/54/5
Audienceresearcherresearcherresearcher

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · hard Time to first run · 1day+

GPU path needs CUDA toolchain plus a CUDAHOSTCXX env var on Windows, and you must build C++ and CUDA binaries before the web app works.

In plain English

RydbergComms is a research code release from Jieao Zhu at Tsinghua University that simulates communication signals being received by a Rydberg atomic receiver. A Rydberg receiver is a physics-based way of detecting radio waves using atoms in a special excited state, and this repository lets researchers test how well such receivers handle real waveforms. The code is split into three parts. There is a Flask web application defined in app.py that gives a browser front end for kicking off a simulation, watching it run in the background, and looking at the resulting transmit and receive waveforms and a constellation plot. There is also a reusable Python single carrier simulator that researchers can call from their own scripts, and a set of MATLAB scripts that go with the author's paper on dynamic transfer functions of Rydberg atomic receivers. Under the simulation surface there are two compute backends, a C plus plus RK4 solver and a CUDA version that runs on a GPU. The README shows that the CUDA build gives a large speedup over the CPU build. You build the backends with make cpp and make cuda from the repository root, and the binaries end up under python/utils/bin/. On Windows the CUDA build may need a CUDAHOSTCXX environment variable. The web service is started with python app.py and listens on port 5000. The README documents a three step HTTP API: post to /api/generate_tx to make a transmit IF waveform, post to /api/start_simulation with that waveform and a backend choice of cpp or cuda, then poll /api/simulation_status with the returned job id until the status is completed. A worked Python client example is included. For local use the repository also shows a direct pipeline through sim_SingleCarrier.py and TransientQuantumSimulator, generating symbols, modulating to an intermediate frequency, running the quantum simulation, demodulating, and printing a mean squared error in decibels. The full reference is in python/study_sc.py.

Copy-paste prompts

Prompt 1
Walk me through building both the C++ and CUDA backends on Linux
Prompt 2
Show me how to call /api/generate_tx and poll /api/simulation_status from Python
Prompt 3
Help me run sim_SingleCarrier.py end-to-end and read the MSE output
Prompt 4
Explain what the MATLAB scripts add on top of the Python simulator
Prompt 5
Generate a curl-based client for the three-step simulation HTTP API

Frequently asked questions

What is rydbergcomms?

Research code that simulates radio communication signals received by a Rydberg atomic receiver, with a Flask web UI, C++ RK4, and CUDA backends.

What language is rydbergcomms written in?

Mainly MATLAB. The stack also includes Python, Flask, MATLAB.

How hard is rydbergcomms to set up?

Setup difficulty is rated hard, with roughly 1day+ to a first successful run.

Who is rydbergcomms for?

Mainly researcher.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.