(screenshot here)

(screenshot here)

Finally got 3D rotation part of the 2.5D algorithm working. Let’s say the inputs are a pair of eyes as illustrated by two rectangular shapes below. Notice how the eyes are rotated correctly in the above image when I set yaw to 30 degrees, but not in the bottom image. The shapes in the bottom image rotated around their own 3D anchor point.

(screenshot here)

To clarify the last post, here is an input with a simple rectangular face and eyes. Notice how both eyes stay in front of the face plane when I rotate yaw 30 degrees. Before, the character’s right eye ended up behind the face when I rotated.

A closer look at the output:
(screenshot here)