Py-ParametricTools is a very simple approach to parametric modeling. Based on an idea of my friend Noseman, Py-ParametricTools basically consist of a bunch of generator and modifier objects for a number of commonly used modeling tools. Nothing fancy and easily done in Python, we thought this could still be helpful for some users out there.

There are generators and modifiers for the following modeling tools:

  • Extrude
  • Extrude Inner
  • Normal Move
  • Normal Scale
  • Normal Rotate
  • Reverse Normals
  • Smooth Shift


Cinema 4D R16 and higher. May even work with lower versions, but was never tested.


Simply unzip the downloaded archive into the plugins folder. There’s a palette file included, which can be simply dragged onto Cinema 4D.


The generators and modifiers are used like all the others in Cinema 4D. Generators get parented to objects and modifiers are used as children. The parameters are mainly the same as in the respective modeling tools.
For details see our online help here: Extrude, Extrude Inner, Normal Move, Normal Scale, Normal Rotate, Reverse Normals, Smooth Shift.

Of course generators can be stacked.

All modifiers support selections to restrict them to certain polygons, simply drag the selection tags onto the respective field inside a modifier’s parameters.

The Extrude generator (and only the Extrude generator) also supports two “implicit” selections: front and sides, the later only being available if “Create Caps” is not activated. In order to use these simply drag a material onto the Extrude generator and type either name into the Selection parameter of the Texture tag.


Look at the image “Modifiers restricted to selections” above, where a polygon cube gets deformed by three parametric modifiers, each restricted to a different selection. As long as they have the same polygon count, you could create the polygon selections on a polygonal cube and afterwards drag them to a parametric cube. In this way you have parametric polygon tools deforming only selected polygons of a parameteric cube.

One More Note

As said before, this project really is nothing fancy. But for some it may serve as an example, how easily Python can be used to create a parametric workflow for existing tools. It’s also demonstrating how to re-use existing description resources. (67.0 KiB)

Share this project

Please rate this


  1. So great, this lab! Looking forward for more tools! Maybe a Bulge-deformer for D-shape or Omega-shapes?

    • Thanks, Simon. Much appreciated.
      Maybe I misunderstood you, but we do have a Bulge deformer, don’t we?

      • Hi Andreas Thanks for the late surprise answer 🙂
        Where is the better place for discussion? You don’t have contact information and there is no officiel MAXON Forum?
        Yes, it works with the FFD. As long we don’t have “Bulge_2”

      • Well, I don’t really have a better place… but here it’s a bit off topic. It is certainly out of scope for the Py-ParametricTools. These do not implement any new functionality, but just use existing tools in a certain way to provide a different workflow.
        Is the mail address you used to comment here correct? Then I’d get back to you via mail.

      • the email is correct. And you can delete all my offtopic coments if you want. Sorry, but it was a good chance to talk to a developer

  2. Py_Parametric Tools interfere with NitroFit plugin ( by turning it off.
    When Py_Parametric Tools is installed in a folder before NitroFit plugin folder (eg. folder name A Py_Parametric Tools), then Py_Parametric Tool work OK, but NitroFit is missing, but when it is installed in a folder behind Nitrofit (eg. Z Py_Parametric Tools) then NitroFit works OK, but Py_Parametric Tools is missing.
    I have noticed such strange behaviour with numerous other plugins, after one is installed the other one become inactivated (invisible in C4D) Any Idea what cause such problem ?

    • I could imagine a plugin ID conflict. I can only speak for Py-ParametricTools and all IDs got correctly registered in Plugin Café. Also Py-ParametricTools are open source, so NitroMan should be able to look into it, investigating the conflict.

  3. Been using these for the last few months, so great. One thing which would make them even more amazing would be if they could somehow have a falloff tab. Animating this stuff on would be much fun. Am sure its not trivial but would be great to see in the final release. Nice work

  4. I was a 3Ds Max user, I always seeking for some modifier like shell modifier in C4D, and this is more than my expectation.

  5. Guys, if you could add a falloff, that would make those tools so great!

  6. Does this work with student versions? I get a unknown file format error when I drag it onto cinema 4d.

    • Which file are you dragging onto C4D? This is a plugin and the archive is supposed to unzipped inside of the plugins folder (see Installation instructions above). The only file inside the archive, that can be dragged to C4D is the layout file, providing you with a button palette, as shown in above screenshots on top of the Object Manager.

  7. These look very handy!

    small issue, how do i access implicit selection from the plugin objects? say i inner extrude all the faces with the deformer. and then i want to only extrude the new faces with the extrude deformer?

    • Unfortunately only the Extrude Generator supports implicit selections. Sorry, if I wasn’t clear about this and raised false expectations. This really is a very simplistic set of tools and for the Extrude Generator it was easy to add, for most others it’s unfortunately not.

    • Here’s the trick.
      Make a copy of your original object, and select all polygons. Make a selection tag from all the polys. Name it something like “Original Polys”. drag the selection on the Original object. Use that selection in the next deformer as it retains the original polys.
      There are some tricks you can do with the correction deformer as well, but I’m working on a tutorial for that.
      tell me if it works for you

    • Thanks, glad you like them.
      Actually I have Py-ParametricSplineTools as well, but these still suffer from some limitations. We’ll see if we can iron those out or if we are willing to also release a bit flawed projects.

      • Correct, no ability to restrict to specific points at this time – by default it affects all points with no tangents.

      • To be honest my spline tools have no restriction feature either… even worse, I didn’t even think of such an option.

      • Hehe, to go even further, making it automatic with angle control like bevel deformer would rock 🙂
        BTW Andreas, I just noticed you are posted this open source, this is beyond cool!

Leave a Reply

Your email address will not be published. Required fields are marked *