Hello, I've been using Godot for quite a while as a primarily 2D game engine. Recently, I've decided to dive into 3D.

Right now, I'm trying to move a RigidBody to a specific position and rotation using only apply impulse() and apply torque impulse().

I've figured out moving the body to a specific position using apply impulse():

```
func _physics_process(delta):
self.linear_velocity = (self.translation.distance_to(targetPosition)/magnetFriction * linear_velocity * delta)
apply_impulse(Vector3.ZERO, (targetPosition - self.translation) * delta * moveForce )
```

(this solution is not perfect but works...)

**My problem is that I can't figure out how to move an object to a specific rotation, in the same way, using only apply torque impulse().**

My target angle is a Vector3, corresponding to an Euler angle.

First I naively thought I could just apply the difference of my current Euler angle and my target Euler angle :

```
func _physics_process(delta):
apply_torque_impulse(targetAngle - rotation)
```

This ended in disaster as it turns out, you can't rotate on two axis at once without your angles going crazy.

Next I tried to use **Quaternions**,

I figured out something that sort of works sometimes but will break at other times:

```
func _physics_process(delta):
var targetQuat = Quat(targetRotation)
var currentQuat = Quat(rotation)
var intermediateQuat = currentQuat.slerp(targetQuat, 1 * delta)
var intermediateEuler = intermediateQuat.get_euler()
var targetEuler = intermediateEuler - rotation
apply_torque_impulse(targetEuler * delta * 100)
```

This solution is really unpredictable and unstable,

The problem is that I'm having a hard time properly understanding Quaternions and how to use them in my problem.

I would really appreciate some help on this seemingly basic problem.