Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
4d372ef
Create UpdateReadme.yml
ocots Sep 6, 2025
bae514a
Update UpdateReadme.yml
ocots Sep 6, 2025
a369778
Create README.template.md
ocots Sep 6, 2025
6f6a81b
Update README.template.md
ocots Sep 6, 2025
57da0da
Update README with latest ABOUT.md, INSTALL.md, CONTRIBUTING.md and b…
github-actions[bot] Sep 6, 2025
12dd33b
Merge pull request #138 from control-toolbox/update-readme-1757179308
ocots Sep 6, 2025
40f1250
review all the doc
ocots Sep 6, 2025
7bb8a34
add browser
ocots Sep 6, 2025
2c7b2f1
add browser for problems
ocots Sep 7, 2025
d47adbd
finalise browser
ocots Sep 7, 2025
067cb0b
foo
ocots Sep 7, 2025
c1a1596
fix bug
ocots Sep 8, 2025
0ad42de
not responsive
ocots Sep 8, 2025
f4b668b
before refactoring buttons
ocots Sep 8, 2025
bae80ea
foo
ocots Sep 8, 2025
5c4f40b
fix
ocots Sep 8, 2025
559ad8a
Merge pull request #133 from control-toolbox/110-general-review-the-d…
ocots Sep 8, 2025
a43cd71
Merge branch 'main' into 88-dev-adding-models-for-exa-olivier
ocots Sep 8, 2025
0d3fa6e
quick beam
ocots Sep 8, 2025
f2a167e
test quick, init, solution: updated
ocots Sep 9, 2025
c2e47b7
test kwargs updated
ocots Sep 9, 2025
4b3ca05
foo
ocots Sep 9, 2025
7bcf138
up browser filtering
ocots Sep 9, 2025
c28e4b4
foo
ocots Sep 9, 2025
5a9b582
up compat
ocots Sep 10, 2025
693ceee
up compat
ocots Sep 10, 2025
e60f484
steering no NaN in xf
ocots Sep 10, 2025
b7aca08
before adding red mode for constraint buttons
ocots Sep 11, 2025
2430104
add choose negative
ocots Sep 11, 2025
325682c
parameters in common
ocots Sep 12, 2025
48e39ff
replaced N by grid_size
ocots Sep 15, 2025
47bd58f
parameters are shared
ocots Sep 15, 2025
7c212bf
review doc
ocots Sep 15, 2025
ad25bbc
Merge pull request #150 from control-toolbox/135-general-configurable…
ocots Sep 15, 2025
fe14f54
review cart pendulum
ocots Sep 15, 2025
dc31c6c
all pass except 4 broken tests
ocots Sep 15, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 39 additions & 0 deletions .github/workflows/UpdateReadme.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
name: Update README with ABOUT.md and INSTALL.md

on:
schedule:
- cron: '0 6 * * 1' # every Monday at 06:00 UTC
workflow_dispatch: # manual trigger

jobs:
check-template:
runs-on: ubuntu-latest
outputs:
has_template: ${{ steps.check.outputs.has_template }}
steps:
- name: Checkout repo
uses: actions/checkout@v4

- name: Check for README.template.md
id: check
shell: bash
run: |
if [[ -f "README.template.md" ]]; then
echo "has_template=true" >> "$GITHUB_OUTPUT"
else
echo "has_template=false" >> "$GITHUB_OUTPUT"
echo "README.template.md not found. Skipping README update." >&2
fi

call-shared:
needs: check-template
if: ${{ needs.check-template.outputs.has_template == 'true' }}
uses: control-toolbox/CTActions/.github/workflows/update-readme.yml@main
with:
template_file: README.template.md
output_file: README.md
package_name: OptimalControlProblems # package for INSTALL.md
repo_name: OptimalControlProblems.jl # repository for CONTRIBUTING.md links
citation_badge: "[![DOI](https://zenodo.org/badge/848989278.svg)](https://zenodo.org/doi/10.5281/zenodo.17013180)" # example, can be empty
assignee: "ocots"
secrets: inherit
5 changes: 0 additions & 5 deletions Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,10 @@ SolverCore = "ff4d7338-4cf1-434d-91df-b86cb86fb843"
[weakdeps]
JuMP = "4076af6c-e467-56ae-b986-b466b2749572"
OptimalControl = "5f98b655-cc9a-415a-b60e-744165666948"
HTTP = "cd3eb016-35fb-5094-929b-558a96fad6f3"
JSON = "682c06a0-de6a-54ab-a142-c8b1cf79cde6"

