[Feature Request] Build-in IK / Inverse Kinematic Solver
Nobody has claimed this yet.
- Dominant language
- C#
- Stars
- 7.8k
- Forks
- 1.2k
- Avg merge
- 2d 17h
- Merged PRs (30d)
- 49
Description
Original Content of this post:
beside to handle the character foot position, maybe this will be useful for 3rd person shooter game.
Added context from @anan1213095357 in issue #1698 :
Is your feature request related to a problem? Please describe.
Yes, my feature request is related to a problem. Currently, our software does not include an Inverse Kinematics (IK) solver, which can limit our capabilities in various animation and robotics applications. The lack of an IK solver may increase the complexity and the time needed to calculate the joint parameters that achieve the desired positions of the robotic manipulator or character.
Describe the solution you'd like
I would like to have an integrated Inverse Kinematics solver in our software. This solver should include support for different IK algorithms such as CCD, FABRIK, and Jacobian methods. It would be great if the solver could handle both single and multiple end-effectors and constraints.
Describe alternatives you've considered
An alternative could be to integrate an external IK library into our system, but this could lead to problems with compatibility and maintainability. Having a built-in IK solver will provide more flexibility and control over the feature.
Additional context
An IK solver is fundamental in various fields like computer animation, game development, robotics, and even biomechanics. It is essential for calculating joint parameters that would put an end-effector in a desired position.
- What are the usecases? The IK solver can be used in character animation for game development, robotic arm manipulations, posture prediction in biomechanics, etc.
- What kind of options/settings are expected/wanted? Options for different IK algorithms (CCD, FABRIK, Jacobian), single/multiple end-effectors, and constraints.
- What would the (pseudo) code look like? Something like this:
ik_solver.solve(end_effector_position, algorithm='CCD') - Is the feature affecting behaviour in the editor? Yes, it could come with visual representation of the IK chains and a user-friendly interface for parameter adjustment.
- if so: how should this look in the editor? It could show the IK chains and allow users to select and adjust the parameters interactively.
- Is there a component or datastructure? Yes, the IK solver could be a new component that uses data structures for the kinematic chain, joints, and end-effectors.
- what kind of documentation is needed or needs to be updated? A complete documentation explaining the usage of the new IK solver component and its options, along with updates in the parts where IK solutions are applicable.
- Should there be an example project? Yes, an example project showcasing the usage of the IK solver in different scenarios (robotics, animation) would be beneficial.
Last edit by @Eideren.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
No files, tests, or entry points are named. Start by surveying Stride’s animation, character, and editor systems, then define the solver scope and integration points before implementation. Done would require a working IK component supporting the requested algorithms, end-effectors, constraints, editor controls, documentation, and examples.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- computer-graphics, game-dev
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100