{"id":15621678,"url":"https://github.com/jeertmans/delaunaytriangulation","last_synced_at":"2025-10-22T10:49:34.305Z","repository":{"id":109328280,"uuid":"317214860","full_name":"jeertmans/DelaunayTriangulation","owner":"jeertmans","description":"C implementation of Delaunay Triangulation algorithm, provided with an easy to use GUI.","archived":false,"fork":false,"pushed_at":"2021-01-23T11:56:42.000Z","size":57842,"stargazers_count":12,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-28T14:08:26.334Z","etag":null,"topics":["algortihm","c","delaunay","delaunay-triangulation","triangulation"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jeertmans.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2020-11-30T12:20:50.000Z","updated_at":"2025-02-02T07:35:55.000Z","dependencies_parsed_at":"2023-03-27T16:16:48.646Z","dependency_job_id":null,"html_url":"https://github.com/jeertmans/DelaunayTriangulation","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/jeertmans/DelaunayTriangulation","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeertmans%2FDelaunayTriangulation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeertmans%2FDelaunayTriangulation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeertmans%2FDelaunayTriangulation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeertmans%2FDelaunayTriangulation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jeertmans","download_url":"https://codeload.github.com/jeertmans/DelaunayTriangulation/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeertmans%2FDelaunayTriangulation/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":280424212,"owners_count":26328462,"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-10-22T02:00:06.515Z","response_time":63,"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":["algortihm","c","delaunay","delaunay-triangulation","triangulation"],"created_at":"2024-10-03T09:51:27.786Z","updated_at":"2025-10-22T10:49:34.291Z","avatar_url":"https://github.com/jeertmans.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Numerical Geometry Project: a fast implementation of the Delaunay Triangulation\n\n- Author: Jérome Eertmans (13551600)\n- Course: Numerical Geometries (LMECA2710)\n- Algorithm: Delaunay triangulation\n\n\u003cp align=\"center\"\u003e \u003cimg src=\"static/lmeca2170.png\" width=\"300\"\u003e\u003c/p\u003e\n\n## How to use this project\n\nIf you want to use the project, you need to first compile it:\n\n```\nmkdir build     # only required once\ncd build\ncmake ..        # only required once\nmake\ncd ..\n```\n\nAlternatively, you can use `./buid.sh` if you are on a UNIX machine (please first create the directory and instantiate the cmake).\n\nThen you can execute the program. A variety of parameters is available, please use `-h` flag to see them.\n```\n./build/bin/lmeca2710_project [-param value] ...\n```\n\n\n**However**, I **highly** recommend you to use my Python wrapper, as it adds\nvery nice sound effects!\n\nWhat you need:\n - A Python3 installation\n - 2 small Python packages (use: `pip3 install -r requirements.txt`)\n - 3 other Python packages if you want to use `python3 benchmark.py` (included in `requirements.txt`)\n\nThen, you can use the produce the exact same results + some bonuses:\n```\npython3 main.py [-param value] ...\n```\n\nYou can also modify the music theme in `main.py`.\n\n**Warning**: key bindings assume you have an AZERTY layout. If your keyboard layout differs, please transpose the keys accordingly.\nExample: pressing *Q* on a QWERTY layout will be understood as the key *A*.\n\n## Drawing images with triangulation\n\nSome funny images can be generated by triangulating very specific sets of points.\nPlease have a look into the *input* folder.\n\nThe drawings data files were kindly generated by Pierre Veldeman using some public image found on the internet.\n\nI edited some files manually to show you what you can do with this program.\n\n\n\n\u003cp align=\"center\"\u003e \u003cimg src=\"static/love.png\" width=\"300\"\u003e\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e \u003cimg src=\"static/interact.gif\" height=\"200\"\u003e\u0026nbsp;\u003cimg src=\"static/illustration.gif\" height=\"200\"\u003e\u003c/p\u003e\n\n## Voronoi diagrams\n\nFrom a given Delaunay triangulation, it is trivial to construct the equivalent  Voronoi diagram.\nSuch a possibility is provided by the program and is computed in a linear time complexity.\n\n## YOUPIDOU mode\n\nIf you happen know the Pr. Vincent Legat, then you should for sure have a look to the YOUPIDOU mode\nof execution using the `-y` flag with Python.\n\nSound files have been kindly provided by the [Youpidapp](https://github.com/TGLuis/Youpidapp)\nauthors. If you happen to have an Android phone, make sure to try their app!\n\nAll these sounds files are the property of Vincent Legat and were obtained from\nhis [Youtube channel](https://www.youtube.com/channel/UC-QAurzK1czAlnMFOqkfxfw).\n\n## Made to be fast\n\nEvent though the Fortune algorithm can be used to generate Voronoi diagrams (and thus Delaunay Triangluation) faster than\nthe divide and conquer approach used here, this algorithm is also much harder to implement.\n\nHere, a small benchmark (on the same computer) shows that a good implementation of the divide and conquer\nsolution can be faster (more than 2 times!) than the Fortune's algorithm, implemented by two friends\nfor the same course.\n\n\u003cp align=\"center\"\u003e \u003cimg src=\"static/speed.svg\" width=\"800\"\u003e\u003c/p\u003e\n\n## Contribute\n\nIf you find any error or wish to add any add-on on my code, feel free to contact me via Github issues :)\n\n## Known issues\n\n### Memory issues\n\nIn the GUI, using the SHIFT + KEY (i.e. fast repeat of KEY) can cause memory problems if used for too long.\n\nThis is the case when Voronoi and pretty drawings are activated, and that you try to\nquickly delete a lot of points.\n\nAfter having a look at memory leaks with Valgrind, it seems like the memory problems\nmay come from the BOV library, a library provided for the course. My code, in its own, is\nMemcheck clean as it does not leak anything when used with `-d` flag.\n\n### `ALSA lib pcm.c:8526:(snd_pcm_recover) underrun occurred`\n\nYou can ignore this error, it just happens because you closed the application when a new sound\nfile was just starting to be played.\n\n## Sound bibliography\n\nAll the musics are Copyright Free songs.\nIf you wan to reuse them, please make sure to keep it as a private usage.\n\nSound effects:\nhttp://soundbible.com\n\nSynthwave theme:\nhttps://www.youtube.com/watch?v=onEyXlpdY3U\n\nChill theme:\nhttps://incompetech.com/music/royalty-free/index.html?isrc=USUAN1100326\n\n## Guides\n\nThis folder is the canvas for your upcoming project.\nIt should contain:\n * this file (**README.md**)\n * the description of the structure of the program in **CMakeLists.txt**\n * a **src** directory containing the the source code of your program\n * a **doc** directory containing more documentation\n * a **deps** directory containing the BOV library\n\nSee [doc/COMPILING.md](doc/COMPILING.md) for a step by step tutorial\non how to build the program.\n\nSee [doc/tutorial.md](doc/tutorial.md) for a step by step tutorial on\nhow to use the BOV library.\n\nSee [deps/BOV/include/BOV.h](deps/BOV/include/BOV.h)\nfor help on the BOV library functions.\n\nSee [deps/BOV/examples/](deps/BOV/examples/) for more\nexamples using the BOV library\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjeertmans%2Fdelaunaytriangulation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjeertmans%2Fdelaunaytriangulation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjeertmans%2Fdelaunaytriangulation/lists"}