# \[ANN\] MappyDS.jl: Poincaré maps of hybrid dynamical systems with analytic derivatives

**URL:** <https://discourse.julialang.org/t/ann-mappyds-jl-poincare-maps-of-hybrid-dynamical-systems-with-analytic-derivatives/142899>\
**Category:** Package Announcements\
**Tags:** dynamical-systems\
**Created:** [November 12, 2026, 6:20am UTC](https://discourse.julialang.org/t/ann-mappyds-jl-poincare-maps-of-hybrid-dynamical-systems-with-analytic-derivatives/142899 "2026-11-12T06:20:19Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Yuu-Miino](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/yuu-miino/32/225193_2.png) [@Yuu-Miino](https://discourse.julialang.org/u/Yuu-Miino)\
**Post date:** [November 12, 2026, 6:20am UTC](https://discourse.julialang.org/t/ann-mappyds-jl-poincare-maps-of-hybrid-dynamical-systems-with-analytic-derivatives/142899/1 "2026-11-12T06:20:19Z")

</div>

MappyDS.jl is a Julia port of the Python package `mappy-ds`. It implements the _mode concept_ (Miino, NOLTA IEICE 15(2), 2024): a hybrid/piecewise-smooth system is written as a graph of _modes_ (ODE flows that end on a border, or discrete maps), and the package composes them into a Poincaré map `T` together with its derivatives.

What you get for a `PoincareMap` or a plain `Diffeomorphism`:

- `image_detail(T, y0, p)`: the image, the Jacobian `DT` and the Hessian, plus parameter derivatives and mixed second derivatives on request. Flows use the variational equations with the analytic border correction (no AD through the ODE solver); user functions are differentiated with ForwardDiff on `SVector`s.
- `find_cycle`, `trace_cycle`, `trace_cycle_arclength`: periodic points and their continuation (natural parameter or pseudo-arclength, with fold / period-doubling / Neimark–Sacker detection).
- `find_local_bf`, `trace_local_bf`, `trace_local_bf_arclength`: local bifurcation points solved from `(Tⁿ(y) − y, det(DTⁿ − e^{iθ}I))` with a fully analytic Jacobian, and their continuation in two parameters (cusps, strong resonances flagged).
- A Makie extension: `plot_trajectory` and an interactive `plot2d` viewer (GLMakie).

Built on OrdinaryDiffEqTsit5, SciMLBase callbacks, SimpleNonlinearSolve, ForwardDiff and StaticArrays. Julia 1.10+.

Docs with five worked examples (Hénon, coupled logistic maps, Izhikevich neuron, forced Duffing and Alpazur oscillators): [Home · MappyDS.jl](https://yuu-miino.github.io/doc.mappy/julia/stable/)  
Repository: [GitHub - Yuu-Miino/MappyDS.jl · GitHub](https://github.com/Yuu-Miino/MappyDS.jl)  
Python package: [GitHub - Yuu-Miino/mappy · GitHub](https://github.com/Yuu-Miino/mappy)

Feedback on the API is welcome: the package is at 0.3 and the API will be frozen for 1.0 once it has settled.
