What's Changed
> [!IMPORTANT]
> **API-breaking Changes:**
> - Removed legacy spawn orientation preprocessing: Previously, pi/2 was subtracted from the user-specified spawn orientation on the x-y plane. This was to make the behavior consistent with a legacy version of NeuroMechFly. This behavior is no longer desired; from this version onwards, the spawn orientation is used as is.
> - Changed flip detection method: Previously, flips are reported when all legs reliably lose contact with the ground. Now, we simply check if the z component of the "up" cardinal vector is negative. Additionally, the detect_flip parameter of Fly is now deprecated; flips are always detect and reported.
**Other Changes:**
- Added cardinal direction sensing (vectors describing +x, +y, +z of the fly) to the observation space.
- Strictly fixed the required MuJoCo version to 3.2.3, and dm_control version to 1.0.23. This is to prevent API-breaking changes in future versions of these libraries from affecting FlyGym. FlyGym maintainers will periodically check for compatibility with newer versions of these libraries.
- Allowed different sets of DoFs to be monitored vs. actuated. Previously, the two sets are always the same.
**Housekeeping:** From this version onwards, we will use [EffVer](https://jacobtomlinson.dev/effver/) as the versioning policy. The version number will communicate how much effort we expect a user will need to spend to adopt the new version. While we previously tried to adhere to the stricter [SemVer](https://semver.org/), we found that it was not effective because many core dependencies of FlyGym (e.g., MuJoCo, NumPy, and Python itself) do not use SemVer.
**Full Changelog**: https://github.com/NeLy-EPFL/flygym/compare/v1.0.1...v1.1.0