{"repo":"time4tea/gopro-dashboard-overlay","free":true,"listed":false,"github":"https://github.com/time4tea/gopro-dashboard-overlay","clone":"git clone https://github.com/time4tea/gopro-dashboard-overlay.git","description":"Programs to process GoPro MP4 & Generic GPX/FIT files and create video dashboards & maps","language":"Python","stars":578,"topics":["dji-drone","drone","ffmpeg","ffmpeg-script","fit-data","fit-file","fit-files","geospatial","gopro","gopro-camera","gpx","gpx-data","gpx-files","graphics","help-wanted","pillow","pillow-simd","python-pillow","python3"],"license":"GPL-3.0","category":"video_processing","readme_excerpt":"# Create video overlays from GoPro Videos or any GPX/FIT file\n\n<a href=\"https://github.com/time4tea/gopro-dashboard-overlay/discussions\"><img alt=\"GitHub Discussions\" src=\"https://img.shields.io/github/discussions/time4tea/gopro-dashboard-overlay?style=for-the-badge\"></a>\n<a href=\"https://pypi.org/project/gopro-overlay/\"><img alt=\"PyPI\" src=\"https://img.shields.io/pypi/v/gopro-overlay?style=for-the-badge\"></a>\n<a href=\"https://hub.docker.com/r/overlaydash/gopro-dashboard-overlay\"><img alt=\"Docker\" src=\"https://img.shields.io/docker/v/overlaydash/gopro-dashboard-overlay?label=Docker&style=for-the-badge\"></a>\n\nDiscuss on [GitHub Discussions](https://github.com/time4tea/gopro-dashboard-overlay/discussions)\n\n- Overlaying exciting graphics onto GoPro videos with super-exact synchronization\n- Create videos from any GPX or FIT file - no GoPro required\n- Support multiple resolutions, most GoPro models, normal, timelapse & timewarp modes\n- Support GPUs to create movies at up to 17x realtime\n- Convert GoPro movie metadata to GPX or CSV files\n- Cut sections from GoPro movies (including metadata)\n- Linux, Mac, Windows!\n\n## Introduction Video\n\n[![Intro Video](https://img.youtube.com/vi/qTwPVjNXJ8o/0.jpg)](https://www.youtube.com/watch?v=qTwPVjNXJ8o)\n\n## Examples\n\n![Example - Chedder Gorge](examples/2022-05-15-example.png)\n![Example - Rallye Des Cimes](examples/2026-05-16-rallye-des-cimes-contrib-example.png)\n![Example - GoKarting](examples/2022-06-11-contrib-example.png)\n![Example - Light Plane Cockpit](examples/2022-07-19-contrib-example-plane.jpg)\n![Example - Skiing First Person](examples/2023-07-23-contrib-example-ski-pov.png)\n![Example - Skiing Drone](examples/2023-07-23-contrib-example-ski-drone.png)\n\nAn Example of 'overlay only' mode, which generates movies from GPX files\n![Example Dashboard Image](examples/2022-11-24-gpx-only-overlay.png)\n\nExample from [examples/layout](examples/layout)\n![Example - Richmond Park with Cairo Widgets](examples/layout/layout-cairo-2704x1520.png)\n\n## Map Styles\n\nAlmost 30 different map styles are supported! - See [map styles](docs/maps/README.md) for more\n\n*Example*\n\n| .                                   | .                                             | .                                                     | .                                                     |\n|-------------------------------------|-----------------------------------------------|-------------------------------------------------------|-------------------------------------------------------|\n| ![osm](docs/maps/map_style_osm.png) | ![tf-cycle](docs/maps/map_style_tf-cycle.png) | ![tf-transport](docs/maps/map_style_tf-transport.png) | ![tf-landscape](docs/maps/map_style_tf-landscape.png) |\n\n\n## Requirements\n\n- Python3.10 (development is done on Python3.11)\n- ffmpeg (you'll need the ffmpeg program installed)\n- libraqm (needed by [Pillow](https://pypi.org/project/Pillow/))\n\n## Installation\n\nFor Windows, please see docs [docs/windows.md](docs/windows.md)\n\nFor Docker, please see docs at [docs/docker.md](docs/docker.md)\n\nInstall locally using `pip`, or use the provided Docker image\n\nOptional: Some widgets require the `cairo` library - which must be installed separately.\n\n\n### Installing and running with pip\n\n```shell\npython -m venv venv\nvenv/bin/pip install gopro-overlay\n```\n\nThe Roboto font needs to be installed on your system. You could install it with one of the following commands maybe.\n\n```bash\npacman -S ttf-roboto\napt install truetype-roboto\napt install fonts-roboto\n```\n\n#### (Optional) Installing pycairo\n\nOptionally, install `pycairo`\n\n```shell\nvenv/bin/pip install pycairo==1.23.0\n```\n\nYou might need to install some system libraries - This is what the pycairo docs suggest: \n\nUbuntu/Debian: `sudo apt install libcairo2-dev pkg-config python3-dev`\n\nmacOS/Homebrew: `brew install cairo pkg-config`\n\n### Example\n\nFor full instructions on all command lines see [docs/bin](docs/bin)\n\n```shell\nvenv/bin/gopro-dashboard.py --gpx ~/Downloads/Morning_Ride.gpx --privacy 52.000,-0.40000,0.50 ~/gopro/GH020073.MP4 GH020073-dashboard.MP4\n```\n\n## Caveats\n\nThe GPS track in Hero 9 seems to be very poor. If you supply a GPX file from a Garmin or whatever, the\nprogram will use this instead for the GPS. Hero 11 GPS is much improved.\n\nPrivacy allows you to set a privacy zone. Various widgets will not draw points within that zone.\n\nThe data recorded in the GoPro video will uses GPS time, which (broadly) is UTC. The renderer will use your local\ntimezone to interpret this, and use the local timezone. This may produce strange results if you go on holiday somewhere,\nbut then render the files when you get back home! On linux you can use the TZ variable to change the timezone that's\nused.\n\n## Writeups\n\nThere's a great writeup of how to use the software to make an overlay from a GPX file at https://blog.cubieserver.de/2022/creating-gpx-overlay-videos-on-linux/\n(Nov 2022)\n\n### Format of the Dashboard Configuration file\n\nSeveral dashboards are built-in to the software, but the dashboard layout is highly configurable, controlled by an XML\nfile.\n\nFor more information on the (extensive) configurability of the layout please see [docs/xml](docs/xml) and lots\nof [examples](docs/xml/examples/README.md)\n\n## FFMPEG Control & GPUs\n\nFFMPEG has **a lot** of options! This program comes with some mostly sensible defaults, but to use GPUs and control the\noutput much more carefully, including framerates and bitrates, you can use a JSON file containing a number of 'profiles'\nand select the profile you want when running the program.\n\nFor more details on how to select these, and an example of Nvidia GPU, please see the guide in [docs/bin#ffmpeg-profiles](docs/bin#ffmpeg-profiles)\n\nPlease also see other docs [PERFORMANCE.md](PERFORMANCE.md) and [docs/bin/PERFORMANCE_GUIDE.md](docs/bin/PERFORMANCE_GUIDE.md)\n\n## Converting to GPX files\n\n```shell\nvenv/bin/gopro-to-gpx.py <input-file> [output-file]\n```\n\n## Joining a sequence of MP4 files together\n\nUse the gopro-join.py command. Given a single file from the sequence, it will find and join together all the files. If\nyou have any problems with this, please do raise an issue - I don't have that much test data.\n\nThe joined file almost certainly won't work in the GoPro tools! - But it should work with `gopro-dashboard.py` - I will\nlook into the additional technical stuff required to make it work in the GoPro tools.\n\n*This will require a lot of disk space!*\n\n```shell\nvenv/bin/gopro-join.py /media/sdcard/DCIM/100GOPRO/GH030170.MP4 /data/gopro/nice-ride.MP4\n```\n\n## Cutting a section from a GoPro file\n\nYou can cut a section of the gopro file, with metadata.\n\n\n## Help Wanted\n\n- Adding additional graphics widgets, ideally using cairo.\n- Validation / Improvement of smoothing - e.g. Kalman Filters\n- Suggestions for handling acceleration and orientation data, this is parsed, but display options are few.\n\n## Work In Progress\n\n- Adding min/max/moving averages to metrics\n\n## Related Software\n\n- https://github.com/Romancha/GPStitch - A VERY nice web user interface for this program.\n\n- https://github.com/julesgraus/interactiveGoProDashboardTool - An interactive helper to build the command line for the dashboard program\n\n## Known Bugs / Issues\n\n- Only tested on a GoPro Hero 9/11, that's all I have. Sample files for other devices are welcomed.\n\n## Icons\n\nIcon files in [icons](gopro_overlay/icons) are not covered by the MIT licence\n\n## Map Data\n\nData © [OpenStreetMap contributors](http://www.openstreetmap.org/copyright)\n\nSome Maps © [Thunderforest](http://www.thunderforest.com/)\n\n## References\n\nhttps://github.com/juanmcasillas/gopro2gpx\n\nhttps://github.com/JuanIrache/gopro-telemetry\n\nhttps://github.com/gopro/gpmf-parser\n\nhttps://coderunner.io/how-to-compress-gopro-movies-and-keep-metadata/\n\n## Other Related Software\n\n\n- https://github.com/progweb/gpx2video\n\n- https://github.com/JuanIrache/gopro-telemetry\n\n## Latest Changes\n\nIf you find any issues with new releases, please discuss in [GitHub Discussions](https://github.com/time4tea/gopro-dashboard-overlay/discussions)\n- 0.134.0 - [Fix] Don't crash when GRAV entries have wrong number of components (firmware bug workaround) - thanks [@joepetjr](https://github.com/joepetjr) for report & suggested fix\n  - [Fix] Fix typo in bbox calculation - thanks [@djm300](https://github.com/djm300)\n- 0.133.0 - [Enhancement] Chart - Add `width` and `marker-size`, better interpolation of datapoints at end of file, and use date from video file, with `--video-time-start video-start` - thanks to [@derFunk](https://github.com/derFunk) for contributing\n- 0.132.0 - [Enhancement] Use user-supplied unit pref for chart - thanks to [@DonkeyShine](https://github.com/DonkeyShine) for noticing\n- 0.131.0 [Enhancement] - Improved parsing of FIT files with gear changes thanks to  [@geomandolyn](https://github.com/geomandolyn) to raising issue & sample data.\n- 0.130.0 [Enhancement] - New capability to update the journey map & moving journey map - path and location styling.  Mulţumesc mult to [@andrei-micuda](https://github.com/andrei-micuda)\n  - [Hopefully no visible effect] Vendored / Copied in source code from geotiler as it's no longer compatible with new python versions & updated to be compatible. \n- 0.129.0 [Enhancement] [Breaking] - Update python compatibility - Newly Compatible: 3.13, 3.14. No longer compatible 3.9, 3.10 \n- 0.128.0 [Enhancement] add layout default compatible ith DJI 2.5k resolution. Thanks to [@DonkeyShine](https://github.com/DonkeyShine) for suggestion.\n- 0.127.0 [Enhancement] Now support _respiration_ , _front_gear_num_ and _rear_gear_num fields in FIT files. Improved support for using DJI videos as files to be overlaid. \n  - Thanks to [@prebbz](https://github.com/prebbz) [@DonkeyShine](https://github.com/DonkeyShine) \n- 0.126.0 [Enhancement] New Motorspeed widgets - \"msi\" & \"msi2\" - See examples [docs/xml/examples/07-motor-speed-indicator/README.md](docs/xml/examples/07-motor-speed-indicator/README.md) - Thanks ","default_branch":"main","files":784,"tree":[".bumpversion.cfg",".github/pull_request_template.md",".github/workflows/build-test-next-versions.yml",".github/workflows/build-test-supported-versions.yml",".github/workflows/docker-image.yml",".gitignore","CHANGELOG.md","CONTRIBUTING.md","LICENSE.md","MANIFEST.in","Makefile","PERFORMANCE.md","README-PYPI.md","README.md","SECURITY.md","bin/gopro-contrib-data-extract.py","bin/gopro-cut.py","bin/gopro-dashboard.py","bin/gopro-debug.py","bin/gopro-extract.py","bin/gopro-join.py","bin/gopro-layout.py","bin/gopro-rename.py","bin/gopro-to-csv.py","bin/gopro-to-gpx.py","build-scripts/ensure-version-not-released.py","build-scripts/ensure-working-directory-clean.sh","build-scripts/examples/01-simple-text.md","build-scripts/examples/02-icons.md","build-scripts/examples/03-datetime.md","build-scripts/examples/04-metric-units.md","build-scripts/examples/04-metrics.md","build-scripts/examples/05-moving-map.md","build-scripts/examples/06-cairo-circuit-map.md","build-scripts/examples/06-cairo-gauge-arc-annotated.md","build-scripts/examples/06-cairo-gauge-donut.md","build-scripts/examples/06-cairo-gauge-marker.md","build-scripts/examples/06-cairo-gauge-round-annotated.md","build-scripts/examples/06-circuit-map.md","build-scripts/examples/06-journey-map.md","build-scripts/examples/06-moving-journey-map.md","build-scripts/examples/07-air-speed-indicator.md","build-scripts/examples/07-bar.md","build-scripts/examples/07-chart.md","build-scripts/examples/07-compass-arrow.md","build-scripts/examples/07-compass.md","build-scripts/examples/07-motor-speed-indicator.md","build-scripts/examples/07-zone-bar.md","build-scripts/examples/08-translate.md","build-scripts/examples/09-frame.md","build-scripts/generate-examples.py","build-scripts/generate-map-examples.py","build-scripts/map-styles.md","docker/Dockerfile","docker/Dockerfile.aarch64","docker/Makefile","docker/entrypoint.sh","docs/README.md","docs/bin/PERFORMANCE_GUIDE.md","docs/bin/README.md","docs/docker.md","docs/maps/README.md","docs/maps/map_style_cyclosm.png","docs/maps/map_style_geo-dark-matter-brown.png","docs/maps/map_style_geo-dark-matter-dark-grey.png","docs/maps/map_style_geo-dark-matter-dark-purple.png","docs/maps/map_style_geo-dark-matter-purple-roads.png","docs/maps/map_style_geo-dark-matter-yellow-roads.png","docs/maps/map_style_geo-dark-matter.png","docs/maps/map_style_geo-klokantech-basic.png","docs/maps/map_style_geo-maptiler-3d.png","docs/maps/map_style_geo-osm-bright-grey.png","docs/maps/map_style_geo-osm-bright-smooth.png","docs/maps/map_style_geo-osm-bright.png","docs/maps/map_style_geo-osm-carto.png","docs/maps/map_style_geo-osm-liberty.png","docs/maps/map_style_geo-positron-blue.png","docs/maps/map_style_geo-positron-red.png","docs/maps/map_style_geo-positron.png","docs/maps/map_style_geo-toner-grey.png","docs/maps/map_style_geo-toner.png","docs/maps/map_style_local.png","docs/maps/map_style_osm.png","docs/maps/map_style_tf-atlas.png","docs/maps/map_style_tf-cycle.png","docs/maps/map_style_tf-landscape.png","docs/maps/map_style_tf-mobile-atlas.png","docs/maps/map_style_tf-neighbourhood.png","docs/maps/map_style_tf-outdoors.png","docs/maps/map_style_tf-pioneer.png","docs/maps/map_style_tf-spinal-map.png","docs/maps/map_style_tf-transport-dark.png","docs/maps/map_style_tf-transport.png","docs/windows.md","docs/xml/README.md","docs/xml/examples/01-simple-text/01-simple-text-0.png","docs/xml/examples/01-simple-text/01-simple-text-1.png","docs/xml/examples/01-simple-text/01-simple-text-2.png","docs/xml/examples/01-simple-text/01-simple-text-3.png","docs/xml/examples/01-simple-text/01-simple-text-4.png","docs/xml/examples/01-simple-text/01-simple-text-5.png","docs/xml/examples/01-simple-text/01-simple-text-6.png","docs/xml/examples/01-simple-text/01-simple-text-7.png","docs/xml/examples/01-simple-text/01-simple-text-8.png","docs/xml/examples/01-simple-text/README.md","docs/xml/examples/02-icons/02-icons-0.png","docs/xml/examples/02-icons/02-icons-1.png","docs/xml/examples/02-icons/02-icons-2.png","docs/xml/examples/02-icons/02-icons-3.png","docs/xml/examples/02-icons/README.md","docs/xml/examples/03-datetime/03-datetime-0.png","docs/xml/examples/03-datetime/03-datetime-1.png","docs/xml/examples/03-datetime/03-datetime-10.png","docs/xml/examples/03-datetime/03-datetime-2.png","docs/xml/examples/03-datetime/03-datetime-3.png","docs/xml/examples/03-datetime/03-datetime-4.png","docs/xml/examples/03-datetime/03-datetime-5.png","docs/xml/examples/03-datetime/03-datetime-6.png","docs/xml/examples/03-datetime/03-datetime-7.png","docs/xml/examples/03-datetime/03-datetime-8.png","docs/xml/examples/03-datetime/03-datetime-9.png","docs/xml/examples/03-datetime/README.md","docs/xml/examples/04-metric-units/04-metric-units-0.png","docs/xml/examples/04-metric-units/04-metric-units-1.png","docs/xml/examples/04-metric-units/04-metric-units-2.png","docs/xml/examples/04-metric-units/04-metric-units-3.png","docs/xml/examples/04-metric-units/04-metric-units-4.png","docs/xml/examples/04-metric-units/04-metric-units-5.png","docs/xml/examples/04-metric-units/README.md","docs/xml/examples/04-metrics/04-metrics-0.png","docs/xml/examples/04-metrics/04-metrics-1.png","docs/xml/examples/04-metrics/04-metrics-10.png","docs/xml/examples/04-metrics/04-metrics-11.png","docs/xml/examples/04-metrics/04-metrics-12.png","docs/xml/examples/04-metrics/04-metrics-13.png","docs/xml/examples/04-metrics/04-metrics-14.png","docs/xml/examples/04-metrics/04-metrics-15.png","docs/xml/examples/04-metrics/04-metrics-16.png","docs/xml/examples/04-metrics/04-metrics-17.png","docs/xml/examples/04-metrics/04-metrics-18.png","docs/xml/examples/04-metrics/04-metrics-2.png","docs/xml/examples/04-metrics/04-metrics-3.png","docs/xml/examples/04-metrics/04-metrics-4.png","docs/xml/examples/04-metrics/04-metrics-5.png","docs/xml/examples/04-metrics/04-metrics-6.png","docs/xml/examples/04-metrics/04-metrics-7.png","docs/xml/examples/04-metrics/04-metrics-8.png","docs/xml/examples/04-metrics/04-metrics-9.png","docs/xml/examples/04-metrics/README.md","docs/xml/examples/05-moving-map/05-moving-map-0.png","docs/xml/examples/05-moving-map/05-moving-map-1.png","docs/xml/examples/05-moving-map/05-moving-map-10.png","docs/xml/examples/05-moving-map/05-moving-map-11.png","docs/xml/examples/05-moving-map/05-moving-map-2.png","docs/xml/examples/05-moving-map/05-moving-map-3.png","docs/xml/examples/05-moving-map/05-moving-map-4.png","docs/xml/examples/05-moving-map/05-moving-map-5.png","docs/xml/examples/05-moving-map/05-moving-map-6.png","docs/xml/examples/05-moving-map/05-moving-map-7.png","docs/xml/examples/05-moving-map/05-moving-map-8.png","docs/xml/examples/05-moving-map/05-moving-map-9.png","docs/xml/examples/05-moving-map/README.md","docs/xml/examples/06-cairo-circuit-map/06-cairo-circuit-map-0.png","docs/xml/examples/06-cairo-circuit-map/06-cairo-circuit-map-1.png","docs/xml/examples/06-cairo-circuit-map/06-cairo-circuit-map-2.png","docs/xml/examples/06-cairo-circuit-map/06-cairo-circuit-map-3.png","docs/xml/examples/06-cairo-circuit-map/06-cairo-circuit-map-4.png","docs/xml/examples/06-cairo-circuit-map/README.md","docs/xml/examples/06-cairo-gauge-arc-annotated/06-cairo-gauge-arc-annotated-0.png","docs/xml/examples/06-cairo-gauge-arc-annotated/06-cairo-gauge-arc-annotated-1.png","docs/xml/examples/06-cairo-gauge-arc-annotated/06-cairo-gauge-arc-annotated-10.png","docs/xml/examples/06-cairo-gauge-arc-annotated/06-cairo-gauge-arc-annotated-11.png","docs/xml/examples/06-cairo-gauge-arc-annotated/06-cairo-gauge-arc-annotated-12.png","docs/xml/examples/06-cairo-gauge-arc-annotated/06-cairo-gauge-arc-annotated-13.png","docs/xml/examples/06-cairo-gauge-arc-annotated/06-cairo-gauge-arc-annotated-14.png","docs/xml/examples/06-cairo-gauge-arc-annotated/06-cairo-gauge-arc-annotated-15.png","docs/xml/examples/06-cairo-gauge-arc-annotated/06-cairo-gauge-arc-annotated-16.png","docs/xml/examples/06-cairo-gauge-arc-annotated/06-cairo-gauge-arc-annotated-17.png","docs/xml/examples/06-cairo-gauge-arc-annotated/06-cairo-gauge-arc-annotated-18.png","docs/xml/examples/06-cairo-gauge-arc-annotated/06-cairo-gauge-arc-annotated-19.png","docs/xml/examples/06-cairo-gauge-arc-annotated/06-cairo-gauge-arc-annotated-2.png","docs/xml/examples/06-cairo-gauge-arc-annotated/06-cairo-gauge-arc-annotated-20.png","docs/xml/examples/06-cairo-gauge-arc-annotated/06-cairo-gauge-arc-annotated-21.png","docs/xml/examples/06-cairo-gauge-arc-annotated/06-cairo-gauge-arc-annotated-22.png","docs/xml/examples/06-cairo-gauge-arc-annotated/06-cairo-gauge-arc-annotated-3.png","docs/xml/examples/06-cairo-gauge-arc-annotated/06-cairo-gauge-arc-annotated-4.png","docs/xml/examples/06-cairo-gauge-arc-annotated/06-cairo-gauge-arc-annotated-5.png","docs/xml/examples/06-cairo-gauge-arc-annotated/06-cairo-gauge-arc-annotated-6.png","docs/xml/examples/06-cairo-gauge-arc-annotated/06-cairo-gauge-arc-annotated-7.png","docs/xml/examples/06-cairo-gauge-arc-annotated/06-cairo-gauge-arc-annotated-8.png","docs/xml/examples/06-cairo-gauge-arc-annotated/06-cairo-gauge-arc-annotated-9.png","docs/xml/examples/06-cairo-gauge-arc-annotated/README.md","docs/xml/examples/06-cairo-gauge-donut/06-cairo-gauge-donut-0.png","docs/xml/examples/06-cairo-gauge-donut/06-cairo-gauge-donut-1.png","docs/xml/examples/06-cairo-gauge-donut/06-cairo-gauge-donut-10.png","docs/xml/examples/06-cairo-gauge-donut/06-cairo-gauge-donut-11.png","docs/xml/examples/06-cairo-gauge-donut/06-cairo-gauge-donut-12.png","docs/xml/examples/06-cairo-gauge-donut/06-cairo-gauge-donut-13.png","docs/xml/examples/06-cairo-gauge-donut/06-cairo-gauge-donut-14.png","docs/xml/examples/06-cairo-gauge-donut/06-cairo-gauge-donut-15.png","docs/xml/examples/06-cairo-gauge-donut/06-cairo-gauge-donut-16.png","docs/xml/examples/06-cairo-gauge-donut/06-cairo-gauge-donut-17.png","docs/xml/examples/06-cairo-gauge-donut/06-cairo-gauge-donut-18.png","docs/xml/examples/06-cairo-gauge-donut/06-cairo-gauge-donut-19.png","docs/xml/examples/06-cairo-gauge-donut/06-cairo-gauge-donut-2.png","docs/xml/examples/06-cairo-gauge-donut/06-cairo-gauge-donut-20.png","docs/xml/examples/06-cairo-gauge-donut/06-cairo-gauge-donut-21.png","docs/xml/examples/06-cairo-gauge-donut/06-cairo-gauge-donut-22.png","docs/xml/examples/06-cairo-gauge-donut/06-cairo-gauge-donut-3.png","docs/xml/examples/06-cairo-gauge-donut/06-cairo-gauge-donut-4.png","docs/xml/examples/06-cairo-gauge-donut/06-cairo-gauge-donut-5.png","docs/xml/examples/06-cairo-gauge-donut/06-cairo-gauge-donut-6.png","docs/xml/examples/06-cairo-gauge-donut/06-cairo-gauge-donut-7.png","docs/xml/examples/06-cairo-gauge-donut/06-cairo-gauge-donut-8.png","docs/xml/examples/06-cairo-gauge-donut/06-cairo-gauge-donut-9.png","docs/xml/examples/06-cairo-gauge-donut/README.md","docs/xml/examples/06-cairo-gauge-marker/06-cairo-gauge-marker-0.png","docs/xml/examples/06-cairo-gauge-marker/06-cairo-gauge-marker-1.png","docs/xml/examples/06-cairo-gauge-marker/06-cairo-gauge-marker-10.png","docs/xml/examples/06-cairo-gauge-marker/06-cairo-gauge-marker-11.png","docs/xml/examples/06-cairo-gauge-marker/06-cairo-gauge-marker-12.png","docs/xml/examples/06-cairo-gauge-marker/06-cairo-gauge-marker-13.png","docs/xml/examples/06-cairo-gauge-marker/06-cairo-gauge-marker-14.png","docs/xml/examples/06-cairo-gauge-marker/06-cairo-gauge-marker-15.png","docs/xml/examples/06-cairo-gauge-marker/06-cairo-gauge-marker-16.png","docs/xml/examples/06-cairo-gauge-marker/06-cairo-gauge-marker-17.png","docs/xml/examples/06-cairo-gauge-marker/06-cairo-gauge-marker-18.png","docs/xml/examples/06-cairo-gauge-marker/06-cairo-gauge-marker-2.png","docs/xml/examples/06-cairo-gauge-marker/06-cairo-gauge-marker-3.png","docs/xml/examples/06-cairo-gauge-marker/06-cairo-gauge-marker-4.png","docs/xml/examples/06-cairo-gauge-marker/06-cairo-gauge-marker-5.png","docs/xml/examples/06-cairo-gauge-marker/06-cairo-gauge-marker-6.png","docs/xml/examples/06-cairo-gauge-marker/06-cairo-gauge-marker-7.png","docs/xml/examples/06-cairo-gauge-marker/06-cairo-gauge-marker-8.png","docs/xml/examples/06-cairo-gauge-marker/06-cairo-gauge-marker-9.png","docs/xml/examples/06-cairo-gauge-marker/README.md","docs/xml/examples/06-cairo-gauge-round-annotated/06-cairo-gauge-round-annotated-0.png","docs/xml/examples/06-cairo-gauge-round-annotated/06-cairo-gauge-round-annotated-1.png","docs/xml/examples/06-cairo-gauge-round-annotated/06-cairo-gauge-round-annotated-10.png","docs/xml/examples/06-cairo-gauge-round-annotated/06-cairo-gauge-round-annotated-11.png","docs/xml/examples/06-cairo-gauge-round-annotated/06-cairo-gauge-round-annotated-12.png","docs/xml/examples/06-cairo-gauge-round-annotated/06-cairo-gauge-round-annotated-13.png","docs/xml/examples/06-cairo-gauge-round-annotated/06-cairo-gauge-round-annotated-14.png","docs/xml/examples/06-cairo-gauge-round-annotated/06-cairo-gauge-round-annotated-15.png","docs/xml/examples/06-cairo-gauge-round-annotated/06-cairo-gauge-round-annotated-16.png","docs/xml/examples/06-cairo-gauge-round-annotated/06-cairo-gauge-round-annotated-17.png","docs/xml/examples/06-cairo-gauge-round-annotated/06-cairo-gauge-round-annotated-18.png","docs/xml/examples/06-cairo-gauge-round-annotated/06-cairo-gauge-round-annotated-19.png","docs/xml/examples/06-cairo-gauge-round-annotated/06-cairo-gauge-round-annotated-2.png","docs/xml/examples/06-cairo-gauge-round-annotated/06-cairo-gauge-round-annotated-3.png","docs/xml/examples/06-cairo-gauge-round-annotated/06-cairo-gauge-round-annotated-4.png","docs/xml/examples/06-cairo-gauge-round-annotated/06-cairo-gauge-round-annotated-5.png","docs/xml/examples/06-cairo-gauge-round-annotated/06-cairo-gauge-round-annotated-6.png","docs/xml/examples/06-cairo-gauge-round-annotated/06-cairo-gauge-round-annotated-7.png","docs/xml/examples/06-cairo-gauge-round-annotated/06-cairo-gauge-round-annotated-8.png","docs/xml/examples/06-cairo-gauge-round-annotated/06-cairo-gauge-round-annotated-9.png","docs/xml/examples/06-cairo-gauge-round-annotated/README.md","docs/xml/examples/06-circuit-map/06-circuit-map-0.png","docs/xml/examples/06-circuit-map/06-circuit-map-1.png","docs/xml/examples/06-circuit-map/README.md","docs/xml/examples/06-journey-map/06-journey-map-0.png","docs/xml/examples/06-journey-map/06-journey-map-1.png","docs/xml/examples/06-journey-map/06-journey-map-10.png","docs/xml/examples/06-journey-map/06-journey-map-2.png","docs/xml/examples/06-journey-map/06-journey-map-3.png","docs/xml/examples/06-journey-map/06-journey-map-4.png","docs/xml/examples/06-journey-map/06-journey-map-5.png","docs/xml/examples/06-journey-map/06-journey-map-6.png","docs/xml/examples/06-journey-map/06-journey-map-7.png","docs/xml/examples/06-journey-map/06-journey-map-8.png","docs/xml/examples/06-journey-map/06-journey-map-9.png","docs/xml/examples/06-journey-map/README.md","docs/xml/examples/06-moving-journey-map/06-moving-journey-map-0.png","docs/xml/examples/06-moving-journey-map/06-moving-journey-map-1.png","docs/xml/examples/06-moving-journey-map/06-moving-journey-map-10.png","docs/xml/examples/06-moving-journey-map/06-moving-journey-map-2.png","docs/xml/examples/06-moving-journey-map/06-moving-journey-map-3.png","docs/xml/examples/06-moving-journey-map/06-moving-journey-map-4.png","docs/xml/examples/06-moving-journey-map/06-moving-journey-map-5.png","docs/xml/examples/06-moving-journey-map/06-moving-journey-map-6.png","docs/xml/examples/06-moving-journey-map/06-moving-journey-map-7.png","docs/xml/examples/06-moving-journey-map/06-moving-journey-map-8.png","docs/xml/examples/06-moving-journey-map/06-moving-journey-map-9.png","docs/xml/examples/06-moving-journey-map/README.md","docs/xml/examples/07-air-speed-indicator/07-air-speed-indicator-0.png","docs/xml/examples/07-air-speed-indicator/07-air-speed-indicator-1.png","docs/xml/examples/07-air-speed-indicator/07-air-speed-indicator-2.png","docs/xml/examples/07-air-speed-indicator/07-air-speed-indicator-3.png","docs/xml/examples/07-air-speed-indicator/07-air-speed-indicator-4.png","docs/xml/examples/07-air-speed-indicator/07-air-speed-indicator-5.png","docs/xml/examples/07-air-speed-indicator/07-air-speed-indicator-6.png","docs/xml/examples/07-air-speed-indicator/07-air-speed-indicator-7.png","docs/xml/examples/07-air-speed-indicator/07-air-speed-indicator-8.png","docs/xml/examples/07-air-speed-indicator/README.md","docs/xml/examples/07-bar/07-bar-0.png","docs/xml/examples/07-bar/07-bar-1.png","docs/xml/examples/07-bar/07-bar-10.png","docs/xml/examples/07-bar/07-bar-11.png","docs/xml/examples/07-bar/07-bar-12.png","docs/xml/examples/07-bar/07-bar-2.png","docs/xml/examples/07-bar/07-bar-3.png","docs/xml/examples/07-bar/07-bar-4.png","docs/xml/examples/07-bar/07-bar-5.png","docs/xml/examples/07-bar/07-bar-6.png","docs/xml/examples/07-bar/07-bar-7.png","docs/xml/examples/07-bar/07-bar-8.png","docs/xml/examples/07-bar/07-bar-9.png","docs/xml/examples/07-bar/README.md","docs/xml/examples/07-chart/07-chart-0.png","docs/xml/examples/07-chart/07-chart-1.png","docs/xml/examples/07-chart/07-chart-10.png","docs/xml/examples/07-chart/07-chart-11.png","docs/xml/examples/07-chart/07-chart-12.png","docs/xml/examples/07-chart/07-chart-13.png","docs/xml/examples/07-chart/07-chart-14.png","docs/xml/examples/07-chart/07-chart-15.png","docs/xml/examples/07-chart/07-chart-16.png","docs/xml/examples/07-chart/07-chart-2.png","docs/xml/examples/07-chart/07-chart-3.png","docs/xml/examples/07-chart/07-chart-4.png","docs/xml/examples/07-chart/07-chart-5.png","docs/xml/examples/07-chart/07-chart-6.png","docs/xml/examples/07-chart/07-chart-7.png","docs/xml/examples/07-chart/07-chart-8.png","docs/xml/examples/07-chart/07-chart-9.png","docs/xml/examples/07-chart/README.md","docs/xml/examples/07-compass-arrow/07-compass-arrow-0.png","docs/xml/examples/07-compass-arrow/07-compass-arrow-1.png","docs/xml/examples/07-compass-arrow/07-compass-arrow-10.png","docs/xml/examples/07-compass-arrow/07-compass-arrow-11.png","docs/xml/examples/07-compass-arrow/07-compass-arrow-2.png","docs/xml/examples/07-compass-arrow/07-compass-arrow-3.png","docs/xml/examples/07-compass-arrow/07-compass-arrow-4.png","docs/xml/examples/07-compass-arrow/07-compass-arrow-5.png","docs/xml/examples/07-compass-arrow/07-compass-arrow-6.png","docs/xml/examples/07-compass-arrow/07-compass-arrow-7.png","docs/xml/examples/07-compass-arrow/07-compass-arrow-8.png","docs/xml/examples/07-compass-arrow/07-compass-arrow-9.png","docs/xml/examples/07-compass-arrow/README.md","docs/xml/examples/07-compass/07-compass-0.png","docs/xml/examples/07-compass/07-compass-1.png","docs/xml/examples/07-compass/07-compass-2.png","docs/xml/examples/07-compass/07-compass-3.png","docs/xml/examples/07-compass/07-compass-4.png","docs/xml/examples/07-compass/07-compass-5.png","docs/xml/examples/07-compass/07-compass-6.png","docs/xml/examples/07-compass/07-compass-7.png","docs/xml/examples/07-compass/07-compass-8.png","docs/xml/examples/07-compass/07-compass-9.png","docs/xml/examples/07-compass/README.md","docs/xml/examples/07-motor-speed-indicator/07-motor-speed-indicator-0.png","docs/xml/examples/07-motor-speed-indicator/07-motor-speed-indicator-1.png","docs/xml/examples/07-motor-speed-indicator/07-motor-speed-indicator-10.png","docs/xml/examples/07-motor-speed-indicator/07-motor-speed-indicator-2.png","docs/xml/examples/07-motor-speed-indicator/07-motor-speed-indicator-3.png","docs/xml/examples/07-motor-speed-indicator/07-motor-speed-indicator-4.png","docs/xml/examples/07-motor-speed-indicator/07-motor-speed-indicator-5.png","docs/xml/examples/07-motor-speed-indicator/07-motor-speed-indicator-6.png","docs/xml/examples/07-motor-speed-indicator/07-motor-speed-indicator-7.png","docs/xml/examples/07-motor-speed-indicator/07-motor-speed-indicator-8.png","docs/xml/examples/07-motor-speed-indicator/07-motor-speed-indicator-9.png","docs/xml/examples/07-motor-speed-indicator/README.md","docs/xml/examples/07-zone-bar/07-zone-bar-0.png","docs/xml/examples/07-zone-bar/07-zone-bar-1.png","docs/xml/examples/07-zone-bar/07-zone-bar-10.png","docs/xml/examples/07-zone-bar/07-zone-bar-2.png","docs/xml/examples/07-zone-bar/07-zone-bar-3.png","docs/xml/examples/07-zone-bar/07-zone-bar-4.png","docs/xml/examples/07-zone-bar/07-zone-bar-5.png","docs/xml/examples/07-zone-bar/07-zone-bar-6.png","docs/xml/examples/07-zone-bar/07-zone-bar-7.png","docs/xml/examples/07-zone-bar/07-zone-bar-8.png","docs/xml/examples/07-zone-bar/07-zone-bar-9.png","docs/xml/examples/07-zone-bar/README.md","docs/xml/examples/08-translate/08-translate-0.png","docs/xml/examples/08-translate/08-translate-1.png","docs/xml/examples/08-translate/08-translate-2.png","docs/xml/examples/08-translate/08-translate-3.png","docs/xml/examples/08-translate/08-translate-4.png","docs/xml/examples/08-translate/08-translate-5.png","docs/xml/examples/08-translate/README.md","docs/xml/examples/09-frame/09-frame-0.png","docs/xml/examples/09-frame/09-frame-1.png","docs/xml/examples/09-frame/09-frame-2.png","docs/xml/examples/09-frame/09-frame-3.png","docs/xml/examples/09-frame/09-frame-4.png","docs/xml/examples/09-frame/09-frame-5.png","docs/xml/examples/09-frame/09-frame-6.png","docs/xml/examples/09-frame/README.md","docs/xml/examples/README.md","examples/2022-05-15-example.png","examples/2022-06-11-contrib-example.png","examples/2022-07-19-contrib-example-plane.jpg","examples/2022-11-24-gpx-only-overlay.png","examples/2023-07-23-contrib-example-ski-drone.png","examples/2023-07-23-contrib-example-ski-pov.png","examples/2023-11-26-speed-no-smoothing.png","examples/2023-11-26-speed-with-smoothing.png","examples/2026-05-16-rallye-des-cimes-contrib-example.png","examples/layout/Makefile"],"storefront":"/r/time4tea","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/time4tea/gopro-dashboard-overlay/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}