[extensions]
JuMPModels = "JuMP"
OptimalControlModels = "OptimalControl"
OCPDocumentation = ["HTTP","JSON"]

[compat]
ADNLPModels = "0.8"
Expand All @@ -31,8 +28,6 @@ CTDirect = "0.16"
CTModels = "0.6"
DocStringExtensions = "0.9"
ExaModels = "0.9"
HTTP = "1"
JSON = "0.21"
JuMP = "1"
OptimalControl = "1"
OrderedCollections = "1"
Expand Down
88 changes: 44 additions & 44 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,48 +1,50 @@
# OptimalControlProblems.jl

[ci-img]: https://github.com/control-toolbox/OptimalControlProblems.jl/actions/workflows/CI.yml/badge.svg?branch=main
[ci-url]: https://github.com/control-toolbox/OptimalControlProblems.jl/actions/workflows/CI.yml?query=branch%3Amain

[co-img]: https://codecov.io/gh/control-toolbox/OptimalControlProblems.jl/branch/main/graph/badge.svg?token=YM5YQQUSO3
[co-url]: https://codecov.io/gh/control-toolbox/OptimalControlProblems.jl

[doc-dev-img]: https://img.shields.io/badge/docs-dev-8A2BE2.svg
[doc-dev-url]: https://control-toolbox.org/OptimalControlProblems.jl/dev/

[doc-stable-img]: https://img.shields.io/badge/docs-stable-blue.svg
[doc-stable-url]: https://control-toolbox.org/OptimalControlProblems.jl/stable/

[release-img]: https://img.shields.io/github/v/release/control-toolbox/OptimalControlProblems.jl.svg
[release-url]: https://github.com/control-toolbox/OptimalControlProblems.jl/releases

[pkg-eval-img]: https://img.shields.io/badge/Julia-package-purple
[pkg-eval-url]: https://juliahub.com/ui/Packages/General/OptimalControlProblems

[citation-img]: https://zenodo.org/badge/848989278.svg
[citation-url]: https://zenodo.org/doi/10.5281/zenodo.17013180

[licence-img]: https://img.shields.io/badge/License-MIT-yellow.svg
[licence-url]: https://github.com/control-toolbox/OptimalControlProblems.jl/blob/master/LICENSE

[blue-img]: https://img.shields.io/badge/code%20style-blue-4495d1.svg
[blue-url]: https://github.com/JuliaDiff/BlueStyle

