Simulate a single-carrier signal hitting a Rydberg atomic receiver
Compare CPU and GPU quantum-solver backends on the same waveform
Reproduce the dynamic transfer function results from the paper
Drive simulations from a browser via the Flask web UI
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.
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.
Generated 2026-05-22 · Model: sonnet-4-6 · Verify against the repo before relying on details.