PhaseProbe: reproducible transition detection and regression generation for solve_ivp models

Hi SciPy community,

I built PhaseProbe, an open-source downstream testing tool for dynamical-system simulations. It uses scipy.integrate.solve_ivp through a trajectory-level adapter to search bounded parameter or initial-condition regions for reproducible qualitative transitions, preserve replay evidence, and generate pytest regression tests from the findings.

The motivation is a practical testing problem: a numerical model can continue integrating successfully while a small parameter or initial-condition change moves it into a different qualitative regime. PhaseProbe records the search configuration, solver method and tolerances, environment evidence, trajectory hashes, observables, classifications, and transition bracket so that the result can be independently replayed.

The current release includes examples for Lorenz finite-time divergence and predator–prey invariant drift. For adaptive SciPy integrations, replay is tolerance-based rather than claimed to be bit-exact. The results are explicitly bounded, finite-time numerical evidence—not proofs of chaos, exact bifurcation locations, Lyapunov estimates, or globally minimal perturbations.

Repository:

Release:

PyPI:

Technical proposal and limitations:

I am not proposing to add PhaseProbe to SciPy core. I would value feedback on three points:

  1. Whether the tolerance-based replay evidence for adaptive solve_ivp trajectories is scientifically and practically appropriate.
  2. Whether the trajectory-level adapter and recorded solver/environment metadata omit evidence that SciPy users would expect.
  3. Whether a downstream example or ecosystem/documentation reference could be appropriate if the tool proves useful to users.

Feedback on the design, terminology, numerical claims, and useful real-world test cases would be very welcome.