diff --git a/core/variant/variant_call.cpp b/core/variant/variant_call.cpp
index e46d14558f..4c7994b86e 100644
--- a/core/variant/variant_call.cpp
+++ b/core/variant/variant_call.cpp
@@ -2549,6 +2549,7 @@ static void _register_variant_builtin_methods_misc() {
bind_method(Basis, is_conformal, sarray(), varray());
bind_method(Basis, is_equal_approx, sarray("b"), varray());
bind_method(Basis, is_finite, sarray(), varray());
+ bind_method(Basis, is_orthonormal, sarray(), varray());
bind_method(Basis, get_rotation_quaternion, sarray(), varray());
bind_static_method(Basis, looking_at, sarray("target", "up", "use_model_front"), varray(Vector3::UP, false));
bind_static_method(Basis, from_scale, sarray("scale"), varray());
diff --git a/doc/classes/Basis.xml b/doc/classes/Basis.xml
index cc249efba1..38a736c2b3 100644
--- a/doc/classes/Basis.xml
+++ b/doc/classes/Basis.xml
@@ -207,6 +207,12 @@
Returns [code]true[/code] if this basis is finite, by calling [method @GlobalScope.is_finite] on all vector components.
+
+
+
+ Returns [code]true[/code] if this basis is orthonormal. An orthonormal basis is both [i]orthogonal[/i] (the axes are perpendicular to each other) and [i]normalized[/i] (the length of every axis is [code]1.0[/code]). This method can be especially useful during physics calculations.
+
+