ShapeLogic is an open source toolkit for image processing and robotic vision. Started August 2007.

Code hosted on From there you can download both source files and binary distributions.

Project home page is currently a work in progress.

Main ideas and motivation

It is currently difficult to combine high order logic and image processing. ShapeLogic is intended as basic plumbing software that turns a logic engine into a simple plug in component to ease entry into vision and image analysis. ShapeLogic also fills gaps missing from current Java image processing libraries, and uses a commercially friendly license.

The current ShapeLogic working example demonstrates capital letter matching. Future, differing, examples to come.


  • Declarative goal driven logic engine for calling image processing primitives
  • The user can store rules in either a flat file or database, decreasing user reliance on Java programming
  • Implementation of 2D geometry primitives, vectorization and segmentation
  • Commercially friendly MIT open source license
  • Annotations of point as different type of junctions, end points, hard or soft points
  • Annotations of lines as straight, curved, concave or inflection points
  • Programmed in Java
  • Built on top of ImageJ, the leading Java open source project used in medical image processing


ShapeLogic uses the following libraries:

Development Status: Alpha

  • ShapeLogic is in Alpha, as of version 0.7.
  • There is a working example where ShapeLogic is used for matching capital letters.
  • The API is still under development.
  • ShapeLogic v 0.7 consists of around 16,000 lines of Java code including 180 unit tests.


2007/12/07 ShapeLogic v 0.8 released

  • Create ShapeLogic documentation site, checked the documentation into SVN.
  • Add Javadoc to ShapeLogic documentation site.
  • Created a way simpler and more expressive syntax for matching rules at the lowest level.
  • More general logical expression instead of just equal and greater than test at the lowest level now you can use the following 3 predicates for matching:
    • Equal.
    • Greater.
    • Smaller.
  • Clean up letter recognition example, take out all the size() that are part of expressions.

Future plans for ShapeLogic

ShapeLogic v 0.9 soon to be released

  • Use Or tasks
  • Finish Javadoc for ShapeLogic

Next example

The next example application for ShapeLogic will be medical image processing.