Release 9 includes a dynamics library for computing reachability under acceleration bounds in closed form in Path-Speed-Time (PST) space. Additionally, a geometry package is added that supports intervals, axis-aligned bounding boxes, and quadratic polynomials:

**Development packages:**https://is.gd/lawuwe

Below are more details about the packages.

## New & Updated

### maeve_dynamics (new):

The dynamics library computes reachable speed intervals at points in path-time space under speed and acceleration bounds. The plot below shows reachable speed intervals after one second at various path positions. The plot was generated with initial speed 5 m/s and acceleration bounds of +/-4 m/s^2:

The plot is showing that the nearest path position that can be reached after one second is 3 m, and the farthest is 7 m. At each path position, the vertical interval between the blue and green curves defines the interval of speeds reachable at that position.

This reachability information is computed by solving for bang-singular-bang trajectories that achieve extremal speed bounds at path-time point. These trajectories are computed analytically in closed-form in O(1) time. Below is an example trajectory that connects two path-time points with maximum terminal speed under acceleration bounds:

Each trajectory is composed of an initial parabolic (extremal acceleration) component, a middle linear (zero acceleration) component, and a terminal parabolic (extremal acceleration) component. These components can be seen in the plot above.

All objects in the `maeve_dynamics`

library have ostream overloads that
serialize them into JSON format. This is intended to make
it easy to quickly to share data with other languages, such as python or matlab,
especially for generating plots. Note, however, that the serialization loses
precision, so it should not be used for numerical applications.

For more details and example usages, see the README.

### maeve_geometry (new):

This package contains a library for manipulating simple geometric types and
functions. All objects in the `maeve_geometry`

library have ostream overloads that
serialize them into JSON format. This is intended to make
it easy to quickly to share data with other languages, such as python or matlab,
especially for generating plots. Note, however, that the serialization loses
precision, so it should not be used for numerical applications.

For more details and example usages, see the README.