Seams Easy for Maya

Seams Easy is a new Maya plugin for adding seams, stitches and shutlines to a polygon mesh. It’s a huge time and ass saver when it comes to detailing thanks to performing several operations at once. It can also create various profiles on mesh boundaries or stitches along selected edges. Excited? Let’s have a look how it works.

How to use Seams Easy command

command (MEL): seamsEasy

SeamsEasy tool detaches selected edges of mesh, extrudes them and adds additional edge loops. Command creates a seamsEasy dependency node connected to source geometry and output mesh. Node’s attributes can be set/queried using following flags.

Return value
In creation mode returns string containing name of the new dependency node. In query mode, return type is based on queried flag.

Long name (shortName) Argument type Properties
-thicknes(-th) float createeditquery
Set/query extrusion thickness.
-divisions (-div) int createeditquery
Number of divisions on extruded faces.
-extrudeAllBoundaries(-eab) boolean createeditquery
When false, only selected edges will be extruded otherwise all boundary edges will be extruded.
-gapWidth(-gw) float createeditquery
Set/query size of a gap between patches.
-profileMode(-pm) enum createeditquery
Set/query profile mode. 0 = Manual mode, 1 = Profile curve
-profileWidth(-pw) float createeditquery
Set/query width for Profile curve mode
-profileDepth(-pd) float createeditquery
Set/query depth for Profile curve mode.
-profileSubdivisions(-ps) int createeditquery
Set/query number of divisons along profile curve.
-addLoop(-add) float float bool createeditmultiuse
Add a loop manualy. Arguments of this flag are loop distance, sink/rise and whether the loop should be populated with stitches. This flag can be used multiple times in one command to add several loops at once
-sort(-srt) string string createedit
Sort loops according to given arguments. The first argument defines sorting value, (either "distance" or "depth"), second argument specifies sorting direction ("asc" or "desc")
-distanceMultiplier(-dtm) float createeditquery
Set/query multiplier for all distance values
-depthMultiplier(-dpm) float createeditquery
Set/query multiplier for all depth values

How to use Stitch Easy command

command (MEL): stitchEasy

StitchEasy plugin generates polygon stitches along selected mesh edges. Command creates a stitchEasy dependency node connected to source geometry and output mesh. Node’s attributes can be set/queried using following flags.

Return value
In creation mode returns string array containing name of the new mesh and dependency node. In query mode, return type is based on queried flag.

Long name (shortName) Argument type Properties
-distance(-d) float createeditquery
Set/query distance between centers of two neighbouring stiches.
-length (-l) float createeditquery
Set/query length of individual stitches.
-useLength(-ul) boolean createeditquery
When set to false, distance is used instead of length
-thickness(-th) float createeditquery
Set/query thickness of yarn
-skew(-sk) float createeditquery
Adds twist around normal direction
-multiplier(-m) float createeditquery
Set/query multiplier affecting distance, length, thickness and skew.
-flipNorma(-fn) bool createeditquery
Reverse surface normal/local Z axis of stitches
-smoothLevel(-sml) int createeditquery
Set/query number of subdivisions for output mesh.
-translate(-t) float float float createeditquery
Set/query local translation.
-rotate(-r) float float float createeditquery
Set/query local rotation.
-scale(-s) float float float createeditquery
Set/query local scale.
-seamNode(-sn) string create
Flag can be used during creation to connect dependency node to existing SeamsEasy node



  1. Malom

    Would love to try them on OSX

  2. Sidney

    I just started using your new plugin and it’s working very well until I close and re-open a scene.
    After re-opening, the Meshes with seamsEasy applied are simply gone (from the viewport). I have to disconect the seamsEasy-Node to get the mesh back, but the seams of course are gone.

    Can you re-produce this problem too?


  3. Sidney

    Oh and could it be possible to not delete the current UVs from the mesh when using seamsEasy?

    • Stepan Jirka (Author)

      Hi Sidney,

      Thanks for your feedback.

      I just noticed the problem too, the dependency graph looks correct but the node is not re-evaluating after re-opening. The problem is most likely with the component list not being stored. I’m working on it. For now I suggest deleting history before saving.

      As for the UV, I just finished adding UVs to the stitches and I’m about to fix the UV issue on the original mesh.

    • Stepan Jirka (Author)

      Hi Sidney,

      both mentioned issues are fixed now. Please download the latest version.

      • Sidney

        Thank you for your quick fixes! 🙂

        I just downloaded the new version and I will start using it in a few seconds 😉


  4. Mike


    Nice to mmet you!!. I tried you script and it’s awesome. I came out an idea but not sure if it’s practical to write into the script you wrote. Under Manual profile settings. When inserting every edge loop. Could you write an option to choose whether it’s for hard edge or soft edge. So for every edge loop I created, I would know which one is hard edge or soft edge. This might make it easier to see/to recognize in view port when doing the stitch.

  5. Maxim Kimmerle


    I downloaded the PlugIn yesterday, and watched your video, but i dont know, how to start the plugin. In the PlugIn Manager, the Plugin is loaded, but i dont know how to open it in my Attribute Editor.

    Thanks for your your Answer

    • Stepan Jirka (Author)

      Hi Maxim,

      you simply select edges of your mesh and call command ‘seamsEasy’ or ‘stitchEasy’ depending on what you want to do. You can type the command in the script editor and drag it on your shelf to make a shelf button.


  6. Sergey

    Hi, I have some suggestion to make lines around the hole only on one side and make button to choose the side. It will be nice to have this option.

    P.s thanks for this script. It really saves time.

  7. Christopher

    The sewing seam thread is truly amazing, the video seat looks like a leather seat without any texturing applied.

  8. Love it!

    Is it possible to make only one stitch in the middle of the seam ?

    • Stepan Jirka (Author)

      Hi Lukasz,

      The two commands can be used independently. I suggest you first use stitchEasy command to create the stitches and then seamsEasy to create the tiedown (you may need to delete history on the stitches before calling seamsEasy).

      I’ll see if I can simplify this in future.


  9. david carswell

    Oh how i wish this was available for mac os x…. this is just what i need to create seams for steel plates for a Golden Gate Bridge model I am working on… The seams and the rivet patterns for the plates are killing me… At least I could take care of the seams… id just have 24,000 rivets to place. facepalm

    • Stepan Jirka (Author)

      Hi David,

      I can imagine your struggle. I wrote this plugin when working on design of car seats – I had to add and remove seams several times a day. Unfortunately I still didn’t manage to compile this for Mac : /



    • vincent

      Hey David
      Did you try using Mash for the rivets placement?

      Hope that can help…

  10. vincent

    Thank for the script Stepan, it’s great!

  11. Oleg

    Great plugin man! Very usefull. Thanks for sharing! Is it possible to use custom stitch geo?

    • Stepan Jirka (Author)

      Thank you Oleg. Yes It’s possible. In the attribute editor you select “custom geometry” which activates the selection context. You pick the geometry and confirm with Enter.