Tuner is a system designed to perform robust optimization of multi-objective scalar functions
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.



Tuner is an application for finding optimal parameter settings for complex algorithms. It supports sampling, resampling, and optimizaing withing a high-dimensional parameter space. It also allows the user to visually see the stability of certaint parameter settings with respect to the objective measures. This is especially important in cases where one desires an optimum that is invariant to parameter settings (so things stay good over a wide range of parameter settings).


Tuner requires Java (version 6 and 7 tested).


The Tuner package needs to be built from source using the sbt build tool. Clone the repo and then run

bin/sbt compile
bin/sbt run

from the repository directory. The first line builds tuner and the second line runs it.


To run Tuner there is a shell script, bin/tuner (for Unix/Mac) and bin/tuner.bat (for Windows). The startup scripts take care of set up java with 6GB of heap space as the default is really too small to do anything. You can adjust this using the JAVA_OPTS environment variable.

There is a pre-built project for testing purposes that you can download here. Unpack this file somewhere. If you can open it and everything draws correctly then Tuner should be at least mostly working. Here is how to open an external project:

  1. Click on the 'open other' button in the project browser

  2. Navigate to test_data and click on the test_proj directory. Then click choose

  3. A window such as the following should open

Sampling scripts

See the wiki for more detailed information at https://github.com/gabysbrain/tuner/wiki/SamplingScript.

The scripts needs to take 2 command line arguments: The first argument is a file path to an input csv file, which is where Tuner will place the sample point locations. The second argument is the output file path where Tuner expects the result csv file to be written. The output csv file must contain both the sample locations (i.e. the same columns as in the input file) as well as the assessment results (dice coefficients, volume errors, etc.) from the segmentation.

The CSV files use standard US/international format, i.e. ',' as separator, '.' as decimal point, and the first line contains comma-separated column headers.

Build dependencies

Tuner is written in Scala. For building it uses simple build tool installed. The sbt build script should take care of downloading all the required libraries.

Build Status

  • Linux: Codeship Status
  • Windows: Appveyor status
  • Code coverage: Coverage Status