{"id":16203088,"url":"https://github.com/michidk/interactive-arap","last_synced_at":"2025-03-19T07:30:31.998Z","repository":{"id":73861246,"uuid":"436601088","full_name":"michidk/Interactive-ARAP","owner":"michidk","description":"Interactive ARAP Mesh Deformer","archived":false,"fork":false,"pushed_at":"2024-03-26T10:53:37.000Z","size":4282,"stargazers_count":18,"open_issues_count":1,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-28T16:11:19.870Z","etag":null,"topics":["arap","cpp","mesh-deformation"],"latest_commit_sha":null,"homepage":"","language":"C++","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/michidk.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":"2021-12-09T12:02:26.000Z","updated_at":"2024-05-11T12:57:13.000Z","dependencies_parsed_at":"2024-10-27T20:21:13.458Z","dependency_job_id":null,"html_url":"https://github.com/michidk/Interactive-ARAP","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michidk%2FInteractive-ARAP","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michidk%2FInteractive-ARAP/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michidk%2FInteractive-ARAP/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michidk%2FInteractive-ARAP/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/michidk","download_url":"https://codeload.github.com/michidk/Interactive-ARAP/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243973753,"owners_count":20377228,"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":["arap","cpp","mesh-deformation"],"created_at":"2024-10-10T09:51:33.399Z","updated_at":"2025-03-19T07:30:31.992Z","avatar_url":"https://github.com/michidk.png","language":"C++","readme":"# Interactive ARAP Mesh Deformer\n\nOur implemtation of the [As-Rigid-As-Possible (ARAP) algorithm](https://igl.ethz.ch/projects/ARAP/index.php) by Olga Sorkine-Hornung and Marc Alexa for the course [3D Scanning \u0026 Motion Capture (IN2354)](https://www.in.tum.de/cg/teaching/winter-term-2021/3d-scanning-motion-capture/) at Technical University of Munich.\n\n![Animated ARAP gif](.github/images/arap.gif)\n\n## Screenshots\n\n![ARAP deformations](.github/images/arap-deforms.png)\n\n## Implementation\n\nOur implementation follows the paper [\"As-Rigid-As-Possible Surface Modeling\"](https://igl.ethz.ch/projects/ARAP/) by Olga Sorkine-Hornung and Marc Alexa. We implemented the weight calculation as presented in [\"On Linear Variational Surface Deformation Methods\"](https://igl.ethz.ch/projects/deformation-survey/) by Mario Botsch and Olga Sorkine.\n\n## Dependencies\n\nThis implementation depends on the following libaries:\n\n- [Eigen](https://eigen.tuxfamily.org)\n- [libigl](https://libigl.github.io/) (which includes OenGL \u0026 GLFW)\n- [OpenMP](https://www.openmp.org/) [Optional]\n- [Catch 2](https://github.com/catchorg/Catch2) [Optional]\n\nThese librabies can be installed with the following commands:\n\n```bash\nsudo apt-get install -y \\\n  libeigen3-dev \\\n  libglfw3 libglfw3-dev\n```\n\nDepending on your system setup, further dependencies might be required. Have a look at the [Dockerfile](./Dockerfile) to see how to install ALL dependencies on a clean Ubuntu setup.\n\n## Setup\n\n### Docker Development Environment\n\nTo run the compilation inside the Docker container, just run the docker-compose file (with `docker-compose run --rm arab-dev`) or use vscode devcontainers. Note that running in Docker containers will possibly reduce the performance.\n\n### Building\n\nTo compile the application, run the following commands from the root directory:\n\n```bash\ncmake .\nmake\n```\n\nOr use [just](https://github.com/casey/just/) with `just -l` (to list all available commands) and e.g. `just build` (to build).\n\n### Running\n\nSetup a x11 server (e.g. https://x410.dev under Windows) and execute the binary.\nIn the `devcontainer.json` or `docker-compose.yml`-file the `$DISPLAY` variables might have to be adjusted, depeding on your x11 setup.\n\nUse `just runb` to compile and run the application.\n\n### Problems\n\nIf any issues arise, execute `just clean` before running `just build` again.\n\n## Customization\n\nThe mesh file to load can be adjusted in the `main.cpp`. There are also a few options defined as macros in the `arap.cpp`.\n\n## Keybindings\n\nYou can mark vertices with the left mouse button. Right mouse button to remove marked vertices. The selection mode as well as settings of the viewport can be changed by pressing keys that are listed in the console during application startup.\n\n## Example Models\n\nThis repository comes with some example mesh `.off` ([Object File Format](\u003chttps://en.wikipedia.org/wiki/OFF_(file_format)\u003e)) files.\n\nThe following licenses apply:\n\n| File | License |\n| - | - |\n| [bunny.off](./data/bunny.off) | The Stanford 3D Scanning Repository, http://graphics.stanford.edu/data/3Dscanrep |\n| [cube.off](./data/cube.off) | Created by us |\n| [decimated-knight.off](./data/decimated-knight.off) | Cosmic blobs, http://www.mit.edu/~ibaran/autorig |\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmichidk%2Finteractive-arap","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmichidk%2Finteractive-arap","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmichidk%2Finteractive-arap/lists"}