Coder Social home page Coder Social logo

yangqingming / gdnative-ropesim Goto Github PK

View Code? Open in Web Editor NEW

This project forked from mphe/gdnative-ropesim

0.0 0.0 0.0 91 KB

A 2D verlet integration based rope simulation for Godot 4. Written in C++ using GDExtension for fast performance.

License: MIT License

C++ 90.51% Python 9.49%

gdnative-ropesim's Introduction

GDNative Ropesim

A 2D verlet integration based rope simulation for Godot 4.2.

The 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.

The last Godot 3.x version can be found on the 3.x branch, however, this branch will no longer receive updates.

Setup

  1. Get the addon
    • Download from the asset store, or
    • Download the latest release from the release page, or
    • Download it from the latest GitHub Actions run, or
    • Compile it yourself.
  2. Copy or symlink addons/ropesim to your project's addons/ directory
  3. Enable the addon in the project settings
  4. Restart Godot

Building

First, clone or download the repository and run git submodule update --init --recursive.

See here on how to create and compile GDExtension libraries.

To compile for Linux, run the following commands. Compiling for other platforms works analogously.

$ scons target=template_release platform=linux arch=x86_64 -j8
$ scons target=template_debug platform=linux arch=x86_64 -j8

Output files are saved to demo/addons/ropesim/bin/.

Documentation

Following nodes exist:

  • Rope: The basic rope node. Optionally renders the rope using draw_polyline().
  • 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.
  • RopeHandle: A handle that can be used to control, animate, or fixate parts of the rope.
  • RopeRendererLine2D: Renders a target rope using Line2D.
  • RopeCollisionShapeGenerator: Can be used e.g. in an Area2D to detect collisions with the target rope.

See inline comments for further information and documentation of node properties.

The included demo project and the showcase video below provide some usage examples.

When one of these nodes is selected, a "Ropesim" menu appears in the editor toolbar that can be used to toggle live preview in the editor on and off.

All rope related tools, automatically pause themselves when their target rope is paused to save performance.

Showcase

A quick overview of how to use each node.

ropesim_showcase.mp4

Jellyfish with rope simulated tentacles.

jelly.final_4M.mp4

gdnative-ropesim's People

Contributors

mphe avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.