Image by archi-lab

Mantis Shrimp

Get Rhino Object Keys | 

Get Rhino Object User Strings | 


GH UV String to DS UV | 


Get Rhino File | 

This node will read a Rhino file (3dm) and return a Rhino Object that can be later queried for layers and other objects.


Get Rhino Layers | 

This node will query a Rhino File Object for all layers.

Get Objects by Layer | 

This node will return all objects on a layer. Use List.GetItemAtIndex to pull out a desired layer returned by Get Rhino Layers node.


RH Polyline to DS Polycurve | 

This node will convert a Rhino  Polyline to Design Script (Dynamo native) Polycurve.

RH Point to DS Point | 

This node will convert a Rhino Point to Design Script (Dynamo native) Point.

RH Line to DS Line | 

This node will convert a Rhino Line to Design Script (Dynamo native) Line.

 RH Mesh to DS Mesh | 

This node will convert a Rhino Mesh to Design Script (Dynamo native) Mesh. It will handle both Triangular and Quad meshes.


RH NurbsCurve to DS NurbsCurve | 

This node will convert a Rhino NurbsCurve to Design Script (Dynamo native) NurbsCurve. Some NurbsCurves are composed of multiple spans and those will be exploded into their individual components.

RH Circle to DS Circle | 

This node will convert Rhino Circles to Design Script (Dynamo native) Circles. Circles can also be represented with closed NurbsCurves, or two ArcCurves so do not be surprised if this node does not always pick up geometry that looks like a circle but might not necessarily be one.


RH Arc to DS Arc | 

This node will convert Rhino Arcs to Design Script (Dynamo native) Arcs.

RH Brep to DS PolySurface | 

This node will convert Rhino Breps to Design Script (Dynamo native) PolySurfaces. Rhino often interprets more types of geometry as Breps than one would expect. For example trimmed surfaces and extrusions are all considered Breps by Rhino OpenNurbs library when exporting. Please be mindful of that when working with Breps.


RH NurbsSurface to DS NurbsSurface |

This node will convert Rhino Nurbs Surfaces to Design Script (Dynamo native) Nurbs Surfaces. Almost every surface in Rhino can be represented as a Nurbs Surface. Also, Poly Surfaces containing Nurbs Surfaces will be evaluated by this node and exploded into their sub surfaces.

RH Extrusion to DS PolySurface | 

This node will convert Rhino Extrusions to Design Script (Dynamo native) PolySurfaces. Extrusions are an example of a object that gets considered a Brep when imported and its easiest to convert all its surfaces/faces to Nurbs Surfaces so that the final output is a PolySurface.


Get Rhino Mesh Face Center | 

This node will extract a Mesh Face Center Point from a Mesh and convert it to Design Script Point. This node will only work on Meshes.

Get Rhino Object Name | 

This node will return a name of the object in Rhino if such was assigned and an empty string if not.


Get Rhino Object GUID |

