[0.5.0] - 2026-06-23
Features
- Read binary PCK (
DAF/PCK) orientation kernels viaEphem::PCK, exposing a
body's Euler angles and rates over time (angles_at,orientation_at), the
foundation for DE440-grade lunar libration (#76, #80) - Add
Ephem::Core::Orientation(Euler angles + optional rates) and
Ephem::Core::Rotation(kernel-agnostic rotation-matrix helpers), plus
Orientation#to_matrix/OrientationSegment#matrix_atfor the built-in
3-1-3 (Z-X-Z) reference→body convention - Excerpt and the
excerptCLI now support binary PCK kernels, detecting the
kernel kind automatically - Download binary PCK lunar orientation kernels from NAIF via
Ephem::Download - Add
#inspectand#to_stoStatefor easier debugging (#67)
Improvements
- Route queries to the covering segment when a body/pair spans multiple
time-split segments (SPK and PCK), with no overhead for single-segment keys - Share the type-2 Chebyshev machinery between SPK and PCK segments
- Evaluate position and velocity in a single Chebyshev pass
(ChebyshevPolynomial.evaluate_with_derivative), speeding up every state /
orientation query (compute_and_differentiate,state_at,orientation_at)
with bit-for-bit identical results - Correct the documented velocity unit to km/day (the actual, validated value)
- Remove the
numo-narraydependency (#65) - Skip derivative evaluation in
Segment#compute(#57) - Hoist loop-invariant
t2computation in Chebyshev evaluation (#58) - Cache the
RecordParserinstance inSummaryManager(#63) - Eliminate a redundant
read_recordcall inSummaryManager(#62) - Replace duplicated endianness format lookups with shared constants (#64)
- Replace
instance_variable_getwith properattr_readers inExcerpt
(#66) - Use separate error margins for position and velocity validation (#61)
- Add a comprehensive benchmark suite (#68)
- Upgrade default Ruby to 4.0.5 (#81)
- Match SPICE last-loaded-wins precedence for overlapping segments (#83)
- Add a dedicated spec for the shared type-2 Chebyshev evaluation (#84)
- Bump standard from 1.50.0 to 1.55.0 by @dependabot (#45, #46, #56,
#78) - Bump actions/checkout from 4 to 7 by @dependabot (#44, #52, #79)
- Bump rake from 13.3.0 to 13.4.2 by @dependabot (#48, #73)
- Bump zlib from 3.2.1 to 3.2.3 by @dependabot (#49, #70)
- Bump rspec from 3.13.1 to 3.13.2 by @dependabot (#47)
- Bump parallel from 1.27.0 to 1.28.0 by @dependabot (#71)
- Bump benchmark-ips from 2.14.0 to 2.15.1 by @dependabot (#75)
- Bump json from 2.18.1 to 2.19.2 by @dependabot (#77)
Bug fixes
- Fix
compute_and_differentiatereturning mismatched velocities for an array
of times - Fix precision loss in
time_to_secondsfor dates far from J2000 (#60)
Full Changelog: v0.4.1...v0.5.0