What Will Be In JPatch 0.7?

JPatch 0.6 has a fairly complete modeling tool, and a usable animation module. Three short animations had been completed, and things seemed to be rolling along well.

But ongoing problems with the complexity of the spline implementation - especially with dealing with 5 point patches - finally convinced Sascha (JPatch’s author) that drastic action needed to be taken.

So the decision was made to, beginning with JPatch 0.7, move from spline patches to subdivision surfaces. Changing the core functionality meant that much of the program would need to be rewritten from scratch. While solving a number of fundamental problems with JPatch, the decision disappointed a number of users, who were attracted to JPatch as one of the few open source spline modeling programs.

Initially, the plan was to create a “minimal” version of JPatch which would be capable of doing basic modeling and animation. However, as work on the modeler progressed, problems with the SDS implementation were discovered. It was decided the best course of action would be to implement most of the functionality of the modeler, to ensure there were as few bugs lurking in the design as possible.

Ultimately, the decision was made to make 0.7 a fairly complete modeler, and add animation features into the 0.8 release.

Where Can I Find It?

You can keep current with development by following this forum thread. Here’s a list of snapshots that have been released. Keep in mind that these are all these releases are alpha quality snapshots, so they will have bugs. Be sure to read any included notes or README files for details:


Since 0.7 will be a complete modeler, many of the features which were previously marked as “complete” are now “pending”, since they were only partially functional. Here’s the feature list for the JPatch version, broken down by release number:

Modeler - 0.7 Release


  • Multi-Level Mesh Editing
  • Scene Graph Interface
  • Import of JPatch Patch-Based Models
  • Bones
  • Selection (Rectangle, Lasso and Proximity)
  • Smart Select Mode
  • Translate, Rotate and Scale Tools
  • Multiple Viewports
  • Tree View of Scene Graph
  • Inspector View of Scene Graph Nodes
  • Undo
  • Multi-Level Mesh Editing
  • Cameras

In Progress

  • Lathe
  • Extrude
  • Export model to .obj
  • Export model to .rib (RenderMan)
  • Renderman rendering
  • OpenGL Rendering


  • Load/save models
  • A simple material editor (just to be able to assign different materials to surfaces)
  • Creases and corners
  • A working scale tool
  • A bridge tool
  • A simple symmetry or mirror tool
  • Bone Editor
  • Bone Auto-Assign

Animator - 0.8 Release

Tentative Features

  • Dope sheet
  • Timeline
  • Forward Kinematics
  • Inverse Kinematics
  • U/V mapping


JPatch was initially designed as a “patch” modeler, similar to Animation Master. JPatch includes a modeling and animating tools, including bone and morphs animation. Several animations that were created with JPatch were submitted to the Internet Raytracing Competition, with one even winning first place.

However, due to the complexity of the underlying code, along with rendering artifacts with hooks and five-point-patches, this “patch-based” approach was eventually abandoned. To replace patches, new versions of JPatch will use Catmull-Clark subdivision surfaces (SDS).

This decision to abandon patches necessitated rewriting the “core” of JPatch. As the redesign of the SDS core took place, several “preview” versions were released as “proof of concept”. These previews had minimal functionality, such as the ability to import models created in prior version of JPatch, manipulate the points in the mesh, and rotate the models. They served primarily as “proof of concept” for the new core.

The SDS core rewrite was completed by the end of Summer, 2007. The next release date for a stable version of JPatch SDS was projected at the end of year, 2007. At this point, it was suggested that by cutting back on the feature set even more, it would be possible to release a workable version of JPatch to the users even sooner.

What's The Current Status?

February 29, 2008

There have been several internal improvements to the SDS code. The method for calculating limits, tangents, normals and displacements has been unified so that it can be shared between different levels. This is particularly useful for properly implementing morphs, so they don’t distort when scaling and rotation operations have been applied. Additionally, the algorithm for importing old patch-based models has been improved.

February 25, 2008

The Lathe tool has been implemented. It uses a new “preview” mode to step the user through the process:

  1. Select the action you want to apply
  2. Move the mouse over the target.
  3. If the action can be applied a preview of that action will be displayed and a hint (“click to apply”) will appear at the mouse position.
  4. Click to apply the action.

February 11, 2008

The Select tool has been extended. There are three ways to select: rectangle, lasso and proximity, and three select modes: visible, everything, or “smart”.

February 9, 2008

The editing tools Extrude and Multi-Level Mesh Editing work, which allows basic box modeling and mesh refinement.

A smart select (similar to Silo's Tweak mode) has been added. The Select tool will highlight the vertex, line or face that’s being hovered over, and on selection will automatically toggle to the appropriate editing mode.

Cameras are also working - they can be positioned, rotated, and focus can be adjusted.

January 9, 2008

There’s been a regression with the SDS. Various optimizations had made it impossible to edit the topology without reconstructing the entire mesh. This required the SDS classes to be refactored. (One positive result is that SDS rendering at low levels of subdivision has been sped up considerably).

Because of the SDS issues, extrude and multi-level editing have been added to the baseline feature list.

Basic functionality for bones are largely complete, but a bone editor and bone auto assign are still pending. IK for bones will not be part of this release.

  dev/minimal_feature_discussion.txt · Last modified: 2008/04/07 19:23 by (dcuny)