From Wikipedia, the free encyclopedia
Jump to: navigation, search
Developer(s) CMU Sphinx
Stable release
1.0b2 / July 2, 2007
Operating system Cross-platform
Type System design
License BSD License
Website [1]

ConfDesigner is a graphical environment written in Java, which eases the design of complex system configurations.

Because of being part of the Sphinx4 Speech Recognizer, ConfDesigner is licensed under BSD licenses. ConfDesigner is based on the Netbeans Graph Library.


The best way to get in touch with ConfDesigner is to check out its sources. It is located in $SPHINX_ROOT/tools/confdesigner.

Nevertheless, ConfDesigner can be used without any installation using Java Webstart. Although only Java5 or higher is required to run the application locally, Java6 or higher is required to run it via Webstart.

Component Categories[edit]

In order to add a Configurable to one or several arbitrary categories, it's just necessary to annotate the class (or one of its parent-classes, or one of its implementing interfaces, or one of the interfaces being implemented by one of its parent classes. E.g.

@ConfCategory(value = {"search", "parallel"})
class ParallelSearchDecoder implements Configurable{

In ConfDesigner the categories are used to set up another component-selection-tree (beside the usual package-based one)

Release history[edit]


  • improved node-layout
  • snap2grid
  • level of details for nodes in order to speed up the application
  • distributed computing support

In Process (upcoming Beta3)[edit]

  • copy, cut, paste & delete for subgraphs
  • optional snap2grid
  • reimplementation of property panel (in order to support default properties and non-defined properties)
  • improved connection routing
  • better node-layout


  • ConfDesigner can be started directly via "java -jar confdesigner.jar" (because of added jar-Manifest)
  • Command line interface
  • Automatic range checking for basic properties (int, double, string) based on the property-annotations
  • quick-search: find nodes within a system configuration graph
  • tab-support: edit several system configurations within on designer-instance
  • project-support: bundle sets of system configurations
  • User-defined component-categories (to use them, just annotate the class with the ConfCategory-annotation).
  • Image-exporting of configuration-graphs
  • Various usability improvements (improved key bindings, fit-to-view, linking this website into the help-menu)
  • Background Labels, which are intended to help to get some additional structure into a system graph
  • fixed: deletion of models and connections
  • fixed: rerouting of connections


  • Supports all current Sphinx4 property types (including arbitrary large component lists)
  • Loads and saves Sphinx4-configuration files
  • In place editing of component names
  • Automatic graph layouting
  • Graph serialization
  • Automatic class path parsing in order to find all available Configurables
  • Completely instantiation free modeling
  • System instantiation and evaluation directly within the designer, including online configuration changes

Known Issues[edit]

  • The CTRL-key needs to be pressed for zooming and in order to connect nodes which is confusing and not necessary