{"id":21685435,"url":"https://github.com/maurovm/swift-waveform_plotter","last_synced_at":"2025-08-02T10:33:17.344Z","repository":{"id":209675752,"uuid":"478746491","full_name":"maurovm/swift-waveform_plotter","owner":"maurovm","description":"A library to plot physiological timeseries such as the Photoplethysmogram (PPG) recorded from a pulse oximeter","archived":false,"fork":false,"pushed_at":"2024-01-06T22:11:32.000Z","size":424,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-12T14:13:50.259Z","etag":null,"topics":["photoplethysmogram","plotting","ppg","real-time","time-series","waveform"],"latest_commit_sha":null,"homepage":"","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/maurovm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"COPYING","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,"zenodo":null}},"created_at":"2022-04-06T22:27:29.000Z","updated_at":"2024-11-08T14:39:16.000Z","dependencies_parsed_at":"2025-05-12T14:13:51.607Z","dependency_job_id":"fb9fe2e6-462b-4f4c-b54c-887f64b1fd58","html_url":"https://github.com/maurovm/swift-waveform_plotter","commit_stats":null,"previous_names":["maurovm/swift-waveform_plotter"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/maurovm/swift-waveform_plotter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maurovm%2Fswift-waveform_plotter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maurovm%2Fswift-waveform_plotter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maurovm%2Fswift-waveform_plotter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maurovm%2Fswift-waveform_plotter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/maurovm","download_url":"https://codeload.github.com/maurovm/swift-waveform_plotter/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maurovm%2Fswift-waveform_plotter/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268371309,"owners_count":24239788,"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","status":"online","status_checked_at":"2025-08-02T02:00:12.353Z","response_time":74,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["photoplethysmogram","plotting","ppg","real-time","time-series","waveform"],"created_at":"2024-11-25T16:20:38.658Z","updated_at":"2025-08-02T10:33:17.308Z","avatar_url":"https://github.com/maurovm.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# WaveformPlotter\n\nA library to plot physiological timeseries such as the Photoplethysmogram (PPG)\n recorded from a pulse oximeter\n\n---\n\nWaveformPlotter is free software: you can redistribute it or modify it under \nthe terms of the GNU General Public License as published by the Free Software\nFoundation, version 2 only. Please check the file [COPYING](COPYING) for more\ninformation on the license and copyright.\n\nIf you want to submit pull requests or contribute source code to this \nrepository, please read the [CONTRIBUTING.md](CONTRIBUTING.md) for\nmore information about contributing guidelines.\n\nIf you use this app in your projects and publish the results, please cite the\nfollowing manuscript:\n\n\u003e Villarroel, M. and Davidson, S. \"Open-source software mobile platform for\nphysiological data acquisition\". arXiv (In preparation). 2022\n\n---\n\nWaveformPlotter is an iOS Swift Package written in Swift. The following modules\nmake use of the functionality provided by WaveformPlotter:\n\n- [swift-waveform_plotter_example](https://github.com/maurovm/swift-waveform_plotter_example): \nExample application to showcase the features available in the \"WaveformPlotter\"\nSwift library.\n- [swift-sensor_recording_utils](https://github.com/maurovm/swift-sensor_recording_utils):\nA module containing shared utility methods and classes used by other modules \nand applications to record raw data from sensors. \n- [swift-async_bluetooth](https://github.com/maurovm/swift-async_bluetooth): \nA Swift Package that replicates some of the functionality provided by Apple's \nCoreBluetooth module, but using Swift's latest async/await concurrency features.\n- [swift-async_pulse_ox](https://github.com/maurovm/swift-async_pulse_ox): \nThe main module that has all the functionality to connect and record data from\ndevices that support Bluetooth Low Energy (BLE) protocol, such as heart rate \nmonitors and pulse oximeters. \n\nExamples of other applications making use of the above Swift Packages are:\n\n- [swift-thermal_recorder](https://github.com/maurovm/swift-thermal_recorder): \nRecord video from thermal cameras such as the FLIR One.\n- [swift-pulse_ox_recorder](https://github.com/maurovm/swift-pulse_ox_recorder): \nThe main application (XCode, Settings.bundle, etc) to record time-series data \nfrom devices that support Bluetooth Low Energy (BLE) protocol.\n\n## Plotting Examples\n\nThe image below shows an example of plotting a sinusoidal waveform using the\nsynthetic data generator in this moulde and running the\n[swift-waveform_plotter_example](https://github.com/maurovm/swift-waveform_plotter_example)\nsample application:\n\n\n\u003cp align=\"center\"\u003e\n    \u003ckbd\u003e\n    \u003cimg src=\"./doc/figures/sinusoidal_plot.png\" \n         alt=\"Patient information screen\" width=\"500\" border=1 /\u003e\n    \u003c/kbd\u003e\n\u003c/p\u003e\n\n\nThe image below is an example of the plotting the Photoplethysmogram (PPG)\nsignal recorded from a pulse oximeter from the\n[swift-pulse_ox_recorder](https://github.com/maurovm/swift-pulse_ox_recorder)\napplication:\n\n\n\u003cp align=\"center\"\u003e\n    \u003ckbd\u003e\n    \u003cimg src=\"./doc/figures/ble_nppg_detail_landscape.png\" \n         alt=\"Patient information screen\" width=\"600\" border=1 /\u003e\n    \u003c/kbd\u003e\n\u003c/p\u003e\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaurovm%2Fswift-waveform_plotter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmaurovm%2Fswift-waveform_plotter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaurovm%2Fswift-waveform_plotter/lists"}