UniformManifoldGeometry.project =============================== .. py:method:: t3toolbox.uniform_manifold.UniformManifoldGeometry.project(v) .. code-block:: python def project( self, v: UT3Tangent, ) -> UT3Tangent: # gauged tangent at v's frame (a DIFFERENT vector) The gauge projection ``Pi``: raw cotangent -> Riemannian gradient (orthogonal gauge). Orthogonally projects ``v``'s variations onto the gauged tangent space (conditions (48)-(49), Appendix A.3). Represents a DIFFERENT tangent vector than ``v`` -- the map that turns a bare adjoint ``J^T r`` into the Riemannian gradient. For the vector-preserving fix see :py:meth:`project_oblique`. **Safe mode** requires ``v``'s frame orthogonal (raises otherwise; skipped under ``safety.unsafe()`` / a jax trace).