This repo is part of the [control-toolbox ecosystem](https://github.com/control-toolbox).
The control-toolbox ecosystem gathers Julia packages for mathematical control and applications. The root package is [OptimalControl.jl](https://github.com/control-toolbox/OptimalControl.jl) which aims to provide tools to model and solve optimal control problems with ordinary differential equations by direct and indirect methods, both on CPU and GPU.

[![doc OptimalControl.jl](https://img.shields.io/badge/Documentation-OptimalControl.jl-blue)](http://control-toolbox.org/OptimalControl.jl)

| **Name** | **Badge** |
:-------------------|:------------------|
| Documentation | [![Documentation][doc-stable-img]][doc-stable-url] [![Documentation][doc-dev-img]][doc-dev-url] |
| Code Status | [![Build Status][ci-img]][ci-url] [![Covering Status][co-img]][co-url] [![pkgeval][pkg-eval-img]][pkg-eval-url] [![Code Style: Blue][blue-img]][blue-url] |
| Licence | [![License: MIT][licence-img]][licence-url] |
| Release | [![Release][release-img]][release-url] |
| Citation | [![DOI][citation-img]][citation-url] |
<!--
For instructions on how to customize this README.template.md and use the centralized workflow,
please see the user guide: https://github.com/orgs/control-toolbox/discussions/67
-->

The OptimalControlProblems.jl package is part of the [control-toolbox ecosystem](https://github.com/control-toolbox).

| **Category** | **Badge** |
|-----------------------|-----------|
| **Documentation** | [![Stable Docs](https://img.shields.io/badge/docs-stable-blue.svg)](https://control-toolbox.org/OptimalControlProblems.jl/stable/) [![Dev Docs](https://img.shields.io/badge/docs-dev-8A2BE2.svg)](https://control-toolbox.org/OptimalControlProblems.jl/dev/) |
| **CI / Build** | [![Build Status](https://github.com/control-toolbox/OptimalControlProblems.jl/actions/workflows/CI.yml/badge.svg?branch=main)](https://github.com/control-toolbox/OptimalControlProblems.jl/actions/workflows/CI.yml?query=branch%3Amain) |
| **Test Coverage** | [![Coverage](https://codecov.io/gh/control-toolbox/OptimalControlProblems.jl/branch/main/graph/badge.svg)](https://codecov.io/gh/control-toolbox/OptimalControlProblems.jl) |
| **Package Evaluation** | [![PkgEval](https://img.shields.io/badge/Julia-package-purple)](https://juliahub.com/ui/Packages/General/OptimalControlProblems) [![Dependencies](https://juliahub.com/docs/General/OptimalControlProblems/stable/deps.svg)](https://juliahub.com/ui/Packages/General/OptimalControlProblems?t=2) |
| **Release / Version** | [![Release](https://juliahub.com/docs/General/OptimalControlProblems/stable/version.svg)](https://github.com/control-toolbox/OptimalControlProblems.jl/releases) |
| **Citation** | [![DOI](https://zenodo.org/badge/848989278.svg)](https://zenodo.org/doi/10.5281/zenodo.17013180) |
| **License** | [![License](https://img.shields.io/badge/License-MIT-yellow.svg)](https://github.com/control-toolbox/OptimalControlProblems.jl/blob/master/LICENSE) |
| **Code Style / Quality** | [![Code Style: Blue](https://img.shields.io/badge/code%20style-blue-4495d1.svg)](https://github.com/JuliaDiff/BlueStyle) [![Aqua.jl](https://raw.githubusercontent.com/JuliaTesting/Aqua.jl/master/badge.svg)](https://github.com/JuliaTesting/Aqua.jl) |
| **Downloads** | [![Monthly](https://img.shields.io/badge/dynamic/json?url=http%3A%2F%2Fjuliapkgstats.com%2Fapi%2Fv1%2Fmonthly_downloads/OptimalControlProblems&query=total_requests&suffix=%2Fmonth&label=Monthly%20Downloads)](https://juliapkgstats.com/pkg/OptimalControlProblems) [![Total](https://img.shields.io/badge/dynamic/json?url=http%3A%2F%2Fjuliapkgstats.com%2Fapi%2Fv1%2Ftotal_downloads/OptimalControlProblems&query=total_requests&label=Total%20Downloads)](https://juliapkgstats.com/pkg/OptimalControlProblems) |

## About control-toolbox

The **control-toolbox** ecosystem brings together <a href="https://julialang.org" style="display:inline-flex; align-items:center;">
<img src="https://raw.githubusercontent.com/JuliaLang/julia-logo-graphics/master/images/julia.ico" width="16em" style="margin-right:0.3em;">
Julia
</a> packages for mathematical control and its applications.

- The root package, [OptimalControl.jl](https://github.com/control-toolbox/OptimalControl.jl), provides tools to model and solve optimal control problems defined by ordinary differential equations. It supports both direct and indirect methods, and can run on CPU or GPU.

<p align="right">
<a href="http://control-toolbox.org/OptimalControl.jl">
<img src="https://img.shields.io/badge/Documentation-OptimalControl.jl-blue" alt="Documentation OptimalControl.jl">
</a>
</p>

- Complementing it, [OptimalControlProblems.jl](https://github.com/control-toolbox/OptimalControlProblems.jl) offers a curated collection of benchmark optimal control problems formulated with ODEs in Julia. Each problem is available both in the **OptimalControl** DSL and in **JuMP**, with discretised versions ready to be solved using the solver of your choice. This makes the package particularly useful for benchmarking and comparing different solution strategies.

<p align="right">
<a href="http://control-toolbox.org/OptimalControlProblems.jl">
<img src="https://img.shields.io/badge/Documentation-OptimalControlProblems.jl-blue" alt="Documentation OptimalControlProblems.jl">
</a>
</p>

## Installation

To install OptimalControlProblems.jl please
To install OptimalControlProblems please
<a href="https://docs.julialang.org/en/v1/manual/getting-started/">open Julia's interactive session (known as REPL)</a>
and press <kbd>]</kbd> key in the REPL to use the package mode, then add the package:

Expand Down Expand Up @@ -77,12 +79,10 @@ url = {https://control-toolbox.org/OptimalControlProblems.jl}
[issue-url]: https://github.com/control-toolbox/OptimalControlProblems.jl/issues
[first-good-issue-url]: https://github.com/control-toolbox/OptimalControlProblems.jl/contribute

If you think you found a bug or if you have a feature request / suggestion, feel free to open an [issue][issue-url].
If you think you found a bug or if you have a feature request / suggestion, feel free to open an [issue][issue-url].
Before opening a pull request, please start an issue or a discussion on the topic.

Contributions are welcomed, check out [how to contribute to a Github project](https://docs.github.com/en/get-started/exploring-projects-on-github/contributing-to-a-project).
If it is your first contribution, you can also check [this first contribution tutorial](https://github.com/firstcontributions/first-contributions).
You can find first good issues (if any 🙂) [here][first-good-issue-url]. You may find other packages to contribute to at the [control-toolbox organization](https://github.com/control-toolbox).
Contributions are welcomed, check out [how to contribute to a Github project](https://docs.github.com/en/get-started/exploring-projects-on-github/contributing-to-a-project). If it is your first contribution, you can also check [this first contribution tutorial](https://github.com/firstcontributions/first-contributions). You can find first good issues (if any 🙂) [here][first-good-issue-url]. You may find other packages to contribute to at the [control-toolbox organization](https://github.com/control-toolbox).

If you want to ask a question, feel free to start a discussion [here](https://github.com/orgs/control-toolbox/discussions). This forum is for general discussion about this repository and the [control-toolbox organization](https://github.com/control-toolbox).

Expand Down
34 changes: 34 additions & 0 deletions README.template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# OptimalControlProblems.jl

<!--
For instructions on how to customize this README.template.md and use the centralized workflow,
please see the user guide: https://github.com/orgs/control-toolbox/discussions/67
-->

The OptimalControlProblems.jl package is part of the [control-toolbox ecosystem](https://github.com/control-toolbox).

<!-- INCLUDE_BADGES: Documentation, CI, Coverage, PackageEvaluation, Release, Citation, License, CodeStyle, Downloads -->

<!-- INCLUDE_ABOUT -->

<!-- INCLUDE_INSTALL -->

## Citing us

If you use OptimalControlProblems.jl in your work, please cite us:

> Caillau, J.-B., Cots, O., Gergaud, J., & Martinon, P. *OptimalControlProblems.jl: a collection of optimal control problems with ODE's in Julia*. [doi.org/10.5281/zenodo.17013180](https://doi.org/10.5281/zenodo.17013180)

or in bibtex format:

```bibtex
@software{OptimalControlProblems_jl,
author = {Caillau, Jean-Baptiste and Cots, Olivier and Gergaud, Joseph and Martinon, Pierre},
doi = {10.5281/zenodo.17013180},
license = {["MIT"]},
title = {{OptimalControlProblems.jl: a collection of optimal control problems with ODE's in Julia}},
url = {https://control-toolbox.org/OptimalControlProblems.jl}
}
```

<!-- INCLUDE_CONTRIBUTING -->
6 changes: 6 additions & 0 deletions docs/Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,9 @@ Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4"
DocumenterInterLinks = "d12716ef-a0f6-4df4-a9f1-a5a34e75c656"
DocumenterMermaid = "a078cd44-4d9c-4618-b545-3ab9d77f9177"
ExaModels = "1037b233-b668-4ce9-9b63-f9f681f55dd2"
FilePathsBase = "48062228-2e41-5def-b9a4-89aafe57970f"
Ipopt = "b6b21f68-93f8-5de0-b562-5493be1d77c9"
JSON = "682c06a0-de6a-54ab-a142-c8b1cf79cde6"
JuMP = "4076af6c-e467-56ae-b986-b466b2749572"
Markdown = "d6f4376e-aef5-505a-96c1-9c027394607a"
NLPModels = "a4795742-8479-5a88-8948-cc11e1c8c1a6"
Expand All @@ -14,6 +16,7 @@ OptimalControl = "5f98b655-cc9a-415a-b60e-744165666948"
Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80"
Printf = "de0858da-6303-5e67-8744-51eddeeeb8d7"
TOML = "fa267f1f-6049-4f14-aa54-33bafae1ed76"
Tables = "bd369af6-aec1-5ad0-b16a-f7cc5008161c"

[compat]
CTModels = "0.6"
Expand All @@ -22,7 +25,9 @@ Documenter = "1"
DocumenterInterLinks = "1"
DocumenterMermaid = "0.2"
ExaModels = "0.9"
FilePathsBase = "0.9"
Ipopt = "1"
JSON = "0.21"
JuMP = "1"
Markdown = "1"
NLPModels = "0.21"
Expand All @@ -31,3 +36,4 @@ OptimalControl = "1"
Plots = "1"
Printf = "1"
TOML = "1"
Tables = "1"
Loading
Loading