Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Positional tracker support #920

Open
wants to merge 40 commits into
base: main
Choose a base branch
from
Open

Positional tracker support #920

wants to merge 40 commits into from

Conversation

Stermere
Copy link
Contributor

@Stermere Stermere commented Jan 6, 2024

Adds an inverse kinematics solver to the skeleton allowing for positional and rotational trackers to be used together. An example would be using 3 positional trackers for the waist and feet and 2 rotational trackers on your leg to add knee-tracking. That is just one example though, any combination of trackers is theoretically supported. Needs SlimeVR/SolarXR-Protocol#139 merged before this can be merged.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why does constraint need to be abstract? why is there so many vars instead of vals? For example does allowModifications need to be modifiable?

I would very much like to reduce the OOP-style of this

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Constraint is abstract because different joints have different constraints, originally I wanted to make a hinge joint for knees and elbows but ended up not getting to that, there are still different constraint types though for example the CompleteConstraint is for bones that the solver should ignore, I don't know how I would do this without an abstract class but I am open to suggestions! With the current way things are set up the Var's cannot be changed to Val's without significant change, probably pulling the Constraint out of the Bone class, and moving it into the IKChain's. Let me know if that change sounds reasonable, and if you still don't like the abstract class what do you suggest I do to remove it?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area: Skeletal Model Deals with the model of the skeleton and its pose Difficulty: Math Heavy For something that requires some non-trivial math Priority: Normal The default priority
Development

Successfully merging this pull request may close these issues.

Properly support positional constraints in skeletal model
2 participants