{"id":17046972,"url":"https://github.com/maciejczyzewski/fast_gpu_voronoi","last_synced_at":"2025-04-12T15:31:23.195Z","repository":{"id":40984117,"uuid":"188504228","full_name":"maciejczyzewski/fast_gpu_voronoi","owner":"maciejczyzewski","description":"GPU-Accelerated Jump Flooding Algorithm for Voronoi Diagram in log*(n)","archived":false,"fork":false,"pushed_at":"2022-12-27T15:35:11.000Z","size":71742,"stargazers_count":28,"open_issues_count":4,"forks_count":4,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-26T10:11:17.098Z","etag":null,"topics":["algorithm","gpgpu","gpu","opencl","research","voronoi"],"latest_commit_sha":null,"homepage":"https://git.io/jfa_star_slides","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/maciejczyzewski.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}},"created_at":"2019-05-25T00:52:56.000Z","updated_at":"2025-02-06T16:20:59.000Z","dependencies_parsed_at":"2023-01-31T05:30:54.051Z","dependency_job_id":null,"html_url":"https://github.com/maciejczyzewski/fast_gpu_voronoi","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maciejczyzewski%2Ffast_gpu_voronoi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maciejczyzewski%2Ffast_gpu_voronoi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maciejczyzewski%2Ffast_gpu_voronoi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maciejczyzewski%2Ffast_gpu_voronoi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/maciejczyzewski","download_url":"https://codeload.github.com/maciejczyzewski/fast_gpu_voronoi/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248589475,"owners_count":21129620,"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":["algorithm","gpgpu","gpu","opencl","research","voronoi"],"created_at":"2024-10-14T09:48:00.190Z","updated_at":"2025-04-12T15:31:18.169Z","avatar_url":"https://github.com/maciejczyzewski.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"[**Demo (Google Colab)**](https://colab.research.google.com/drive/1feoho8M_1a4tOpYFDPkqDVJeWHwdhJox?usp=sharing)\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"docs/figure_jka_star_intro.png\" alt=\"JFA*\" width=\"500px\" /\u003e\u003cbr /\u003e\n\u003c/div\u003e\n\n\u003cbr/\u003e\n\n|     | Research | Authors |\n|:----|:---------|:--------|\n| \\[[slides](https://maciejczyzewski.github.io/fast_gpu_voronoi/slides_small.pdf)\\] | __GPU-Accelerated Jump Flooding Algorithm for Voronoi Diagram in log*(n)__ [this] | Maciej A. Czyzewski |\n| \\[[article](https://vgl.csa.iisc.ac.in/pdf/pub/ICVGIP14_Talha.pdf)\\] | Facet-JFA: Faster computation of discrete Voronoi diagrams [2014] | Talha Bin Masood, Hari Krishna Malladi, Vijay Natarajan |\n| \\[[article](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.101.8568\u0026rep=rep1\u0026type=pdf)\\] | Jump Flooding in GPU with Applications to Voronoi Diagram and Distance Transform [2006] | Guodong Rong, Tiow-Seng Tan |\n\n# Implemented Algorithms\n\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003e\u003c/th\u003e\n\u003cth\u003eJFA*\u003c/th\u003e\n\u003cth\u003eJFA+\u003c/th\u003e\n\u003cth\u003eJFA\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003eused improvement\u003c/td\u003e\n\u003ctd\u003enoise+selection\u003c/td\u003e\n\u003ctd\u003enoise\u003c/td\u003e\n\u003ctd\u003e--\u003c/td\u003e\n\u003ctd rowspan=\"4\"\u003e\u003cimg src=\"docs/figure_3d.png\" alt=\"results\" width=\"350px\" /\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003enum. of needed steps\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003elog*(n)\u003c/strong\u003e\u003c/td\u003e\n\u003ctd\u003elog4(p)\u003c/td\u003e\n\u003ctd\u003elog2(p)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003estep size\u003c/td\u003e\n\u003ctd\u003ep/(3^i)\u003c/td\u003e\n\u003ctd\u003ep/(2^i)\u003c/td\u003e\n\u003ctd\u003ep/(2^i)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eresearch\u003c/td\u003e\n\u003ctd\u003e(our)\u003c/td\u003e\n\u003ctd\u003e(our)\u003c/td\u003e\n\u003ctd\u003e[Guodong 2006]\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\n# Installation \u0026 Example\n\nProject can be installed using `pip`:\n\n```bash\n$ pip3 install fast_gpu_voronoi\n```\n\nHere is a small example to whet your appetite:\n\n```python3\nfrom fast_gpu_voronoi       import Instance\nfrom fast_gpu_voronoi.jfa   import JFA_star\nfrom fast_gpu_voronoi.debug import save\n\nI = Instance(alg=JFA_star, x=50, y=50, \\\n        pts=[[ 7,14], [33,34], [27,10],\n             [35,10], [23,42], [34,39]])\nI.run()\n\nprint(I.M.shape)                 # (50, 50, 1)\nsave(I.M, I.x, I.y, force=True)  # __1_debug.png\n```\n\n# Development\n\nIf you want to contribute, first clone git repository and then run tests:\n\n```bash\n$ git clone git@github.com:maciejczyzewski/fast_gpu_voronoi.git\n$ pip3 install -r requirements.txt\n$ pytest\n```\n\n# Results\n\n| Our method                      | Current best          |\n|:-------------------------------:|:---------------------:|\n| JFA\\*                           | JFA                   |\n| ![JFA_star](docs/jfa_star2.gif) | ![JFA](docs/jfa2.gif) |\n| steps = log\\*(2000) = 4          | steps = log(720) ~= 10 |\n\n_...for x = 720; y = 720; seeds = 2000 (read as n = 2000; p = 720)._\n\n# Thanks\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"docs/PP_logo.jpg\" alt=\"Poznan University of Technology\" width=\"600px\" /\u003e\u003cbr /\u003e\n  \u003cimg src=\"docs/opencl_logo.svg\" alt=\"OpenCl\" width=\"200px\" /\u003e\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaciejczyzewski%2Ffast_gpu_voronoi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmaciejczyzewski%2Ffast_gpu_voronoi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaciejczyzewski%2Ffast_gpu_voronoi/lists"}