{"id":39082216,"url":"https://github.com/ptrvilya/tridi","last_synced_at":"2026-01-17T18:31:45.589Z","repository":{"id":321289218,"uuid":"1078766334","full_name":"ptrvilya/tridi","owner":"ptrvilya","description":"[ICCV'25] Method for generating static human-object interactions","archived":false,"fork":false,"pushed_at":"2025-10-28T20:15:22.000Z","size":4040,"stargazers_count":22,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-28T22:22:19.528Z","etag":null,"topics":["3d-human","human-object","human-object-interaction","iccv","iccv2025","iccv25"],"latest_commit_sha":null,"homepage":"https://virtualhumans.mpi-inf.mpg.de/tridi/","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/ptrvilya.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-18T11:30:30.000Z","updated_at":"2025-10-28T20:15:26.000Z","dependencies_parsed_at":"2025-10-28T22:22:51.737Z","dependency_job_id":"fdeef4fc-62e3-4b34-8b76-f04310501eb1","html_url":"https://github.com/ptrvilya/tridi","commit_stats":null,"previous_names":["ptrvilya/tridi"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/ptrvilya/tridi","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ptrvilya%2Ftridi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ptrvilya%2Ftridi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ptrvilya%2Ftridi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ptrvilya%2Ftridi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ptrvilya","download_url":"https://codeload.github.com/ptrvilya/tridi/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ptrvilya%2Ftridi/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28515798,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T18:28:00.501Z","status":"ssl_error","status_checked_at":"2026-01-17T18:28:00.150Z","response_time":85,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["3d-human","human-object","human-object-interaction","iccv","iccv2025","iccv25"],"created_at":"2026-01-17T18:31:44.928Z","updated_at":"2026-01-17T18:31:45.580Z","avatar_url":"https://github.com/ptrvilya.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!-- HEADER --\u003e\n\u003cp align=\"center\"\u003e\n    \u003ch1 align=\"center\"\u003eTriDi: Trilateral Diffusion of 3D Humans, Objects and Interactions\u003c/h1\u003e\n    \u003c!-- authors --\u003e\n    \u003cp align=\"center\"\u003e\n        \u003ca href=\"https://virtualhumans.mpi-inf.mpg.de/people/Petrov.html\"\u003e\u003cb\u003eIlya A. Petrov\u003c/b\u003e\u003c/a\u003e\n        \u0026emsp;\n        \u003ca href=\"https://riccardomarin.github.io/\"\u003e\u003cb\u003eRiccardo Marin\u003c/b\u003e\u003c/a\u003e\n        \u0026emsp;\n        \u003ca href=\"https://virtualhumans.mpi-inf.mpg.de/people/Chibane.html\"\u003e\u003cb\u003eJulian Chibane\u003c/b\u003e\u003c/a\u003e\n        \u0026emsp;\n        \u003ca href=\"https://virtualhumans.mpi-inf.mpg.de/people/pons-moll.html\"\u003e\u003cb\u003eGerard Pons-Moll\u003c/b\u003e\u003c/a\u003e\n    \u003c/p\u003e\n    \u003c!-- conference --\u003e\n    \u003ch3 align=\"center\"\u003eICCV 2025\u003c/h3\u003e\n    \u003c!-- teaser --\u003e\n    \u003cp align=\"center\"\u003e\n        \u003cimg src=\"assets/petrov25tridi.gif\" alt=\"Project Teaser\" width=\"600px\"\u003e\n    \u003c/p\u003e\n    \u003c!-- badges --\u003e\n    \u003cp align=\"center\"\u003e\n        \u003ca href=\"https://arxiv.org/abs/2412.06334\"\u003e\n            \u003cimg src=\"https://img.shields.io/badge/arXiv-2412.06334-b31b1b.svg?style=for-the-badge\" alt=\"Paper PDF\"\u003e\n        \u003c/a\u003e\n        \u0026emsp;\n        \u003ca href=\"https://virtualhumans.mpi-inf.mpg.de/tridi/\"\u003e\n            \u003cimg src=\"https://img.shields.io/badge/Project-Page-blue?style=for-the-badge\u0026logo=Google%20chrome\u0026logoColor=white\" alt=\"Project Page\"\u003e\n        \u003c/a\u003e\n        \u0026emsp;\n        \u003ca href=\"https://youtu.be/_UHLfbgGCbI\"\u003e\n            \u003cimg src=\"https://img.shields.io/badge/YouTube-video-black?style=for-the-badge\u0026logo=youtube\u0026logoColor=white\u0026labelColor=FF0000\u0026color=black\" alt=\"YouTube video\"\u003e\n        \u003c/a\u003e\n    \u003c/p\u003e\n\u003c/p\u003e\n\n\n## Environment\nThe code was tested under `Ubuntu 24.04, Python 3.10, CUDA 13.0, PyTorch 2.9.0`.\nUse the following command to create a conda environment with necessary dependencies:\n```bash\nconda env create -f environment.yml\n```\n\n## Data downloading and processing\nThe steps are described in [docs/data.md](./docs/data.md).\n\n\n## Pre-trained models and evaluation\nPre-trained model can be obtained from the [link](https://nc.mlcloud.uni-tuebingen.de/index.php/s/bmsRACRqzCQ4QPq). \nWith the commands:\n```bash\nwget https://nc.mlcloud.uni-tuebingen.de/public.php/dav/files/bmsRACRqzCQ4QPq/gb_main.pth -O ./assets/gb_main.pth\nwget https://nc.mlcloud.uni-tuebingen.de/public.php/dav/files/bmsRACRqzCQ4QPq/gb_contacts.pth -O ./assets/gb_contacts.pth\n```\n\nThe command below is used to run sampling. Prameter `sample.mode` controls the choice of modalities, i.e.:\nthree numbers correspond to human, object, and interaction, respectively; \n`1` means the modality is sampled, `0` means it is conditioned on. \nFor example, `sample.mode=\"sample_101\"` means sampling human and interaction conditioned on the object.\n```bash\npython main.py -c config/env.yaml scenarios/gb_main.yaml -- \\\n  run.job=sample run.name=001_gb_main sample.target=hdf5 \\\n  resume.checkpoint=\"./assets/gb_main.pth\" \\\n  dataloader.batch_size=1024 sample.mode=\"sample_101\" \\\n  run.datasets=[\"grab\",\"behave\"] sample.dataset=normal sample.repetitions=3 \\\n  model.cg_apply=True model.cg_scale=2.0\n```\nUse the command below to run evaluation on the generated samples. The `eval.sampling_target` parameter controls \nwhich modalities are evaluated (possible values: `sbj_contact`, `obj_contact`,):\n```bash\npython main.py -c config/env.yaml scenarios/gb_main.yaml -- \\\n  run.job=eval run.name=001_gb_main resume.step=-1 \\\n  eval.sampling_target=['sbj_contact'] \n```\n\n## Training\nUse the following command to run the training:\n```bash\npython main.py -c config/env.yaml scenarios/gb_main.yaml -- \\\n  run.name=001_gb_main run.job=train\n```\n\n\n## Citation\n```bibtex\n@inproceedings{petrov2025tridi,\n   title={TriDi: Trilateral Diffusion of 3D Humans, Objects and Interactions},\n   author={Petrov, Ilya A and Marin, Riccardo and Chibane, Julian and Pons-Moll, Gerard},\n   booktitle={Proceedings of the IEEE/CVF International Conference on Computer Vision},\n   year={2025}\n}\n```\n\n\n## Acknowledgements\nThis project benefited from the following resources:\n* [BEHAVE](https://virtualhumans.mpi-inf.mpg.de/behave/license.html), [GRAB](https://grab.is.tue.mpg.de/), \n[OMOMO](https://github.com/lijiaman/omomo_release), and [InterCap](https://intercap.is.tue.mpg.de/) datasets;\n* [grab](https://github.com/otaheri/GRAB) preprocessing code; \n* [smplx](https://github.com/vchoutas/smplx) repository: SMPL-X to SMPL+H conversion;\n* [PC^2 diffusion](https://github.com/lukemelas/projection-conditioned-point-cloud-diffusion): diffusion implementation;\n* [PointNeXt](https://github.com/guochengqian/PointNeXt): point cloud encoder;\n* [blendify](https://github.com/ptrvilya/blendify/): all visualizations;\n* [blogpost](http://danshiebler.com/2016-09-14-parallel-progress-bar/): parallel map implementation.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fptrvilya%2Ftridi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fptrvilya%2Ftridi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fptrvilya%2Ftridi/lists"}