{"id":51040312,"url":"https://github.com/mit-ll/pydgens","last_synced_at":"2026-06-22T10:30:42.336Z","repository":{"id":362764155,"uuid":"1259451928","full_name":"mit-ll/pydgens","owner":"mit-ll","description":null,"archived":false,"fork":false,"pushed_at":"2026-06-05T20:59:57.000Z","size":962,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-05T21:06:30.778Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mit-ll.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-06-04T14:20:00.000Z","updated_at":"2026-06-05T20:59:51.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/mit-ll/pydgens","commit_stats":null,"previous_names":["mit-ll/pydgens"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/mit-ll/pydgens","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mit-ll%2Fpydgens","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mit-ll%2Fpydgens/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mit-ll%2Fpydgens/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mit-ll%2Fpydgens/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mit-ll","download_url":"https://codeload.github.com/mit-ll/pydgens/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mit-ll%2Fpydgens/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34645680,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-22T02:00:06.391Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-06-22T10:30:40.389Z","updated_at":"2026-06-22T10:30:42.329Z","avatar_url":"https://github.com/mit-ll.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PYDGENS: Python/JAX Differential Game Equilibria Numerical Solvers\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/assets/pydgens-logo.png\" alt=\"PYDGENS logo\" width=\"300\"\u003e\n\u003c/p\u003e\n\nPYDGENS provides numerical solvers for approximating equilibrium solutions in multi-player, general-sum dynamic and differential games. The package currently focuses on linear-quadratic feedback Nash games, iterative linear-quadratic methods for nonlinear games, and augmented-Lagrangian workflows for constrained games.\n\nPYDGENS is a pre-`1.0` release. The package is ready for early adopters, but the public API may continue to evolve as the modeling frontend, examples, and solver interfaces mature.\n\n## Installation\n\n```bash\npip install pydgens\n```\n\nPYDGENS requires Python `3.12` or newer.\n\n## Solvers\n\nPYDGENS currently supports three main solver paths:\n\n- LQ: linear-quadratic, unconstrained games solved for feedback Nash strategies\n- iLQ: nonlinear, unconstrained games solved for local feedback Nash strategies\n- AL: constrained nonlinear games solved with an augmented-Lagrangian workflow for local open-loop trajectories\n\n## Examples\n\nRun a minimal linear-quadratic tug-of-war game solved with the LQ solver:\n\n```bash\npython -m pydgens.examples.tug_o_war\n```\n\nRun a nonlinear two-player unicycle game solved with the iterative LQ solver:\n\n```bash\npython -m pydgens.examples.unicycle\n```\n\nRun a constrained two-player integrator game solved with the augmented-Lagrangian solver:\n\n```bash\npython -m pydgens.examples.constrained_integrators\n```\n\nMore examples, including advanced examples that make use of the intermediate representations (IR), are listed in the [examples documentation](https://mit-ll.github.io/pydgens/examples/).\n\n## Documentation\n\nDocumentation is available at \u003chttps://mit-ll.github.io/pydgens/\u003e.\n\n## Development\n\nFor development from a local clone:\n\n```bash\npip install -e .[full]\n```\n\nContributors can also use `uv` for a reproducible environment:\n\n```bash\nuv sync --extra dev\nsource .venv/bin/activate\n```\n\n## Testing\n\nQuick tests:\n\n```bash\npytest tests/ -v -s -m \"not slow\"\n```\n\nSlow and benchmark-oriented tests:\n\n```bash\npytest tests/ -v -m \"slow\" --benchmark-columns='mean, min, max, stddev, rounds'\n```\n\n## Disclaimer\n\nDISTRIBUTION STATEMENT A. Approved for public release. Distribution is unlimited.\n\nThis material is based upon work supported by the Under Secretary of War for Research and\nEngineering under Air Force Contract No. FA8702-15-D-0001 or FA8702-25-D-B002. Any\nopinions, findings, conclusions or recommendations expressed in this material are those of\nthe author(s) and do not necessarily reflect the views of the Under Secretary of War for\nResearch and Engineering.\n\n© 2026 Massachusetts Institute of Technology.\n\nSubject to FAR52.227-11 Patent Rights - Ownership by the contractor (May 2014)\n\nSPDX-License-Identifier: MIT\n\nThe software/firmware is provided to you on an As-Is basis.\n\nDelivered to the U.S. Government with Unlimited Rights, as defined in DFARS Part\n252.227-7013 or 7014 (Feb 2014). Notwithstanding any copyright notice, U.S. Government\nrights in this work are defined by DFARS 252.227-7013 or DFARS 252.227-7014 as detailed\nabove. Use of this work other than as specifically authorized by the U.S. Government may\nviolate any copyrights that exist in this work.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmit-ll%2Fpydgens","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmit-ll%2Fpydgens","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmit-ll%2Fpydgens/lists"}