{"id":23376032,"url":"https://github.com/andrewkchan/pytorch_mesh_renderer","last_synced_at":"2025-09-09T16:35:11.136Z","repository":{"id":37610049,"uuid":"196298239","full_name":"andrewkchan/pytorch_mesh_renderer","owner":"andrewkchan","description":"Some implementations of differentiable 3D mesh renderers using PyTorch with examples","archived":false,"fork":false,"pushed_at":"2024-03-21T06:36:21.000Z","size":1407,"stargazers_count":9,"open_issues_count":5,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-04T20:06:28.859Z","etag":null,"topics":["differentiable-rendering","graphics","machine-learning","pytorch"],"latest_commit_sha":null,"homepage":"","language":"Python","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/andrewkchan.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":"2019-07-11T01:28:59.000Z","updated_at":"2025-02-11T18:42:11.000Z","dependencies_parsed_at":"2024-03-13T08:42:54.088Z","dependency_job_id":"f485108c-aeac-4c62-956a-931959553afd","html_url":"https://github.com/andrewkchan/pytorch_mesh_renderer","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/andrewkchan/pytorch_mesh_renderer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrewkchan%2Fpytorch_mesh_renderer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrewkchan%2Fpytorch_mesh_renderer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrewkchan%2Fpytorch_mesh_renderer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrewkchan%2Fpytorch_mesh_renderer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/andrewkchan","download_url":"https://codeload.github.com/andrewkchan/pytorch_mesh_renderer/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrewkchan%2Fpytorch_mesh_renderer/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265550405,"owners_count":23786564,"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":["differentiable-rendering","graphics","machine-learning","pytorch"],"created_at":"2024-12-21T17:32:17.558Z","updated_at":"2025-07-16T23:35:18.084Z","avatar_url":"https://github.com/andrewkchan.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Introduction\r\n\r\nThis repository contains implementations of two differentiable 3D mesh renderers using PyTorch:\r\n- `mesh_renderer`: A port of Google's [tf_mesh_renderer](https://github.com/google/tf_mesh_renderer) from Tensorflow to PyTorch. Based on the barycentric formulation from [Genova et al. 2018 \"Unsupervised training for 3d morphable model regression.\"](https://openaccess.thecvf.com/content_cvpr_2018/papers/Genova_Unsupervised_Training_for_CVPR_2018_paper.pdf)\r\n- `soft_mesh_renderer`: An alternate implementation of [SoftRas](https://github.com/ShichenLiu/SoftRas) that I built for my own learning. Based on the probabilistic rasterization formulation by [Liu et al. 2019 \"Soft Rasterizer: A Differentiable Renderer for Image-based 3D Reasoning\"](https://arxiv.org/abs/1904.01786).\r\n\r\n# Setup\r\n\r\n1. Create a virtual environment with `python3 -m venv env`\r\n2. Activate it with `source env/bin/activate`\r\n3. Install external dependencies with `pip install -r requirements.txt`\r\n\r\nSome additional setup is required to use the optimized kernel for the barycentric renderer. See [docs](https://github.com/andrewkchan/pytorch_mesh_renderer/blob/master/src/mesh_renderer/README.md) for more.\r\n\r\n# Testing\r\n\r\nTests are included for both renderers.\r\n\r\n- mesh_renderer: See [mesh_renderer docs](https://github.com/andrewkchan/pytorch_mesh_renderer/blob/master/src/mesh_renderer/README.md) for how to run these tests.\r\n- soft_mesh_renderer: See [soft_mesh_renderer docs](https://github.com/andrewkchan/pytorch_mesh_renderer/blob/master/src/soft_mesh_renderer/README.md) for how to run these tests.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandrewkchan%2Fpytorch_mesh_renderer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandrewkchan%2Fpytorch_mesh_renderer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandrewkchan%2Fpytorch_mesh_renderer/lists"}