This node will return objects Rhino generated GUID.



  1. Unable to download Mantis Shrimp file. I get sent to the GitHub “page not found”.

  2. Mantis Shrimp download sends me to the GitHub “Page not found”.

    • Danny,

      Mantis Shrimp is also available on Package Manager for Dynamo. GitHub has all of the source code and nodes. I am suspecting your firm’s firewall is preventing you from accessing it. Try searching GitHub for Mantis Shrimp if direct link doesn’t work. Thanks for trying it. Feel free to post feedback/images/files if you need support.


      • I have an odd thing happen in Grasshopper. When I select the Mantis Export from the archi-lab tab. A message pop-ups that says “Grasshopper breakpoint”, “The User Object could not be created as the base type is missing”. I must of missed something in my setup. I dragged and dropped the Mantis Shrimp – Export.ghuser to the Grasshopper display. Do I need to add the .py files to my “IronPython/Lib” or is that the wrong folder?

  3. Thank you Konrad,

    I downloaded it from the Github using Explorer. It might have been the Google Chrome.

  4. Paul Wintour says:

    Is Mantis Shrimp a 2 part plug-in – Grasshopper & Dynamo? I can’t find it under food4rhino. Thanks

    • Yes, it is. You will need Dynamo and Rhino/Grasshopper for it. Once you install Dynamo you can use the Package Manager to install Mantis Shrimp (its way easier to updata/manage plug-ins on Package Manager than it is posting it to food4rhino). Grasshopper User Objects will be in the Mantis Shrimp package folder in the “extra” folder, you can just drag and drop them into GH. Please leave the *.py and *.dll files in there. Good luck!

  5. Brichev Alexey says:

    hi. i have some trouble with using mantis shrimp in grasshopper. when i open grasshopper and use some component for export from grasshopper after that i can’t use component for import, i must restart rhino and it becomes possible, but stops working components for export. “The User Object could not be created as the base type is missing”.

  6. Brichev Alexey says:

    Thanks. it was very helpful. I deleted everything and made all the instructions and it worked. but unfortunately not completely.I tried to follow a lesson but nothing is happend .

    P.S. Read GH File work fine

    i try export nurbsurface and got a problem described above. when i try export curve i got massage export failed. try again. but when i try export point it was successful.

    Attachment:  test.jpg

    • This should work. The problem is that you are feeding in a single element instead of a list. It is expecting a list to iterate over. Try feeding this into List.Create and then into the Write GH File component. I will fix this limitation for the next Mantis Shrimp update.

    • Actually, I will take back my previous comment. It looks like a NurbsSurface that was referenced in from Revit does not have the same properties as a NurbsSurface that would be created in Dynamo. Again, this might be a limitation of how the NurbsSurface is being “wrapped” by Dynamo. I will have a look at this.

  7. Brichev Alexey says:

    illustrations is my tests

    Attachment:  test-2.jpg

    • This method will not work. You see how, the list contains only object that are “Curve”. That’s a generic wrapper around things like NurbsCurve or Line. For Mantis Shrimp to process those it needs to be a specific curve type. It will not work as it is at the moment, but its something that i can look at in the future. Thank you for submitting.

  8. Brichev Alexey says:

    test with point

    Attachment:  test-3.jpg

  9. Bjarke Koch-Ørvad says:

    Hi Konrad

    Great work with Mantis Shrimp.

    I’m having a little problem though. I can’t get the “RH line to DS line” Node to work. It’s returning an empty list, even though I have plenty on Rhino lines as an output from the Read GH File node. Any ideas?

    What I’m trying to achieve is to do BeamsByCurve – If I use the RH lines directly it actually makes the beams in Revit, but with a lot of errors (missing geometry). Maybe this will be solved if the RH lines are converted to DS lines, or what do you think?

    See image attached

    Best regards

    • RH line to DS line is a Rhino node. You said it yourself: ” even though I have plenty on Rhino lines as an output from the Read GH File node”. Any output from Read GH File is a Design Script (Dynamo) compatible. You don’t have to do any more conversions to that. “RH Line to DS Line” is needed when you are reading in Rhino (3dm) file directly.

  10. Jose says:

    Hi Konrad, my name is Jose Rossi, from Argentina (sorry for my english level), I’m new using Mantis Shrimp, and i try to send geometry from GH to Revit, it easy when i send point (like your the example video), but when i try send polyline, i don´t recive it in revit.

    I hope you can help me.

    Thank you for Mantis Shrimp, is an amazing tool.


  11. Sam says:

    Hi Konrad,
    Mantis Shrimp works fine with my Revit project when the units is Meter, however when I change the units to millimeter the nodes don’t do the conversion. any help will be appreciated.

    • Sam,

      Mantis Shrimp doesn’t perform any unit conversions. Dynamo uses whatever units are set to in Revit. Grasshopper does the same thing. You have to make sure that your units in Grasshopper/Rhino are set to the same units as in Revit since neither Dynamo nor Grasshopper does any conversion that would ensure that you are in synch. Now, if they are not the same, that’s when you have to do the conversion yourself. Good luck!

  12. Shahrokh says:

    I would like to different send categories to grasshopper. Walls, windows, floors, ….
    I am not sure if they are nurbs or meshes or etc. Is it possible to send these objects via Mantis?


Leave a Comment