{"id":19766258,"url":"https://github.com/akaliutau/3dreconstruction","last_synced_at":"2026-06-08T18:32:50.361Z","repository":{"id":120055873,"uuid":"353928063","full_name":"akaliutau/3dreconstruction","owner":"akaliutau","description":"PoC for reconstruction of 3d shape from 2d snapshots using epipolar geometry","archived":false,"fork":false,"pushed_at":"2021-04-14T11:10:14.000Z","size":2002,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-28T10:55:26.098Z","etag":null,"topics":["computational-geometry","computer-graphics","cpp"],"latest_commit_sha":null,"homepage":"","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/akaliutau.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-04-02T06:29:28.000Z","updated_at":"2021-04-14T11:10:16.000Z","dependencies_parsed_at":null,"dependency_job_id":"08788acb-7530-41c4-a2b6-ffdbcd0a42d9","html_url":"https://github.com/akaliutau/3dreconstruction","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/akaliutau/3dreconstruction","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akaliutau%2F3dreconstruction","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akaliutau%2F3dreconstruction/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akaliutau%2F3dreconstruction/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akaliutau%2F3dreconstruction/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/akaliutau","download_url":"https://codeload.github.com/akaliutau/3dreconstruction/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akaliutau%2F3dreconstruction/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34075956,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-08T02:00:07.615Z","response_time":111,"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":["computational-geometry","computer-graphics","cpp"],"created_at":"2024-11-12T04:23:35.280Z","updated_at":"2026-06-08T18:32:50.337Z","avatar_url":"https://github.com/akaliutau.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"About\n======\nIt was one of my first projects completed in the framework of larger research program in 3d graphics. Among my other bold achievements see the 3d rendering engine (https://github.com/akalu/phy-engine)\n\nAs for the aim of this project, it was to develop a universal approach to very ambitious problem of restoring of the 3D shape of some object having only its snapshots.  \n\nThis is a very old and well-know problem in Computer Graphics and Computational Geometry [1,2]. The standard approach implies direct restoration of positions of L2-close points using geometric calculations. This approach is not stable and rarely gives good results.\n\nThere is a different, more original approach though. For example similar to that described in [4] using variational optimization solver to reconstruct a free-form, texture-mapped, 3D scene models from a single painting or photograph.\n\n\nIdea\n====\n\nMy approach to the problem was quite straightforward. \nFirst of all I noticed that the snapshots of 3d object are just projections of this object to some 2d plane. \nAs a result one can use epipolar geometry to determine the approximate position of points in 3d space [3]. \n\nAll these restored points form a sort of 3d mesh and can be used as the vertices of polygons of curved surface in 3d space.\n\nIn order to check the feasibility of  this idea I decided to implement a simple C++ application which could restore an approximate 3d shape given the pair of stereoscopic images.\n\nImplementation\n===========\n\nI created the very first implementation of this idea in 2004 in C++ as a PoC, it was not optimal in terms of computational efficiency and worked with satisfactory results only on small set of images. Surprisingly the binary for Windows is still executable (I checked it on the latest Windows 10) – see the compiled application in src/RELEASE/Image.exe\n\nIn folder slides/ one can find the two original 2d snapshots of 3d object - in this case this is just a stereo pair: snapshot_left_eye and snapshot_right_eye. The size of images must be the same, only bmp format is supported.\n\nThe resulting image is saved to restored_image_avr.png\n\nNote the approximate character of 3d shape - in this implementation I did not generate a surface, just dot-mesh.\n\nReferences\n=========\n[1] O. Faugeras, L. Robert What can two images tell us about a third one? (https://hal.inria.fr/inria-00074653)\n\n[2] 3D reconstruction (https://en.wikipedia.org/wiki/3D_reconstruction_from_multiple_images)\n\n[3] Epipolar geometry (https://en.wikipedia.org/wiki/Epipolar_geometry)\n\n[4]  L. Zhang, G. Dugas-Phocion, J.-S. Samson, and S. M. Seitz,  Single view modeling of free-form scenes, Journal of Visualization and Computer Animation, 2002, vol. 13, no. 4, pp. 225-235.  (https://grail.cs.washington.edu/projects/svm/jvca2002.pdf ) \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fakaliutau%2F3dreconstruction","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fakaliutau%2F3dreconstruction","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fakaliutau%2F3dreconstruction/lists"}