{"id":20325093,"url":"https://github.com/mphe/gdnative-ropesim","last_synced_at":"2025-04-10T02:20:04.075Z","repository":{"id":95853894,"uuid":"596320763","full_name":"mphe/GDNative-Ropesim","owner":"mphe","description":"A 2D verlet integration based rope simulation for Godot 4. Written in C++ using GDExtension for fast performance.","archived":false,"fork":false,"pushed_at":"2025-03-18T20:51:21.000Z","size":170,"stargazers_count":75,"open_issues_count":2,"forks_count":7,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-03T01:13:19.114Z","etag":null,"topics":["fast","gdextension","gdnative","godot","integration","rope","simulation","verlet"],"latest_commit_sha":null,"homepage":"","language":"C++","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/mphe.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":"2023-02-01T23:30:06.000Z","updated_at":"2025-03-23T18:19:16.000Z","dependencies_parsed_at":"2023-11-10T23:25:45.421Z","dependency_job_id":"df578ad4-1699-4576-990a-aeeff3406dcd","html_url":"https://github.com/mphe/GDNative-Ropesim","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mphe%2FGDNative-Ropesim","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mphe%2FGDNative-Ropesim/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mphe%2FGDNative-Ropesim/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mphe%2FGDNative-Ropesim/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mphe","download_url":"https://codeload.github.com/mphe/GDNative-Ropesim/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248142922,"owners_count":21054673,"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":["fast","gdextension","gdnative","godot","integration","rope","simulation","verlet"],"created_at":"2024-11-14T19:38:41.314Z","updated_at":"2025-04-10T02:20:04.053Z","avatar_url":"https://github.com/mphe.png","language":"C++","funding_links":["https://ko-fi.com/Q5Q015GBOP"],"categories":[],"sub_categories":[],"readme":"# GDNative Ropesim\n\n![Godot 4.2+ compatible](https://img.shields.io/badge/Godot-4.2+-%23478cbf?logo=godot-engine\u0026logoColor=white)\n\n\n\u003cimg src=\"https://github.com/mphe/GDNative-Ropesim/assets/7116001/272f4f65-cb79-4798-97ba-f0d43589caef\" width=128px align=\"right\"/\u003e\n\nA 2D verlet integration based rope simulation for Godot 4.2+.\n\nThe computation-heavy simulation part is written in C++ using GDExtension, the rest in GDScript. This allows for fast processing and easy extendability, while keeping the code readable.\n\nThe last Godot 3.x version can be found on the [3.x branch](https://github.com/mphe/GDNative-Ropesim/tree/3.x), however, this branch will no longer receive updates.\n\nIf you like this plugin and want to support my work, consider leaving a tip on Ko-fi.\n\n[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/Q5Q015GBOP)\n\n## Setup\n\n1. Get the addon\n    * [Download](https://godotengine.org/asset-library/asset/2334) from the asset store, or\n    * [Download](https://github.com/mphe/GDNative-Ropesim/releases/latest) the latest release from the release page, or\n    * [Download](https://github.com/mphe/GDNative-Ropesim/actions) it from the latest GitHub Actions run, or\n    * [Compile](#building) it yourself.\n2. Copy or symlink `addons/ropesim` to your project's `addons/` directory\n3. Enable the addon in the project settings\n4. Restart Godot\n\n## Building\n\nFirst, clone or download the repository and run `git submodule update --init --recursive`.\n\nSee [here](https://docs.godotengine.org/en/latest/tutorials/scripting/gdextension/gdextension_cpp_example.html#doc-gdextension-cpp-example) on how to create and compile GDExtension libraries.\n\nTo compile for Linux, run the following commands.\nCompiling for other platforms works analogously.\n\n```sh\n$ scons target=template_release platform=linux optimize=speed arch=x86_64 -j8\n$ scons target=template_debug platform=linux arch=x86_64 -j8\n```\n\nOutput files are saved to `demo/addons/ropesim/bin/`.\n\n## Documentation and Usage\n\n### Nodes\n\nThe following nodes exist:\n* `Rope`: The basic rope node. Optionally renders the rope using `draw_polyline()`.\n* `RopeAnchor`: Always snaps to the specified position on the target rope. Optionally, also adapts to the rope's curvature. Can be used to attach objects to a rope.\n* `RopeHandle`: A handle that can be used to control, animate, or fixate parts of the rope.\n* `RopeRendererLine2D`: Renders a target rope using `Line2D`.\n* `RopeCollisionShapeGenerator`: Can be used e.g. in an `Area2D` to detect collisions with the target rope.\n* `RopeInteraction`: Handles mutual interaction of a target node with a rope. Useful for rope grabbing or pulling mechanics where an object should be able to affect the rope and vice-versa.\n\n**NOTE:** All rope related tools automatically pause themselves when their target rope is paused to reduce computation costs and improve performance.\n\nUse the in-engine help to view the full documentation for each node.\n\n### Examples\nThe project includes various example scenes that demonstrate the features of this plugin.\nSee also the [showcase video](#showcase) for a basic usage example.\n\n### Editor Menu\nWhen one of the above nodes is selected, a \"*Ropesim*\" menu appears in the editor toolbar with the following options:\n* `Preview in Editor`: Toggle live preview in the editor on or off.\n* `Reset Rope`: Reset the selected rope to its resting position.\n\n## Showcase\n\nA quick overview of how to use each node.\n\nhttps://user-images.githubusercontent.com/7116001/216790870-4e57fce0-7981-44f5-9963-daa1d9751abf.mp4\n\n\n\nJellyfish with rope simulated tentacles.\n\nhttps://user-images.githubusercontent.com/7116001/216791913-35321ddb-ee35-44e2-85ba-0632a1123fda.mp4\n\n\n\nMore advanced usage examples.\n\nhttps://github.com/user-attachments/assets/28e3dda1-6929-4ddf-8afa-041f66a5849b\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmphe%2Fgdnative-ropesim","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmphe%2Fgdnative-ropesim","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmphe%2Fgdnative-ropesim/lists"}