{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/learning-generative-models-of-textured-3d","title":"Learning Generative Models of Textured 3D Meshes from Real-World Images","arxiv_id":"2103.15627","date":"2021-03-29","proceeding":"ICCV 2021 10","authors":["Dario Pavllo","Jonas Kohler","Thomas Hofmann","Aurelien Lucchi"],"abstract":"Recent advances in differentiable rendering have sparked an interest in learning generative models of textured 3D meshes from image collections. These models natively disentangle pose and appearance, enable downstream applications in computer graphics, and improve the ability of generative models to understand the concept of image formation. Although there has been prior work on learning such models from collections of 2D images, these approaches require a delicate pose estimation step that exploits annotated keypoints, thereby restricting their applicability to a few specific datasets. In this work, we propose a GAN framework for generating textured triangle meshes without relying on such annotations. We show that the performance of our approach is on par with prior work that relies on ground-truth keypoints, and more importantly, we demonstrate the generality of our method by setting new baselines on a larger set of categories from ImageNet - for which keypoints are not available - without any class-specific hyperparameter tuning. We release our code at https://github.com/dariopavllo/textured-3d-gan","url_abs":"https://arxiv.org/abs/2103.15627v2","url_pdf":"https://arxiv.org/pdf/2103.15627v2.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"learning-generative-models-of-textured-3d","repo_url":"https://github.com/dariopavllo/textured-3d-gan","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"pose-estimation","task_name":"Pose Estimation"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=2103.15627","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2103.15627"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/dariopavllo/textured-3d-gan","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran_honours":1,"ran_draft_wrong":1,"unverified":9},"by_repo_kind":{"official":{"samples":11,"ran":2,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"86fe15b439328f16","entry":"divide_pred","repo":"dariopavllo/textured-3d-gan","repo_kind":"official","path":"run_generation.py","file_url":"https://github.com/dariopavllo/textured-3d-gan/blob/HEAD/run_generation.py","link_basis":"plan_row","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"86fe15b439328f16"}},{"code_sha256_prefix":"a3ccb1025ca05d3e","entry":"mean_iou","repo":"dariopavllo/textured-3d-gan","repo_kind":"official","path":"run_reconstruction.py","file_url":"https://github.com/dariopavllo/textured-3d-gan/blob/HEAD/run_reconstruction.py","link_basis":"plan_row","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"a3ccb1025ca05d3e"}},{"code_sha256_prefix":"a13a79c65a8d64a4","entry":"diff_mask","repo":"dariopavllo/textured-3d-gan","repo_kind":"official","path":"detection_tool.py","file_url":"https://github.com/dariopavllo/textured-3d-gan/blob/HEAD/detection_tool.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"a13a79c65a8d64a4"}},{"code_sha256_prefix":"e1f6c3cba13f3ab2","entry":"load_cmr_paths","repo":"dariopavllo/textured-3d-gan","repo_kind":"official","path":"detection_tool.py","file_url":"https://github.com/dariopavllo/textured-3d-gan/blob/HEAD/detection_tool.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"e1f6c3cba13f3ab2"}},{"code_sha256_prefix":"5ce26bd44f33f167","entry":"loss_flat","repo":"dariopavllo/textured-3d-gan","repo_kind":"official","path":"utils/losses.py","file_url":"https://github.com/dariopavllo/textured-3d-gan/blob/HEAD/utils/losses.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"5ce26bd44f33f167"}},{"code_sha256_prefix":"466a1a8724a2d313","entry":"mean_iou_noreduce","repo":"dariopavllo/textured-3d-gan","repo_kind":"official","path":"utils/losses.py","file_url":"https://github.com/dariopavllo/textured-3d-gan/blob/HEAD/utils/losses.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"466a1a8724a2d313"}},{"code_sha256_prefix":"de62206eae2ed5c5","entry":"mean_miou_noreduce","repo":"dariopavllo/textured-3d-gan","repo_kind":"official","path":"utils/losses.py","file_url":"https://github.com/dariopavllo/textured-3d-gan/blob/HEAD/utils/losses.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"de62206eae2ed5c5"}},{"code_sha256_prefix":"b7d3b52c37568cae","entry":"positional_encoding","repo":"dariopavllo/textured-3d-gan","repo_kind":"official","path":"models/gan.py","file_url":"https://github.com/dariopavllo/textured-3d-gan/blob/HEAD/models/gan.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"b7d3b52c37568cae"}},{"code_sha256_prefix":"bd0faab0cfcf45a0","entry":"to_grid","repo":"dariopavllo/textured-3d-gan","repo_kind":"official","path":"pose_optimization_step1.py","file_url":"https://github.com/dariopavllo/textured-3d-gan/blob/HEAD/pose_optimization_step1.py","link_basis":"plan_row","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"bd0faab0cfcf45a0"}},{"code_sha256_prefix":"e23deeeb06942c6d","entry":"to_grid","repo":"dariopavllo/textured-3d-gan","repo_kind":"official","path":"run_reconstruction.py","file_url":"https://github.com/dariopavllo/textured-3d-gan/blob/HEAD/run_reconstruction.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"e23deeeb06942c6d"}},{"code_sha256_prefix":"7ab31145bc29a65d","entry":"to_grid_tex","repo":"dariopavllo/textured-3d-gan","repo_kind":"official","path":"run_generation.py","file_url":"https://github.com/dariopavllo/textured-3d-gan/blob/HEAD/run_generation.py","link_basis":"plan_row","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"7ab31145bc29a65d"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}