Skip to content

fix(cuda): correct revolute joint axis direction for right-handed rotation#408

Merged
MuGdxy merged 1 commit intospiriMirror:mainfrom
Ligo04:fix/revolute-joint-axis-direction
Mar 26, 2026
Merged

fix(cuda): correct revolute joint axis direction for right-handed rotation#408
MuGdxy merged 1 commit intospiriMirror:mainfrom
Ligo04:fix/revolute-joint-axis-direction

Conversation

@Ligo04
Copy link
Copy Markdown
Contributor

@Ligo04 Ligo04 commented Mar 26, 2026

Summary

  • Fix revolute joint axis direction (UnitE) by reversing it from (P0 - P1) to (P1 - P0), ensuring positive angles follow right-handed spiral rotation around the joint axis.
  • Applied consistently in both the joint constitution and external force constraint.

…ation

Reverse UnitE from (P0 - P1) to (P1 - P0) so that positive angles
follow right-handed spiral rotation around the joint axis.

Made-with: Cursor
@gemini-code-assist
Copy link
Copy Markdown
Contributor

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request resolves an issue in the CUDA backend where the revolute joint axis direction was incorrectly defined. By reversing the vector subtraction used to calculate the UnitE vector, the system now accurately adheres to the right-handed rotation convention. This correction ensures that joint movements and external force constraints are simulated with the proper directional orientation, improving the overall physical accuracy of the simulation.

Highlights

  • Revolute Joint Axis Direction: Reversed the calculation of the revolute joint axis direction (UnitE) from (P0 - P1) to (P1 - P0) to ensure positive angles follow a right-handed spiral rotation.
  • Consistency Across Implementations: Applied the corrected axis direction consistently in both the joint constitution and the external force constraint implementations for revolute joints.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request modifies the calculation of the UnitE vector in two files related to affine body revolute joints: affine_body_revolute_joint.cu and affine_body_revolute_joint_external_force_constraint.cu. The change reverses the order of subtraction from (P0 - P1) to (P1 - P0) when determining UnitE, likely correcting the vector's direction for physical accuracy. There are no review comments to address.

@MuGdxy MuGdxy merged commit aab274e into spiriMirror:main Mar 26, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants