Uploaded image for project: 'Minecraft: Java Edition'
  1. Minecraft: Java Edition
  2. MC-273085

Armorstand rotation : loss of a degree of freedom

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Awaiting Response
    • None
    • 1.20.6
    • None
    • Windows 11, Java SE 22.0.1
    • Unconfirmed
    • (Unassigned)

      Hello,

      When playing with armorstand rotations on Minecraft, I came across a strange behavior, indeed when applying a specific set of angles to, let's say the armorstand's head I experience the loss of a degree of rotational freedom.

      In other words, when applying a rotation I can only move the armorstand head about 2 axes instead of 3, I am locked in a 2-dimensional plan. After some research, I figured out that the issue is called gimbals-lock and related to the usage of Euler Angles, which are used by Minecraft Java Edition since (1.8)

      Here is an illustration of the problem I did : 

      We notice that applying rotation around (Z) axis won't let us exit the plan defined by the (X) rotation sequences, we are stuck in a 2-dimensional plan.

      As part of my work in my French engineer cursus (CPGE), I went on a duty to fix this issue without changing the game code, and by simply editing outgoing server packets. I managed to fix this issue by using quaternions.

      Quaternions are amazing, after digging up a bit, I came across several threads of people complaining about this issue : https://www.spigotmc.org/threads/euler-angles-need-help-with-understanding.164705/

       I played Minecraft since its early beginning 12 years ago, as a player and I would love to see a fix to this problem, by why not using quaternions (Would they be disadvantageous in this situation why not using them from the beginning?)

       

      Hope to hear from you soon.

      Thank you, A passionate Minecraft player

            Unassigned Unassigned
            oatwa oatwa
            Votes:
            1 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: