Latest Source Code

The latest JFilament source code can be found as a GitHub project: http://github.com/odinsbane/jfilament

This GitHub page also describes additions to JFilament functionality beyond release 1.02

Recommended Installation Method: JFilament in Fiji

JFilament can be easily installed in Fiji from update site http://sites.imagej.net/Odinsbane/
This site, which contains the latest JFilament version, can be added in Help, Update Fiji.

JFilament can also be installed as an ImageJ plugin:


JFilament requires:

JFilament Bundle

To install JFilament, download this version:


Included in this release are all of the necessary jar files:

  • Jama.jar
  • vecmath.jar
  • j3dutils.jar
  • j3dcore.jar
  • JFilament.jar
  • jf_plugins.jar

You still need to have Java3D installed to use JFilament3D. The Java3D jar files have been included only to simplify certain class path issues.


The installation is just a matter of installing a new ImageJ plugin, provided you have all of the prerequisites: Java, ImageJ and Java3D.

Step 1: Unzip the release bundle to your ImageJ plugins folder.

Step 2: Restart ImageJ.

The final directory structure needs to be %PATH TO PLUGINS%\jfilament\ (jar and class files). ImageJ will only load .jar files into the class-path if the files occur in the plugins folder or 1 subdirectory lower.

Common Errors

If a ClassNotFound exception is raised then the jar files are not in your classpath. You can fix this by making sure that the appropriate .jar files are in your ImageJ plugins folder, or one subdirectory lower. Putting jar files in ".../plugins/jfilament/*.jar" is good whereas ".../plugins/jfilament/jfilament/*.jar" is not good because ImageJ will not place those jar files in your classpath.

If you can start the program, create a snake, but cannot deform the snake then Jama.jar is not in your class path. To fix this, make sure "Jama.jar" is a place where it can be loaded to your class path.

The Java3D error messages can be broken down into four cases. 1. Class Path error. The Java3D jar files are not in your class path. Fix this by copying them to your ImageJ plugins folder. 2. Unsatisfied Link Error. The .dll or .so files that are included with Java3D are not in your path. Sometimes this can be fixed by reinstalling Java3D. 3. Hardware resource errors. An error message is displayed and the 3D views only show white boxes. JFilament3D works fine, just the 3D display is not nice. The error message should indicate the origin of the problem. 4. The program starts but the 3D display does not show. Try starting JFilament with a smaller image open. If the 3D display shows, then this could indicate an out of memory error. There are ways to make more memory available to ImageJ as shown on the ImageJ wiki.

Another installation problem invovles the included JRE that comes with ImageJ. Information on setting up ImageJ to use your system wide JRE can be found here.

More Downloads

Downloads: older versions; versions without extra library files; source code; JFilament2D by itself.

file sizemodified
jfilament_complete_1.02.zip 2.12m9-4-2013
jfilament_complete_0.92.zip 2.04m3-6-2012
jfilament_complete_0.91.zip 2.04m3-5-2012
jfilament_complete_0.90.zip 2.04m3-2-2012
jfilament_complete_0.85.zip 2.04m12-12-2011
jfilament_nolibs_1.02.zip 0.18m9-4-2013
jfilament_nolibs_0.92.zip 0.17m3-6-2012
jfilament_nolibs_0.91.zip 0.17m3-5-2012
jfilament_nolibs_0.90.zip 0.17m3-2-2012
jfilament_nolibs_0.85.zip 0.16m12-12-2011

JFilament source code for older release versions. The most recent version is at Github: JFilament Browseable source.


Useful for creating ImageJ plugins that use JFilament contours.

Included Plugins

These plugins are included in the jf_plugins.jar.

JFilament 2D - starts the 2D version of JFilament.

JFilament 3D - starts the 3D version of JFilament.

Boundary Kymograph - Uses one 2D snake, plots the intensity profile along snake. Also creates a corresponding image.

Auto Track Snake - Uses one 2D snake, starts at the last frame of the snake and automatically goes through and tracks the snake until the end of the stack.

Draw Snakes - Draws all of the 2D snakes onto the current ImagePlus.

Snake To ROI - If a snake exists in the current frame it will create an ROI with the points of that snake. Closed snakes generate closed ROI's open snakes create Line ROI's.

Interpolate Snakes - for a time series of snakes, uses a distance transform to create intermediate snakes between the consecutive frames the snake already exists in.

lehigh university crest