Skip to main content

dds

CI PyPI Python versions License: MIT

dds is a production-oriented Python library for discrete dynamical systems. It provides a small, typed API for orbit iteration, recurrence and attractor detection, fixed-point search, linear stability, Lyapunov analysis, bifurcation sweeps, basin classification, escape-time grids, and box-counting fractal dimension. Plotting is optional.

Project naming

The import package is dds:

from dds import DDS, orbit, periodic_orbit

The initial PyPI distribution target is dds-lib, because the dds distribution name is already occupied on PyPI.

Installation

Core package:

pip install dds-lib

With SciPy-based fixed-point solvers:

pip install "dds-lib[scipy]"

With plotting helpers:

pip install "dds-lib[plot]"

With parallel batch/grid sweeps:

pip install "dds-lib[parallel]"

Development environment:

pip install -e ".[dev,plot,scipy,parallel]"

Quickstart

from dds import DDS


def logistic_map(x: float, r: float = 3.2) -> float:
    return r * x * (1.0 - x)


def logistic_derivative(x: float, r: float = 3.2) -> float:
    return r * (1.0 - 2.0 * x)


system = DDS(logistic_map, derivative=logistic_derivative, name="logistic")

trajectory = system.orbit(0.2, iterations=10, r=3.2)
periodic = system.periodic_orbit(0.2, max_iterations=200, r=3.2, transient=50)
fixed_points = system.search_fixed_points([0.2, 0.8], 2.0, method="iteration")
lyapunov = system.lyapunov_exponent(0.123, 4.0, iterations=2000, transient=100)
bifurcation = system.bifurcation_data(
    [2.5, 3.2, 3.8, 4.0],
    0.2,
    transient=500,
    samples=100,
)

Command-line interface

Installing dds-lib also installs a dds console script for quick, scriptable use of the built-in example maps (logistic, henon, quadratic, collatz_extension) without writing Python:

dds orbit --map logistic --x0 0.2 --iterations 50 --param r=3.9 --output orbit.csv
dds bifurcation --map logistic --x0 0.2 --param-range 2.5 4.0 500 --output bifurcation.npy
dds escape-grid --map quadratic --xrange -2.0 1.0 400 --yrange -1.5 1.5 400 --stop-iterations 50 --output mandelbrot.npy

Add --plot PATH.png to any subcommand to also save a Matplotlib figure (requires the plot extra). python -m dds works the same way as dds.

Notebooks

Runnable Jupyter notebooks covering each feature area (orbits, fixed points and stability, Lyapunov exponents, bifurcation diagrams, basins of attraction, Mandelbrot/Julia sets, and the Collatz function and its smooth extension) live in notebooks/.

Included features

  • Deterministic orbit generation for scalar and complex maps
  • Exact and tolerance-aware recurrence detection with explicit statuses
  • Scalar multipliers and multidimensional monodromy stability analysis
  • Scalar Lyapunov exponents and multidimensional spectra
  • Parameter sweeps and bifurcation data
  • Attractor discovery and two-dimensional basin classification
  • Fixed-point search by iteration, Newton, secant, and bisection
  • Escape-time grid computation for Mandelbrot- and Julia-style analysis
  • Optional plotting helpers that return Matplotlib figures
  • Regression tests for known issues in the original project

Documentation

Project docs live in docs/ and are organized around:

  • installation and quickstart
  • API reference
  • worked examples

Metadata

Release files for dds-lib 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dds-lib 0.3.0
File Size Uploaded
dds_lib-0.3.0.tar.gz 1.4 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for dds-lib 0.3.0
File Interpreter ABI Platform
dds_lib-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 1.4 MB

Release files / dds_lib-0.3.0.tar.gz

Download URL dds_lib-0.3.0.tar.gz
Size 1.4 MB
Tags Source
SHA-256 checksum
How to use checksums
5fcb49efeae1995e60e641a0611a4225cb4f7f2ac79ce71022694e35a7c31ecb
BLAKE2b-256 checksum
How to use checksums
38551d3102d11b6e8f364a8593011d2be68dd5e0317aea07ceb807c9e6e36549
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 10, 2026.

Transparency log

Release files / dds_lib-0.3.0-py3-none-any.whl

Download URL dds_lib-0.3.0-py3-none-any.whl
Size 34.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c36a6573c03977d3918a080fb030b3845aeacf332b1646522b3115be63893681
BLAKE2b-256 checksum
How to use checksums
45be9d5083554ad2a19f583c641fdf94e674808b6b9597e0061187501e8fc23c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 10, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page