{"id":13731661,"url":"https://github.com/unclearness/vacancy","last_synced_at":"2025-05-08T05:30:28.633Z","repository":{"id":46203469,"uuid":"179969090","full_name":"unclearness/vacancy","owner":"unclearness","description":"Vacancy: A Voxel Carving implementation in C++","archived":false,"fork":false,"pushed_at":"2021-12-01T13:28:27.000Z","size":423,"stargazers_count":65,"open_issues_count":2,"forks_count":9,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-11-14T22:35:36.720Z","etag":null,"topics":["3d-reconstruction","c-plus-plus","computer-vision","marching-cubes","shape-from-silhouette"],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/unclearness.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-04-07T13:20:01.000Z","updated_at":"2024-11-12T14:57:36.000Z","dependencies_parsed_at":"2022-09-11T16:01:53.480Z","dependency_job_id":null,"html_url":"https://github.com/unclearness/vacancy","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unclearness%2Fvacancy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unclearness%2Fvacancy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unclearness%2Fvacancy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unclearness%2Fvacancy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/unclearness","download_url":"https://codeload.github.com/unclearness/vacancy/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253008326,"owners_count":21839627,"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":["3d-reconstruction","c-plus-plus","computer-vision","marching-cubes","shape-from-silhouette"],"created_at":"2024-08-03T02:01:35.104Z","updated_at":"2025-05-08T05:30:28.625Z","avatar_url":"https://github.com/unclearness.png","language":"C++","readme":"# Vacancy: A Voxel Carving implementation in C++\n**Vacancy** is a *Voxel Carving* (a.k.a. *Visual Hull* or *Shape from Silhouette*) implementaion in C++. Inputs are 2D silhouettes (binary mask) of target objects, corresponding camera parameters (both intrinsic and extrinsic) and 3D bounding box to roughly specify the position of the objects. Output is the reconstructed 3D model. In addition to naive one, supports KinectFusion like robust TSDF (Truncated Signed Distance Function) fusion.\n\n# Algorithm Overview\n\u003cimg src=\"https://raw.githubusercontent.com/wiki/unclearness/vacancy/images/how_it_works.gif\" width=\"640\"\u003e\n\n- Initialize 3D voxels according to the input bounding box\n- Compute SDF (Signed Distance Function/Field) from silhouette in 2D\n- Volmetrically fuse 2D SDF values into the 3D voxels by using camera parameters\n- Extract explicit 3D mesh from implicit surface representation in the 3D voxels\n\n# Output mesh\nTwo mesh extraction methods are implemented: voxel and marching cubes. Marching cubes are much better in practice while voxel representation is suitable to understand how the algorithm works.\n\n|voxel|marching cubes|\n|---|---|\n|\u003cimg src=\"https://raw.githubusercontent.com/wiki/unclearness/vacancy/images/bunny_voxel.png\" width=\"320\"\u003e|\u003cimg src=\"https://raw.githubusercontent.com/wiki/unclearness/vacancy/images/bunny_marching_cubes.png\" width=\"320\"\u003e|\n\n# Build\nTo build sample bunny executable, use cmake with `CMakeLists.txt` in the top directory.\nYou can integrate **Vacancy** to your own projects as static library by cmake `add_subdirectory()` command.\n\n# Dependencies\n## Mandatory\n- Eigen\n    https://github.com/eigenteam/eigen-git-mirror\n    - Math\n## Optional (can be disabled by cmake)\n- stb\n    https://github.com/nothings/stb\n    - Image I/O\n- OpenMP (if supported by your compiler)\n    - Multi-thread accelaration\n","funding_links":[],"categories":["Graphics"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funclearness%2Fvacancy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Funclearness%2Fvacancy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funclearness%2Fvacancy/lists"}