Surface Sketching script v0.8 Beta

This script allows to sketch surfaces using grease pencil without much precision needed from the user. Either building an object from the ground up or for doing retopo.

Here is a first version of the video demo. It’s a shorter timelapse, to just see the features:

And this version is the same video but is more a tutorial, explaining some concepts:

Demo timelapse:

Tutorial video:

Hamish made a transcription of the video-tutorial with each step explained in a PDF file. For those who prefer a step by step explanation in text format instead of going back and forth with a video, will find this PDF file useful…

@viralata made a tutorial about using this script together with topographic maps to build terrains from those 2D maps into 3D:
Thanks for sharing!

DOWNLOAD the script (v0.8 Beta):

It was tested with Blender 2.5 revision 27974 (later than Alpha2). Find a fresh Blender version at

Some known issues:

  • The object being sketched must not have object mode transformations. Meaning, it must be in location X=0, Y=0, Z=0, rotation reseted (ALT+R) and Scale reseted (ALT+S).
  • If there are no strokes and hit “Add surface” the object may be duplicated.
  • The surface is first done as a separate object and then joined, and a “Remove Doubles” is performed to attach the mesh. This will likely change in the future, but in the meantime be aware of that remove doubles if you don’t want it to performed on your mesh.

If you find a bug and would like to report it feel free to post it here.

Thanks to the people who helped with a couple of concepts, like Crouch and Abidos with edge orientation calculations (it was for this one :wink: ) , and Pontiac with faces generation from a list of verts.

A grease pencil video tutorial that may help get a grasp of the actual grease pencil features:

EDIT: seems that in newer builds the hotkeys script needs a small adjustment. Check post #22 of this thread to see how to solve it.


it’s simply astonishing!
this is really a great script, it can change the way modeling was commonly intended…

wonderful work eclectiel, it should be included as a default in blender!

Looks like somebody had a very productive Easter ;).
Congratulations on the new script. Can’t wait to see this on BlenderNation.

(a more in-depth comment will follow)

in which folder the .py files have to be placed?

Awesome work.
feel free to call into irc #blenderpython
i would really like to see this in Blender.

This looks great!

Excelent !


Awesome work!

Revolutionary :slight_smile:
The official blender devs must know!

‘Remove doubles’

+1 to all that has ben said. Testing! :wink:

This is very helpful, thank you so much! I just had an extra idea (sorry!)

For the case when it falls back to the user defined settings for the Cross/Follow parameters, it would be cool if it could optionally set it self so that the resulting quads will be close to a certain (user defined) length. Automatically determining the amount of subdivisions needed to create quads with the length of say 0.5 blender units for example.

That way you would not have to adjust those parameters that often and concentrate on other things.

Anyhow, thanks again!

wow thats really nice

One of the best features for Blender!


hopefully we will bundle this for 2.5.


Is very rewarding to see many talented people feeling enthusiastic about this tool. Thanks everyone for all the comments.

Heheh, if I only could do something like this in just four days… :rolleyes: . And thanks for the wish.

Just need to open the .py files in a text window and hit Run Script.

Thanks for the invitation. It’ll surely be handy in those moments hitting the head to a wall trying to figure out things.

Lol, good one.

Thats quite nice idea. One thing to think is how to finish the last edge-ring. For instance if the last edge-ring is too thin it could get collapsed. Or, distribute the width of the last edge-ring among all the other rings (deleting the last ring), so you always end up with rings that match perfectly the defined area.
If you have other ways, do tell. I can’t promise I can implement that soon, but surely taking into account.

Glad that it’s being considered. :slight_smile:

Yes, realy useful feature :slight_smile:


This is amazing! I need to see this feature in trunk!

how could we use this for cloth modeling?

This is brilliant! Very much what I’ve been waiting for in retopo for Blender 2.5 :slight_smile: