{"id":13774105,"url":"https://github.com/LudwigCRON/undulate","last_synced_at":"2025-05-11T06:32:12.228Z","repository":{"id":44085201,"uuid":"166642218","full_name":"LudwigCRON/undulate","owner":"LudwigCRON","description":null,"archived":false,"fork":false,"pushed_at":"2024-09-19T07:32:33.000Z","size":34593,"stargazers_count":35,"open_issues_count":5,"forks_count":1,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-11-17T09:38:39.213Z","etag":null,"topics":["digital-timing-diagrams","eps","json","pdf","png","svg","timing-diagram","wavedrom","waveform"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LudwigCRON.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":"docs/supported_syntax.html","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-01-20T09:05:29.000Z","updated_at":"2024-09-19T07:32:39.000Z","dependencies_parsed_at":"2024-08-03T17:18:20.059Z","dependency_job_id":null,"html_url":"https://github.com/LudwigCRON/undulate","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LudwigCRON%2Fundulate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LudwigCRON%2Fundulate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LudwigCRON%2Fundulate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LudwigCRON%2Fundulate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LudwigCRON","download_url":"https://codeload.github.com/LudwigCRON/undulate/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253528365,"owners_count":21922623,"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":["digital-timing-diagrams","eps","json","pdf","png","svg","timing-diagram","wavedrom","waveform"],"created_at":"2024-08-03T17:01:23.752Z","updated_at":"2025-05-11T06:32:11.622Z","avatar_url":"https://github.com/LudwigCRON.png","language":"Python","funding_links":[],"categories":["Documentation"],"sub_categories":[],"readme":"\n# Undulate\n![](https://img.shields.io/badge/license-MIT-blue)\n![](https://img.shields.io/badge/python-3.8+-blue)\n![](https://64-166642218-gh.circle-artifacts.com/0/tests/outputs/cov_badge.svg)\n[![CircleCI](https://circleci.com/gh/LudwigCRON/undulate/tree/master.svg?style=shield)](https://circleci.com/gh/LudwigCRON/undulate/tree/master)\u003cbr/\u003e\n\n## Introduction\n\n**WaveDrom** is a Free and Open Source online digital\ntiming diagram (waveform) rendering engine that uses javascript,\nHTML5 and SVG to convert a\n[WaveJSON](https://github.com/drom/wavedrom/wiki/WaveJSON)\ninput text description into SVG vector graphics.\n\n[WaveJSON](https://github.com/drom/wavedrom/wiki/WaveJSON) is an\napplication of the [JSON](http://json.org/) format. The purpose of\n[WaveJSON](https://github.com/drom/wavedrom/wiki/WaveJSON) \nis to provide a compact exchange format for digital timing\ndiagrams utilized by digital HW / IC engineers.\n\nHowever, this great tool need either a headless web browser\nor node.js to generate documentations. Python being mainstream\nand cross-platform why not leverage its power?\n\nThis version is not a mere copy of the original one. The goals\nare to ensure the compatibility and to add new features. To\nname a few:\n- long name for nodes for creating edges from one specific point to another\n- metastability wave\n- analogue waveforms (step, capacitive step, slewing, arbitrary waves, overlay up to 4 waves)\n- add annotations (global time compression, vertical/horizontal lines)\n- style overloading (font-size, fill color, stroke color, stroke-width, stroke-dasharray, ...)\n\nThe inputs could be either:\n- json\n- WaveJSON (cson)\n- yaml\n- toml \n\nwhile outputs would be:\n- svg _for web pages_\n- postscript _for latex documentation_\n- pdf _for pdflatex documentation_\n- png _for word, libreoffice, ..._\n\n## Documentation\nThe complete documentation is available [here](https://ludwigcron.github.io/undulate/)\n\n## License\n\nSee [LICENSE](https://github.com/drom/wavedrom/blob/master/LICENSE).\n\n## Installation\nIt is recommended to create a python environment to not pollute the python of your operating\nsystem.\n\n\u003e :interrobang: some OS relies on specific version of python \n\u003e packages. One use a workflow with specific tools. To not break\n\u003e this vital components, the environment boxes in a specific \n\u003e location packages and dependencies.\u003cbr/\u003e\n\u003e Tools: [pyenv](https://github.com/pyenv/pyenv-virtualenv)\n\u003e [virtualenv](https://pypi.org/project/virtualenv/)\n\u003e [lmod](https://lmod.readthedocs.io/en/latest/)\n\nIf it's intended, or you do it on purpose, you can skip directly to step #3.\n\n**1. create a new environment**\n\nWith pyenv:\n``` bash\npyenv virtualenv \u003cname-of-the-environment\u003e\n```\n\nwith virtualenv package:\n```bash\npython3 -m venv \u003cpath where to store the environments\u003e\n```\n\n**2. Activate the newly created environment**\n\nWith pyenv:\n```bash\npyenv activate \u003cname-of-the-environment\u003e\n```\n\nwith virtualenv package:\n```bash\nsource \u003cpath where to store the environments\u003e/bin/activate\n```\n\n**3. Finally, install it**\n\n```bash\npython3 -m pip install git+https://github.com/LudwigCRON/undulate.git\n```\n\n**4. Use it!**\n\nFrom now on, in the environment, you can call the script directly wherever you are\n```bash\ncd ${HOME}/projects/my-fancy-thing/documents/\nundulate -f cairo-png --dpi 300 -i input.yaml -o output.png\n```\n\nTo deactivate your environment call in the terminal\n```bash\ndeactivate\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FLudwigCRON%2Fundulate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FLudwigCRON%2Fundulate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FLudwigCRON%2Fundulate/lists"}