{"id":25407687,"url":"https://github.com/bryantcrisos/softpin","last_synced_at":"2025-10-31T03:30:33.402Z","repository":{"id":271953879,"uuid":"914948467","full_name":"BryantCrisos/softPin","owner":"BryantCrisos","description":"softPin assigns pins for Godot's SoftBody3D using Vertex Paint","archived":false,"fork":false,"pushed_at":"2025-02-13T02:12:48.000Z","size":4693,"stargazers_count":9,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-13T02:35:29.332Z","etag":null,"topics":["godot","godotengine","softbody-simulation","softpin"],"latest_commit_sha":null,"homepage":"","language":"GDScript","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/BryantCrisos.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":"2025-01-10T16:32:47.000Z","updated_at":"2025-02-13T02:12:51.000Z","dependencies_parsed_at":null,"dependency_job_id":"f0eddf5d-dcef-4d81-845b-9df3b8fd408a","html_url":"https://github.com/BryantCrisos/softPin","commit_stats":null,"previous_names":["bryantcrisos/softpin"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BryantCrisos%2FsoftPin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BryantCrisos%2FsoftPin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BryantCrisos%2FsoftPin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BryantCrisos%2FsoftPin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BryantCrisos","download_url":"https://codeload.github.com/BryantCrisos/softPin/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239098157,"owners_count":19581178,"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":["godot","godotengine","softbody-simulation","softpin"],"created_at":"2025-02-16T07:17:57.875Z","updated_at":"2025-10-31T03:30:27.607Z","avatar_url":"https://github.com/BryantCrisos.png","language":"GDScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"![img](https://i.imgur.com/1SrS3BG.gif)\n# A SoftBody3D Pinned Point addon for Godot 4.2+\nThis addon makes it easier to pin points on a `SoftBody3D` Node. The `SoftPin Node` uses Vertex Colors and separate the areas you want the `SoftBody3D` to simulate.\n\n# Installation\n1. Download the repository as a zip and extract it.\n2. Copy the `addons` folder into the root folder of your project.\n3. Go to Project \u003e Project Settings \u003e Plugins tab and enable SoftPin\n\n\n![img](https://i.imgur.com/yX16MdL.png) \n\n4. You're ready to go! The `SoftPin Node` should be under Node\n\n![img](https://i.imgur.com/VzXU6Fh.png)\n\n\n# How to use\n\u003e[!NOTE]\n\u003eFirst you'll need to vertex paint your model. That will require Blender or another 3D software of choice.\n\n## Preparing your model\n1. Select the mesh you want to vertex paint. \n2. Fill the entire model white or black with NO transparency. Values should look like image below:  \n\n![img](https://i.imgur.com/6F5A1mi.png)\n\n3. Once the model is fully white or black, use any color and paint the area you want simulated. The non colored areas will be pinned.\n\n![img](https://i.imgur.com/hAZesYI.png)\n\n4. Export your model to godot.\n\n## Using the SoftPin Node\nAdd the `SoftPin Node` to the scene with the mesh you want to pin.\n\n![img](https://i.imgur.com/rKPyuAQ.png)\n\n| Property              |     Description |\n| --------------------- | -------------   |\n|` Soft Body`  | Used to assign the SoftBody3D you want to pin |\n|`Bone Attachment  ` | Used to attach the pinned points to `BoneAttachment3D` when Pin Type: is set to Skelelton3D |\n|`Pin Type  `  | Method of pinning, If `MeshInstance3D` is selected you only need a SoftBody. If `Skeleton3D` is selected you'll need to include a BoneAttachment with the SoftBody  |\n|` Start Pinning  `     | Used to start the pinning process once ready|\n|`Pinning Status `| Debug menu that tells you the status of the pinning or errors                       |\n\n## Pinning MeshInstance3D\nWhen pinning a `MeshInstance3D ` convert the instance into a `SoftBody3D`, Assign the `SoftBody3D`, Set the `Pin Type:` to `MeshInstance3D`, and switch `Start Pinning` to On. \n\n![img](https://i.imgur.com/C58M4oK.gif)\n\nOnce you're done you can delete the `SoftPin Node` from the scene or repeat the process with another `SoftBody3D`. Your days of wrestling with pins are finally over. \n\n## Pinning Skeleton3D\n\u003e[!WARNING]\n\u003eWhen using `PinType: Skeleton3D`, this is more ideal for things like hair, hanging cloth, and Accessories that only need one bone. Refer to [Current Gotchas](https://github.com/BryantCrisos/softPin/tree/main?tab=readme-ov-file#current-gotchas) for more info.\n\nBefore starting to pin your initial setup should look something like this.\n\n![img](https://i.imgur.com/JVkBeV2.png)\n\n\nSelect the `MeshInstance3D` under `Skeleton3D` you want to use. Convert the `MeshInstance3D` into a `SoftBody3D`, Assign the `SoftBody3D`, Assign the `BoneAttachment`, Set the `Pin Type:` to `Skeleton3D`, and switch `Start Pinning` to On.\n\n![img](https://i.imgur.com/cC1AoUB.gif)\n\nOnce finished go hit the play button to check out the SoftBody!\n\n![img](https://i.imgur.com/KmEG24v.gif)\n\n# Current Gotchas\n\u003e [!CAUTION]\n\u003e Below are limitations/issues caused by Godot, not the addon:\n\n* Selecting the `SoftBody3D` Node After pinning causes editor lag. The denser the model the longer the lag. Keeping vert count under 4K per mesh helps. \n* On project start up, having a scene tab open with Nodes that have Spatial Attachments assigned in SoftBody3D prints this error: - _scene/3d/node_3d.cpp:345 - Condition \"!is_inside_tree()\" is true. Returning: Transform3D()_\n* Unfortunately, When using `Jolt3D Physics` the quality of the SoftBody3D does not look as good as regular Godot Physics when simulating\n* When you assign `Skeleton3D` In the SoftBody it breaks. Animations on the mesh do not deform properly.  \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbryantcrisos%2Fsoftpin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbryantcrisos%2Fsoftpin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbryantcrisos%2Fsoftpin/lists"}