Full-duplex (driving-style) streaming English → German translation LM on a shared 10 Hz clock (100 ms ticks).
At every tick the model reads arriving English pieces (s_t) and its own previous output (y_{t-1}), and emits either one German piece or NOP (wait).
duplex.live downloads the 448 MB checkpoint and SentencePiece tokenizer automatically from Hugging Face on first run:
git clone https://github.com/sumit-1/duplex-simmt-en-de.git
cd duplex-simmt-en-de
pip install -e .
# Split-screen terminal UI (type English in top pane, German streams live at 10 Hz in bottom pane)
python -m duplex.live --ckpt sumitk/duplex-simmt-en-de --nop-bias 0.0