{"id":13435758,"url":"https://github.com/thiagopbueno/tf-mpc","last_synced_at":"2026-01-16T10:13:48.611Z","repository":{"id":57474864,"uuid":"241692297","full_name":"thiagopbueno/tf-mpc","owner":"thiagopbueno","description":"An implementation of model-predictive control algorithms using TensorFlow 2","archived":false,"fork":false,"pushed_at":"2021-05-03T23:18:25.000Z","size":221,"stargazers_count":18,"open_issues_count":0,"forks_count":4,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-07-19T06:48:20.393Z","etag":null,"topics":["ilqr","lqr","model-predictive-control","mpc","tensorflow2"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/thiagopbueno.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-02-19T18:20:45.000Z","updated_at":"2024-04-20T14:40:49.000Z","dependencies_parsed_at":"2022-09-10T04:05:04.238Z","dependency_job_id":null,"html_url":"https://github.com/thiagopbueno/tf-mpc","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/thiagopbueno/tf-mpc","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thiagopbueno%2Ftf-mpc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thiagopbueno%2Ftf-mpc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thiagopbueno%2Ftf-mpc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thiagopbueno%2Ftf-mpc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thiagopbueno","download_url":"https://codeload.github.com/thiagopbueno/tf-mpc/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thiagopbueno%2Ftf-mpc/sbom","scorecard":{"id":880849,"data":{"date":"2025-08-11","repo":{"name":"github.com/thiagopbueno/tf-mpc","commit":"a5140e4222c7890e0ab6d2c3f4dd67a451f521d9"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3,"checks":[{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Code-Review","score":0,"reason":"Found 0/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: GNU General Public License v3.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}}]},"last_synced_at":"2025-08-24T08:08:23.750Z","repository_id":57474864,"created_at":"2025-08-24T08:08:23.750Z","updated_at":"2025-08-24T08:08:23.750Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28478049,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T06:30:42.265Z","status":"ssl_error","status_checked_at":"2026-01-16T06:30:16.248Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["ilqr","lqr","model-predictive-control","mpc","tensorflow2"],"created_at":"2024-07-31T03:00:38.795Z","updated_at":"2026-01-16T10:13:48.589Z","avatar_url":"https://github.com/thiagopbueno.png","language":"Python","funding_links":[],"categories":["Sample Codes / Projects \u003ca name=\"sample\" /\u003e ⛏️📐📁"],"sub_categories":["Reinforcement Learning \u003ca name=\"RL\" /\u003e🔮"],"readme":"# tf-mpc [![Py Versions][py-versions.svg]][pypi-project] [![PyPI version][pypi-version.svg]][pypi-version] [![Build Status][travis.svg]][travis-project] [![License: GPL v3][license.svg]][license]\n\n\n# Quickstart\n\n**tfmpc** is a Python3.6+ package available in PyPI.\n\n```text\n$ pip3 install -U tfmpc\n```\n\n\n# Usage\n\n```bash\n$ tfmpc ilqr --help\n\nUsage: tfmpc ilqr [OPTIONS] ENV\n\n  Run iLQR for a given environment and horizon.\n\n  Args:\n\n      ENV: Path to the environment's config JSON file.\n\nOptions:\n  --online                        Online mode flag.  [default: False]\n  --ignore-final-cost             Ignore state-dependent final cost.\n                                  [default: False]\n  -hr, --horizon INTEGER RANGE    The number of timesteps.  [default: 10]\n  --atol FLOAT RANGE              Absolute tolerance for convergence.\n                                  [default: 0.005]\n  -miter, --max-iterations INTEGER RANGE\n                                  Maximum number of iterations.  [default:\n                                  100]\n  --logdir PATH                   Directory used for logging results.\n                                  [default: /tmp/ilqr/]\n  -ns, --num-samples INTEGER RANGE\n                                  Number of runs.  [default: 1]\n  -nw, --num-workers INTEGER RANGE\n                                  Number of worker processes (min=1, max=12).\n                                  [default: 1]\n  -v, --verbose                   Verbosity level flag.\n  --help                          Show this message and exit.\n```\n\n# Examples\n\n\n## LQR\n\n```bash\n$ python examples/lqr.py\n\nTrajectory(init=[-0.9436722 -5.9413767 -9.7090645], final=[-6.831274    3.5397437   0.79844564], total=-34.2876)\n\nSteps |             States             |            Actions             |  Costs  \n===== | ============================== | ============================== | ========\n  0   | [-29.6400,  12.4868,  -6.1247] | [ 12.0202,   6.2650,   2.7019] |   9.9491\n  1   | [  1.1229,  -1.0781,  -0.9041] | [ 24.8006,  16.6294, -10.9740] |  49.6677\n  2   | [ -8.8750,   2.3962,  -4.4266] | [  3.7858,   3.3769,  -1.8138] |  -1.6455\n  3   | [ -9.3617,   3.2755,  -3.5806] | [ 11.8333,   7.8142,  -3.6503] | -11.4392\n  4   | [ -6.6389,   2.0026,  -3.2240] | [ 11.3348,   7.6663,  -4.2552] | -11.8703\n  5   | [ -7.7849,   2.3658,  -3.6332] | [  9.6319,   6.4642,  -3.2991] | -12.2632\n  6   | [ -7.5215,   2.4822,  -3.0080] | [ 10.1523,   6.7136,  -3.4948] | -12.7255\n  7   | [ -6.2336,   1.5849,  -2.9592] | [  9.6488,   6.2573,  -3.1976] | -12.8830\n  8   | [ -8.7144,   2.0473,  -4.4850] | [ 10.1518,   6.4578,  -2.9710] | -11.6011\n  9   | [ -6.8313,   3.5397,   0.7984] | [  8.3644,   5.6785,  -3.5642] | -12.9032\n\n```\n\n## Linear Navigation\n\n```bash\n$ python examples/navigation_lqr.py\n\nGoal = [[-17.498825073242188], [-55.275390625]]\n\nTrajectory(init=[0. 0.], final=[-17.498783 -55.275257], total=-32385.3555)\n\nSteps |        States        |       Actions        |   Costs   \n===== | ==================== | ==================== | ==========\n  0   | [-12.8100, -40.4644] | [-12.8100, -40.4644] |  900.7320 \n  1   | [-16.2425, -51.3068] | [ -3.4324, -10.8424] | -3055.5571\n  2   | [-17.1622, -54.2120] | [ -0.9197,  -2.9052] | -3339.6064\n  3   | [-17.4086, -54.9905] | [ -0.2464,  -0.7784] | -3360.0002\n  4   | [-17.4747, -55.1990] | [ -0.0660,  -0.2086] | -3361.4644\n  5   | [-17.4924, -55.2549] | [ -0.0177,  -0.0559] | -3361.5696\n  6   | [-17.4971, -55.2699] | [ -0.0047,  -0.0150] | -3361.5774\n  7   | [-17.4984, -55.2739] | [ -0.0013,  -0.0040] | -3361.5776\n  8   | [-17.4987, -55.2750] | [ -0.0003,  -0.0011] | -3361.5774\n  9   | [-17.4988, -55.2753] | [ -0.0001,  -0.0003] | -3361.5776\n\n```\n\n\n# Documentation\n\nPlease refer to [https://tfmpc.readthedocs.io/](https://tfmpc.readthedocs.io/) for the code documentation.\n\n\n# License\n\nCopyright (c) 2020- Thiago P. Bueno All Rights Reserved.\n\ntfmpc is free software: you can redistribute it and/or modify it\nunder the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or (at\nyour option) any later version.\n\ntfmpc is distributed in the hope that it will be useful, but\nWITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser\nGeneral Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with tfmpc. If not, see http://www.gnu.org/licenses/.\n\n\n[py-versions.svg]: https://img.shields.io/pypi/pyversions/tfmpc.svg?logo=python\u0026logoColor=white\n[pypi-project]: https://pypi.org/project/tfmpc\n\n[pypi-version.svg]: https://badge.fury.io/py/tfmpc.svg\n[pypi-version]: https://badge.fury.io/py/tfmpc\n\n[travis.svg]: https://img.shields.io/travis/thiagopbueno/tf-mpc/master.svg?logo=travis\n[travis-project]: https://travis-ci.org/thiagopbueno/tf-mpc\n\n[license.svg]: https://img.shields.io/badge/License-GPL%20v3-blue.svg\n[license]: https://github.com/thiagopbueno/tf-mpc/blob/master/LICENSE","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthiagopbueno%2Ftf-mpc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthiagopbueno%2Ftf-mpc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthiagopbueno%2Ftf-mpc/lists"}