Repository navigation
Description
Thank you for the paper. I found it strong and well written overall, and the package looks like a very valuable contribution to the Julia optimal-control ecosystem. I have a few minor comments/suggestions that could help improve clarity and consistency.
-
Make the styling/linking of
.jlpackages uniform.
Some packages appear with links/citations while others do not, e.g.,DifferentiationInterface.jlandForwardDiff.jl. It would be nice to make the formatting consistent and, when possible, hyperlink or cite all mentioned.jlpackages. -
Add a citation for
MINPACK.
MINPACK.jl/MINPACK is mentioned in the indirect-methods paragraph, but I did not see a corresponding citation. -
Check the companion example citation/version.
The illustrative example seems to refer to the companion repository:
https://github.com/control-toolbox/joss-oc-example
Please check that the citation in the paper points to the correct archived version. I believe it may need to be updated fromv1.0.0tov1.0.1. -
Add or repeat the Ipopt citation in the “Modelers and solvers” paragraph.
In the paragraph listing NLP solvers, it may be useful to cite Ipopt directly there as well, not onlyNLPModelsIpopt.jl. -
Clarify the exact class of optimal control problems currently supported.
The title says “optimal control problems with ODEs,” which is clear, but the paper would benefit from a compact summary of the mathematical problem class supported by the package. For example, could the authors clarify whether the current implementation supports:- fixed and free final time;
- endpoint constraints;
- path constraints;
- box constraints on states and controls;
- Mayer, Lagrange, and/or Bolza costs;
- autonomous and non-autonomous dynamics;
- multiphase problems;
- DAEs or only explicit ODEs;
- hybrid/nonsmooth systems.
Some of these points may be obvious to optimal-control specialists, but for a broader JOSS readership it would be helpful to make the supported scope explicit.
Activity
joss: address reviewer Tangi Migot paper review (#803)
jbcaillau commentedon Jul 27, 2026
Thank you @tmigot for these constructive remarks, and for the kind words on the paper. All five points are addressed in #813 (draft PR into the
jossbranch), which now collects our answers to all of your review issues. Point by point below.1. Make the styling/linking of
.jlpackages uniform ✅You were right that this was inconsistent. We have now settled on an explicit convention and applied it throughout the paper:
Concretely:
ForwardDiff.jlandDifferentiationInterface.jl(the two you pointed at), plusNonlinearSolve.jl,NLPModelsIpopt.jl,Knitro,InfiniteOpt.jl,JuMP,ADNLPModels,ExaModels,MadNLP,CUDSS, and every package named in the Julia packages bullet of State of the Field (RobustAndOptimalControl.jl,QuantumControl.jl,Piccolo.jl,DirectTrajectoryOptimization.jl,OptimalControlProblems.jl,CTBenchmarks.jl, …), which were previously bare.@Patterson2014,@Verschueren2021,@Andersson2019,@arnstrom2022daqp,@Gagnon_*,@pulsipher2022unifying,@QuantumControl_jl,@shin2023accelerating,@SHIN2024110651,@SHIN2021693,@ADNLPModels_jl,@OptimalControlProblems_jl,@Wachter2006,@rackauckas2017differentialequations.QuantumControl.jlis now cited. Checking the bibliography for this point turned up that theQuantumControl_jlentry was present inpaper.bibbut never used — thanks for prompting the audit.The only names deliberately left unlinked are those inside the bold bullet labels of State of the Field (
**Legacy tools (COTCOT, HamPath, NutoPy)**,**Direct-method tools (BOCOP, ACADO, GPOPS-II, acados, nosnoc)**); these are enumerations announcing the topic of the bullet, and each tool is hyperlinked in the bullet body.2. Add a citation for MINPACK ✅
Added, and cited at the
MINPACK.jlmention in the Indirect methods paragraph:3. Companion example citation / version ✅
Good catch — the entry did point at
v1.0.0, whilev1.0.1was released on 2026-06-11. Rather than bumping to thev1.0.1version DOI, we switched the reference to the Zenodo all-versions (concept) DOI:which always resolves to the latest release of joss-oc-example and therefore cannot go stale again. The now-misleading
versionfield was dropped from the BibTeX entry.4. Add or repeat the Ipopt citation in the "Modelers and solvers" paragraph ✅ (adapted)
IPOPT is now hyperlinked in that paragraph, so a reader landing there reaches the solver directly.
We did not repeat the
[@Wachter2006]tag there, though: IPOPT is already cited in the Summary, and repeating the tag would contradict the convention adopted in point 1 above — which we apply to every other tool in the paper, including CasADi, GPOPS-II and acados, whose duplicated tags we removed. We hope the hyperlink meets the intent of your comment; happy to reinstate the repeated tag if you would rather have it.5. Clarify the exact class of optimal control problems currently supported ✅
We agree this was missing for a general readership. The paper now has a compact Problem Class section, right after the Summary, giving the Bolza formulation
subject to$\dot{x}(t) = f(t, x(t), u(t), v)$ , followed by an explicit statement of scope. Answering your checklist directly (each item verified against
docs/src/manual-abstract.md):v, which also covers free initial time and minimum time problemsf⁰ = 0) and Lagrange (g = 0) the special cases; maximisation is handled by minimising the opposite costConstraints may be equalities or one- or two-sided inequalities, linear or nonlinear, and the variable may appear in any of them. The section also makes the optimisation variable
vexplicit — a finite-dimensional parameter optimised together with the trajectory — which is part of the supported class but had no counterpart in your list.The regenerated PDF is committed on the PR branch by our
Compile JOSS paperworkflow. Your remaining issue #805 will be addressed in the same PR.ocots commentedon Aug 1, 2026
@tmigot Merged in #762.