Jot NPR sketch-modeling system


Jot is a NPR system developed at Brown University, Princeton University, and the University of Michigan from the mid-1990’s to 2007. It is mainly designed to allow NPR “sketch like” modeling, see this video from Siggraph 2002:

After a few years of closed development the project was abandoned but part of its code has been released as GPL v3 on Google Code:

Later someone started the work of cleaning it up and adapting it to modern operating system, forking it on GitHub… but the code looks abandoned there too:

An interesting thing is that they were going GLSL too


Being GLSL, this has potential to be included in BEER.


there seems to be some overlap with freestyle. :slight_smile:
With massive advantages over freestyle:

  • this is in real time in the viewport-glsl- no need to render!!
  • It allows the user to draw strokes inside the software. Freestyle lets you assign a texture to a stroke, but you have to make the texture sepparately , its not as fluid as this- simply drawing your strokes on top of the 3d model
  • This system can alter the silhouette of the object
  • Supports stylized shading with hatching
  • specifying levels of detail based on distance from camera

Things to wonder about:

  • The hatching/sketching system could be implemented in blender with the help of the grease pencil.
  • Can it somehow be incorporated to work with freestyle- delivering glsl preview to freestyle strokes… Although there is some overlap- these line effects could be shader effects part of beer? :smile:


Something sort-of similar could be done after Viewport FX is ready: we already have “snap to surface” modes and some sort of fixed GLSL shading for the viewport, and if we go for the “pluggable renderers inside Blender Internal with an added Viewport-render mode”[1] we’ll be able to reuse its shader

That said, I think it is something we should keep in mind while we design the architecture (some archs will allow for this, some others won’t) but most of those features will have to wait for a quite long while, I fear: currently Blender lacks the infrastructure to add them easily.

[1] more on this very soon