{"id":23270054,"url":"https://github.com/sideeffects/windingnumber","last_synced_at":"2026-03-01T20:32:04.600Z","repository":{"id":47501067,"uuid":"140889402","full_name":"sideeffects/WindingNumber","owner":"sideeffects","description":"Code for fast approximate generalized winding number (solid angle) computation for triangle soups","archived":false,"fork":false,"pushed_at":"2021-08-28T15:55:36.000Z","size":119,"stargazers_count":141,"open_issues_count":2,"forks_count":29,"subscribers_count":20,"default_branch":"master","last_synced_at":"2025-08-21T03:53:38.006Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","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/sideeffects.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":"2018-07-13T20:17:29.000Z","updated_at":"2025-08-05T06:44:15.000Z","dependencies_parsed_at":"2022-09-16T23:50:36.278Z","dependency_job_id":null,"html_url":"https://github.com/sideeffects/WindingNumber","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sideeffects/WindingNumber","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sideeffects%2FWindingNumber","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sideeffects%2FWindingNumber/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sideeffects%2FWindingNumber/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sideeffects%2FWindingNumber/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sideeffects","download_url":"https://codeload.github.com/sideeffects/WindingNumber/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sideeffects%2FWindingNumber/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29983156,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-01T16:35:47.903Z","status":"ssl_error","status_checked_at":"2026-03-01T16:35:44.899Z","response_time":124,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":[],"created_at":"2024-12-19T18:38:03.792Z","updated_at":"2026-03-01T20:32:04.582Z","avatar_url":"https://github.com/sideeffects.png","language":"C++","readme":"# Fast Winding Numbers for Soups\n\nImplementation of the _ACM SIGGRAPH_ 2018 paper, \n\n\"Fast Winding Numbers for Soups and Clouds\" \n\nGavin Barill¹, Neil Dickson², Ryan Schmidt³, David I.W. Levin¹, Alec Jacobson¹\n\n¹University of Toronto, ²SideFX, ³Gradient Space\n\n\n_Note: this implementation is for triangle soups only, not point clouds._\n\nThis code, as written, depends on Intel's Threading Building Blocks (TBB) library for parallelism, but it should be fairly easy to change it to use any other means of threading, since it only uses parallel for loops with simple partitioning.\n\nThe main class of interest is UT_SolidAngle and its init and computeSolidAngle functions, which you can use by including UT_SolidAngle.h, and whose implementation is mostly in UT_SolidAngle.cpp, using a 4-way bounding volume hierarchy (BVH) implemented in the UT_BVH.h and UT_BVHImpl.h headers.  The rest of the files are mostly various supporting code.  UT_SubtendedAngle, for computing angles subtended by 2D curves, can also be found in UT_SolidAngle.h and UT_SolidAngle.cpp .\n\nAn example of very similar code and how to use it to create a geometry operator (SOP) in Houdini can be found in the HDK examples (toolkit/samples/SOP/SOP_WindingNumber) for Houdini 16.5.121 and later.  Query points go in the first input and the mesh geometry goes in the second input.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsideeffects%2Fwindingnumber","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsideeffects%2Fwindingnumber","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsideeffects%2Fwindingnumber/lists"}