Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

dynobud - your dynamic optimization buddy

Build Status

This library has a few distinct features:

  • high-level, strongly-typed interface to CasADi
  • NLP modeling/solving (examples/EasyNlp.hs, examples/BasicNlp.hs, examples/SofaExpando.hs)
  • OCP modeling/solving (examles/Glider.hs, examples/DaeColl.hs, examples/Rocket.hs, etc)
  • live plotter for viewing OCP convergence (examples/Dynoplot.hs)

This package is built on top of CasADi ( You will have to install the CasADi C++ libraries and the casadi-bindings haskell package. See for instructions. Installing ipopt is also highly recommended if you want to solve NLPs (apt-get install coinor-libipopt-dev if you're lucky). If you are solving large scale problems, I recommend using the HSL linear solvers, which are available for free for academic users.

This library is fairly unstable, as it is in active use and development. For usage, consult the examples folder.

To install:

>> cabal update
>> cabal install dynobud

casadi-bindings will probably fail, re-read casadi-bindings instructions

To install dependencies, you may need to do something like this:

>> cabal install alex
>> cabal install happy
>> cabal install gtk2hs-buildtools

>> sudo apt-get install coinor-libipopt-dev liblapack-dev libblas-dev libglpk-dev libgl1-mesa-dev libglu1-mesa-dev freeglut3-dev libzmq3-dev libglib2.0-dev libcairo2-dev libpango1.0-dev libgtk-3-dev libgsl0-dev

To build dynobud from source

>> git clone git://
>> cd dynobud
>> cabal install --only-dependencies            # without examples
>> cabal install --only-dependencies -fexamples # with examples
>> cabal configure
>> cabal build

Try running the examples in dynobud/examples.

>> cabal configure -fexamples
>> cabal build
>> dist/build/rocket/rocket

OSX issue:

"user error: out of memory"

If you get this ^ error on OSX while using the plotting tools, your cairo/pango/gtk may be linked to an XQuartz library. Add "extra-lib-dirs=/usr/local/lib" (or wherever the correct libraries are) to your .cabal/config and re-install haskell bindings to cairo/pango/gtk/etc


your dynamic optimization buddy







No releases published


No packages published