Skip to content
An animation editing and retargeting library for jMonkeyEngine (code has New BSD license)
Branch: master
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.

The Wes Project is about editing animations used in the jMonkeyEngine Game Engine.

It contains 2 sub-projects:

  1. WesLibrary: the Wes runtime library (in Java)
  2. WesExamples: demos, examples, and test software (in Java)

Summary of features:

  • retarget animations from one model/skeleton to another
  • interpolate between keyframes using a wide assortment of algorithms
  • reverse an animation track
  • trim a track in the time domain (behead and/or truncate)
  • chain 2 tracks together

Contents of this document


Newer releases (since v0.3.9) can be downloaded from GitHub.

Older releases (v0.2.1 through v0.3.8) can be downloaded from the Jme3-utilities Project.

Maven artifacts are available from JFrog Bintray.


Package names begin with jme3utilities.wes (if Stephen Gold holds the copyright) or com.jme3.bullet (if the jMonkeyEngine Project holds the copyright).

The source code is compatible with JDK 7.


Since January 2019, the Wes Project has been a separate project at GitHub.

From September 2017 to January 2019, Wes was a sub-project of the Jme3-Utilities Project.

Much of the code was developed for the Maud editor.

The retargeting code was originally developed by Rémy Bouquet (aka "nehon") for his Bvhretarget Project.

The evolution of Wes is chronicled in its release notes.

How to install the SDK and the Wes Project

jMonkeyEngine3 (jME3) Software Development Kit (SDK)

Wes currently targets Version 3.2.4 of jMonkeyEngine. You are welcome to use the Engine without also using the SDK, but I use the SDK, and the following installation instructions assume you will too.

The hardware and software requirements of the SDK are documented on the JME wiki.

  1. Download a jMonkeyEngine 3.2 SDK from GitHub.
  2. Install the SDK, which includes:
    • the engine itself,
    • an integrated development environment (IDE) based on NetBeans,
    • various plugins, and
    • the Blender 3D application.
  3. To open the Wes project in the IDE (or NetBeans), you will need the Gradle Support plugin. Download and install it before proceeding. If this plugin isn't shown in the IDE's "Plugins" tool, you can download it from GitHub. You don't need this plugin if you merely want to use a pre-built Wes release in an Ant project.

Source files

Clone the repository using Git:

  1. Open the Clone wizard in the IDE:
    • Menu bar -> "Team" -> "Remote" -> "Clone..."
  2. For "Repository URL:" specify
  3. Clear the "User:" and "Password:" text boxes.
  4. For "Clone into:" specify a writable folder (on a local filesystem) which doesn't already contain "Wes".
  5. Click on the "Next >" button.
  6. Make sure the "master" remote branch is checked.
  7. Click on the "Next >" button again.
  8. Make sure the Checkout Branch is set to "master".
  9. Make sure the "Scan for NetBeans Projects after Clone" box is checked.
  10. Click on the "Finish" button.
  11. When the "Clone Complete" dialog appears, click on the "Open Project..." button.
  12. Expand the root project node to reveal the sub-projects.
  13. Select both sub-projects using control-click, then click on the "Open" button.

Build the project

  1. In the "Projects" window, right-click on the "WesExamples" sub-project to select it.
  2. Select "Build".

How to add Wes to an existing project

To add Wes to an existing JME3 project, simply add the library to the classpath.

The Wes library depends on the jme3-utilities-heart library, which in turn depends on the standard jme3-core library.

For Gradle projects

For projects built using Maven or Gradle, it is sufficient to specify the dependency on the Wes library. The build tools should automatically resolve the remaining dependencies automatically.

Because Wes is not on JCenter, you have to explicitly specify the repository location:

repositories {
    maven { url '' }
dependencies {
    compile 'jme3utilities:Wes:0.4.3for32'

For Ant projects

For project built using Ant, download the Wes and jme3-utilities-heart libraries from GitHub:

You'll want both class JARs and probably the -sources and -javadoc JARs as well.

Open the project's properties in the IDE (JME 3.2 SDK or NetBeans 8.2):

  1. Right-click on the project (not its assets) in the "Projects" window.
  2. Select "Properties to open the "Project Properties" dialog.
  3. Under "Categories:" select "Libraries".
  4. Click on the "Compile" tab.
  5. Add the jme3-utilities-heart class JAR:
    • Click on the "Add JAR/Folder" button.
    • Navigate to the "jme3-utilities" project folder.
    • Open the "heart" sub-project folder.
    • Navigate to the "build/libs" folder.
    • Select the "jme3-utilities-heart-4.0.0for32.jar" file.
    • Click on the "Open" button.
  6. (optional) Add JARs for javadoc and sources:
    • Click on the "Edit" button.
    • Click on the "Browse..." button to the right of "Javadoc:"
    • Select the "jme3-utilities-heart-4.0.0for32-javadoc.jar" file.
    • Click on the "Open" button.
    • Click on the "Browse..." button to the right of "Sources:"
    • Select the "jme3-utilities-heart-4.0.0for32-sources.jar" file.
    • Click on the "Open" button again.
    • Click on the "OK" button to close the "Edit Jar Reference" dialog.
  7. Similarly, add the Wes JAR(s).
  8. Click on the "OK" button to exit the "Project Properties" dialog.


Like most projects, the Wes Project builds on the work of many who have gone before. I therefore acknowledge the following artists and software developers:

I am grateful to JFrog and Github for providing free hosting for the Wes Project and many other open-source projects.

I'm also grateful to my dear Holly, for keeping me sane.

If I've misattributed anything or left anyone out, please let me know so I can correct the situation:

You can’t perform that action at this time.