{"id":13443987,"url":"https://github.com/ranahanocka/MeshCNN","last_synced_at":"2025-03-20T17:32:40.535Z","repository":{"id":42865137,"uuid":"185282401","full_name":"ranahanocka/MeshCNN","owner":"ranahanocka","description":"Convolutional Neural Network for 3D meshes in PyTorch","archived":false,"fork":false,"pushed_at":"2024-02-07T16:41:36.000Z","size":3645,"stargazers_count":1597,"open_issues_count":96,"forks_count":318,"subscribers_count":47,"default_branch":"master","last_synced_at":"2024-10-28T07:42:15.839Z","etag":null,"topics":["3d","computer-graphics","convolutional-neural-networks","geometric-deep-learning","machine-learning","mesh","pytorch","segmentation"],"latest_commit_sha":null,"homepage":null,"language":"Python","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/ranahanocka.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":"2019-05-06T22:48:52.000Z","updated_at":"2024-10-28T07:03:29.000Z","dependencies_parsed_at":"2023-02-04T06:32:16.790Z","dependency_job_id":"e30c8955-67c9-4964-a509-6c861b8138e2","html_url":"https://github.com/ranahanocka/MeshCNN","commit_stats":{"total_commits":34,"total_committers":4,"mean_commits":8.5,"dds":0.08823529411764708,"last_synced_commit":"5bf0b899d48eb204b9b73bc1af381be20f4d7df1"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ranahanocka%2FMeshCNN","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ranahanocka%2FMeshCNN/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ranahanocka%2FMeshCNN/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ranahanocka%2FMeshCNN/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ranahanocka","download_url":"https://codeload.github.com/ranahanocka/MeshCNN/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244660769,"owners_count":20489393,"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","computer-graphics","convolutional-neural-networks","geometric-deep-learning","machine-learning","mesh","pytorch","segmentation"],"created_at":"2024-07-31T03:02:15.870Z","updated_at":"2025-03-20T17:32:35.898Z","avatar_url":"https://github.com/ranahanocka.png","language":"Python","readme":"\u003cimg src='docs/imgs/alien.gif' align=\"right\" width=325\u003e\n\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\n\n# MeshCNN in PyTorch\n\n\n### SIGGRAPH 2019 [[Paper]](https://bit.ly/meshcnn) [[Project Page]](https://ranahanocka.github.io/MeshCNN/)\u003cbr\u003e\n\nMeshCNN is a general-purpose deep neural network for 3D triangular meshes, which can be used for tasks such as 3D shape classification or segmentation. This framework includes convolution, pooling and unpooling layers which are applied directly on the mesh edges.\n\n\u003cimg src=\"docs/imgs/meshcnn_overview.png\" align=\"center\" width=\"750px\"\u003e \u003cbr\u003e\n\nThe code was written by [Rana Hanocka](https://www.cs.tau.ac.il/~hanocka/) and [Amir Hertz](http://pxcm.org/) with support from [Noa Fish](http://www.cs.tau.ac.il/~noafish/).\n\n# Getting Started\n\n### Installation\n- Clone this repo:\n```bash\ngit clone https://github.com/ranahanocka/MeshCNN.git\ncd MeshCNN\n```\n- Install dependencies: [PyTorch](https://pytorch.org/) version 1.2. \u003ci\u003e Optional \u003c/i\u003e: [tensorboardX](https://github.com/lanpa/tensorboardX) for training plots.\n  - Via new conda environment `conda env create -f environment.yml` (creates an environment called meshcnn)\n  \n### 3D Shape Classification on SHREC\nDownload the dataset\n```bash\nbash ./scripts/shrec/get_data.sh\n```\n\nRun training (if using conda env first activate env e.g. ```source activate meshcnn```)\n```bash\nbash ./scripts/shrec/train.sh\n```\n\nTo view the training loss plots, in another terminal run ```tensorboard --logdir runs``` and click [http://localhost:6006](http://localhost:6006).\n\nRun test and export the intermediate pooled meshes:\n```bash\nbash ./scripts/shrec/test.sh\n```\n\nVisualize the network-learned edge collapses:\n```bash\nbash ./scripts/shrec/view.sh\n```\n\nAn example of collapses for a mesh:\n\n\u003cimg src=\"/docs/imgs/T252.png\" width=\"450px\"/\u003e \n\nNote, you can also get pre-trained weights using bash ```./scripts/shrec/get_pretrained.sh```. \n\nIn order to use the pre-trained weights, run ```train.sh``` which will compute and save the mean / standard deviation of the training data. \n\n\n### 3D Shape Segmentation on Humans\nThe same as above, to download the dataset / run train / get pretrained / run test / view\n```bash\nbash ./scripts/human_seg/get_data.sh\nbash ./scripts/human_seg/train.sh\nbash ./scripts/human_seg/get_pretrained.sh\nbash ./scripts/human_seg/test.sh\nbash ./scripts/human_seg/view.sh\n```\n\nSome segmentation result examples:\n\n\u003cimg src=\"/docs/imgs/shrec__10_0.png\" height=\"150px\"/\u003e \u003cimg src=\"/docs/imgs/shrec__14_0.png\" height=\"150px\"/\u003e \u003cimg src=\"/docs/imgs/shrec__2_0.png\" height=\"150px\"/\u003e \n\n### Additional Datasets\nThe same scripts also exist for COSEG segmentation in ```scripts/coseg_seg``` and cubes classification in ```scripts/cubes```. \n\n# More Info\nCheck out the [MeshCNN wiki](https://github.com/ranahanocka/MeshCNN/wiki) for more details. Specifically, see info on [segmentation](https://github.com/ranahanocka/MeshCNN/wiki/Segmentation) and [data processing](https://github.com/ranahanocka/MeshCNN/wiki/Data-Processing).\n\n# Other implementations\n- [Point2Mesh tensorflow reimplementation](https://github.com/dcharatan/point2mesh-reimplementation), which also contains MeshCNN\n- [MedMeshCNN](https://github.com/Divya9Sasidharan/MedMeshCNN), handles meshes with 170k edges\n\n# Citation\nIf you find this code useful, please consider citing our paper\n```\n@article{hanocka2019meshcnn,\n  title={MeshCNN: A Network with an Edge},\n  author={Hanocka, Rana and Hertz, Amir and Fish, Noa and Giryes, Raja and Fleishman, Shachar and Cohen-Or, Daniel},\n  journal={ACM Transactions on Graphics (TOG)},\n  volume={38},\n  number={4},\n  pages = {90:1--90:12},\n  year={2019},\n  publisher={ACM}\n}\n```\n\n\n# Questions / Issues\nIf you have questions or issues running this code, please open an issue so we can know to fix it.\n  \n# Acknowledgments\nThis code design was adopted from [pytorch-CycleGAN-and-pix2pix](https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix).\n","funding_links":[],"categories":["Python"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Franahanocka%2FMeshCNN","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Franahanocka%2FMeshCNN","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Franahanocka%2FMeshCNN/lists"}