First of all sorry, my formal math terms are fairly rusty. But please do use formal terms and notations in your answers. I can research them myself when in doubt. I have no real idea how to even begin to solve this problem. This is also not homework, but for custom 3D navigation in a video game.
I have a cartesian coordinate system with X, Y and Z coordinates. In this coordinate system, there is an object capable of translation and rotation (= it can be anywhere, and rotated). Assuming my object is at the origin (0, 0, 0) and in a "default rotation", then I know the absolute coordinates of three reference points $a$, $b$ and $c$, which each pairwise differ in at least $1 \le n \le 3$ coordinates and do not lie on a straight line. I would like $n$ to be minimal while still achieving a unique result. I can also query each point's coordinates at any given time.
For ease of use, I would like to specify rotations in coordinate deltas. For example, if my rotation is (1, 0, 0), then if I moved forwards the global coordinates would change by $(1,0,0) \times speed$ per time step. So essentially I would like to have my rotation as a normalized "forwards vector" with length 1.
The default rotation of my object should be (0,0,1), although I am not sure whether this will play any role.
How do I calculate the current forward vector based on the reference points' original global coordinates and current global coordinates? What is the minimal number of dimensions $n$ that the reference points need to be pairwise different from each other?
Might be related to this question, but I cannot guarantee an axis-aligned normal vector of my plane.