{"id":21358698,"url":"https://github.com/zceemja/suzirjax","last_synced_at":"2026-01-28T06:42:16.431Z","repository":{"id":160465928,"uuid":"604587529","full_name":"zceemja/suzirjax","owner":"zceemja","description":"UCL Optical Networks Group (ONG) Real-Time Constellation Shaper","archived":false,"fork":false,"pushed_at":"2024-06-04T14:30:14.000Z","size":16746,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"wip","last_synced_at":"2025-04-12T23:49:52.677Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zceemja.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-02-21T11:29:24.000Z","updated_at":"2024-11-14T22:07:43.000Z","dependencies_parsed_at":null,"dependency_job_id":"e5b1171c-78ac-4971-8850-46eb2aac7d83","html_url":"https://github.com/zceemja/suzirjax","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zceemja%2Fsuzirjax","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zceemja%2Fsuzirjax/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zceemja%2Fsuzirjax/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zceemja%2Fsuzirjax/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zceemja","download_url":"https://codeload.github.com/zceemja/suzirjax/tar.gz/refs/heads/wip","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248647253,"owners_count":21139081,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-22T05:21:38.834Z","updated_at":"2026-01-28T06:42:16.403Z","avatar_url":"https://github.com/zceemja.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Suzirjax [_suzïr'yax_]\nUCL Optical Networks Group (ONG) Real-Time Constellation Shaper\n\n![demo.mp4](resources%2Fdemo.gif)\n\n## What's here?\nHere you can find code for constellation shaping for AWGN/PC-AWGN simulation including pyQT5 gui, \nor headless \"animator\" to produce lovely mp4 animations.\n\nIt also includes \"remote channel\" that connects to the lab and does experimental transmission.\nDSP is mostly handled by [QAMpy](http://qampy.org/) library.\n\n## Reason for naming\nIt's a word \"constellation\" in Ukrainian (сузір'я) with \"jax\" suffix because \npython side computation is implemented in [JAX](https://github.com/google/jax).\n\n## OFC 2023\nFind out more in \n[OFC23 Demo video](https://mediacentral.ucl.ac.uk/player?autostart=n\u0026videoId=8ad172H5\u0026captions=y\u0026chapterId=0\u0026playerJs=n)\n\n## Transnet Meeting 2023\n![transnet.png](resources%2Ftransnet.png)\n\nA demonstration of constellation shaping used in Transnet EAB meeting 2023-03-22. In a long\n[simulation video](https://mediacentral.ucl.ac.uk/flash/Ba94g80h_hd.mp4) channel noise oscillates between 10dB and 2.5dB SNR.\n\n## Experimental setup\nExperimental setup includes single channel transmission over 1550nm with \nreal-time updatable channel and launch power parameters. Encoding and DSP is done remotely (server side), \nGMI calculations and optimisation are done locally (gui client) with new constellations \nbeing sent back to server.\n\n![diagram.png](resources%2Fdiagram.png)\n\n\n### How to run?\n\nPreparation\n```shell\npython -m venv env\npip install -r requirements.txt\n\n# for CUDA acceleration\npip install \"jax[cuda]\" -f https://storage.googleapis.com/jax-releases/jax_cuda_releases.html\n```\n\nRun GUI\n```shell\npython -m suzirjax\n```\n\nRun Animation generator\n```shell\npython -m suzirjax.animation\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzceemja%2Fsuzirjax","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzceemja%2Fsuzirjax","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzceemja%2Fsuzirjax/lists"}