Blender CAM description

Blender CAM is an open source solution for artistic CAM - Computer aided machining - a g-code generation tool.

Blender CAM is an extension for the free open-source Blender 3d package.

 It has been used for many milling projects, and is actively developed. If you are a developer who would like to help, don't hesistate to contact me.

This extension is free of charge, however you can donate to support the development and appreciate the work which has allready been done.

There is currently no warranty for the results from blender CAM - you have to check your paths before use. Blender CAM has been tested with success in my studio. I wouldn't recommend Blender CAM for metalworking now, be carefull if you try it. 


  • Several milling strategies for 2D and 3D
  • Cutter types: ball, flat, v-carve with various angles
  • work with 3d data or depth images
  • Layers and skin for roughing.
  • Inverse milling 
  • Various options for ambient around model
  • protection of vertical surfaces
  • stay low - option for movement
  • material size setup
  • simulation of 3d operations
  • Background computing of the operations, so you can continue working
  • helix entry, arc retract, ramp down for some of the strategies.
  • Automatic bridges for cutout operation
  • Chain export and simulation
Export gcode to:
  • verious machines, uses nc BSD library from HeeksCNC

Not yet supported:
  • motion direction - classic, conventional, meander, are only partially supported
  • 4 and 5 axis milling. 4 axis indexed milling wouldn't be hard to add, I just need donations to buy a 4 axis machine ;)
Supported strategies:
Parallel strategy
 - supports milling directions

Cross (tested)
 - supports milling directions


Circular and Spiral, best suited for coins or other circular objects.

Waterline - constant z paths.

Outline fill - should save some time, it is similar to 2d pocket operation projected on 3d surface. Should be a fast roughing feature.

Carve - projects any 2d curve on 3d surface (tested)

Outline for 3d and 2d objects (tested)

Pocket for 2d objects

Drill - this detects circles or squares in any 2d curve and converts these into drill operation. (tested)


  1. Hello,

    Superb development please continue !
    Do you have an email ? Can´t find it on your site.
    Would like to donate also for more stable SW and more documentation.
    Don´t give up.


    1. Gael, congrats on the first comment on this site :)
      if you want to donate, the paypal button on right sends the payment to my adress, you can add a comment on what is your development priority.
      if you want to write just mail its vilda (dot) novak on the gmail site.;)

  2. Hey, really exciting to see! MasterCAM user here, on mostly 3-axis but some 4-axis stuff as well. Wouldn't mind giving it a shot to see if I can produce usable G-code for a Haas mill!

    1. Hello, thanks, I should check what kind of G-code is needed for Haas mills.

    2. % at the beginning and % new line as last. Depends on what kind of HAAS Mill. I have created a basic HAAS Creator and in the process of validating Gcode from blendercam. If you would like I can share what I have.

    3. Hello, yes, any contributions are welcome. Please send me whatever code or additions you have done...
      Tweaking the library for gcode export is quite easy...

  3. That's great! Wow. nice work.

  4. are you going to use windows

  5. let me know if you need help on programming???

  6. forget the windows question (should have seen that you do have a windows version). are you going to do 5 axis machine? when are you going to start your forum page?

    1. hello, well regarding programming any help would be welcome.
      5 axis machining is planned, but in the future - I don't have 5 axis machine currently. But next version should make it easier to do, since it uses a collision library.
      regarding forum, I am currently searching for how to embedd forum here.

  7. Is it possible to plan a reprap g-code flavor ? It would be soooo great. Since I'm really bad in programming I can only guess, but pronterface is programmed in python, and skeinforge is python too, so I was believing it will be possible to integrate it in blender as an addon, but now I see your stuff, and I can only dream of a reprap version of this.

    1. hello, repraps work quite differently compared to milling machines. I think it would be actually better to have a different addon for these, while some code could be shared in the backend...

    2. Ok, but do you think it's something possible?

    3. for sure it is possible....
      I thik skeinforge would have to be converted to python 3, and the interface wouldn't be so much work probably.
      But you have to get somebody with a reprap, enthusiasm and coding skills ;)

    4. i think the latest version of blender has some built in 3d printing capabilities. Check out web site. They have a link to a training dvd for 3d printing.

      Looks pretty promising.

  8. Ok thanks I will investigate that ;)

  9. Hi,
    I built something resembling a cnc router and up to this point my only software tools were drawing/projecting lines in Blender + a little script to upload them. Can't wait to try your approach ;)

    Ps. you could mention words like G-Code generator somewhere. Newbies with no previous experience (like me) often don't know the correct terms so googling seems harder.

    1. Hello, I actually never thought about explainging that blenderCAM generates G-code :) thanks for mentioning that :)

  10. Tested everything I found :) Your work is awesome!
    Did the Blender API changed irreversibly or the Blender CAM will get adapted to newer versions?

    1. Hello, there were no big changes recently in the api, but also nothing blenderCAM would benefit from. I will however try to keep up with current versions

  11. You should add a link to the sourcecode -repository to this Wordpress blog. :)

  12. Blender is a great program. LinuxCNC is a great program. BlenderCAM could be the connection between the two. Being based upon Polygon3 it appears to have a sound computational basis and might just be the CAD to G-Code program I've been looking for.

    However, my experience was not positive. I was not able to get any rational results on a simple test object. The video tutorial, which I watched four times, was of such poor quality that I could barely make out the screen movements. The "documentation" simply described the user interface and did not explain explain critical concepts like the relationship between machine, work piece and blender coordinates. The sample file was incomprehensible and there was no BlenderCAM panel despite the add-on being enabled. On a positive note, the Linux 64 bit build work as expected and the add-ons were present and easy to enable. And the panel appeared as expected.

    Normally, I would just move on and not make any comment but I believe this project is important and has the basis for success. The focus however should be on documentation, beta testing and evaluating user success. An emphasis on 4 & 5 axis machines is premature. A quick review of the some 5000 lines of Python code not including the NC files reveals a couple of dozen terse comments. That makes it nearly impossible for anyone other than the original author to contribute without many hours of reading undocumented code.

    I offer these comments as constructive criticism and in the hopes that the focus will change. Should it do so, I would be willing to support it monetarily and contribute to its development and testing as I am able. I am by the way not a newbie in this area. I own a Kitamura MyCenter 1 as well as manual lathes and mills, use Blender extensively to design kayaks, have installed and used LinuxCNC on small 3 axis servo motor tables and usually write my own Python and Spreadsheet G-Code generators. I also do scientific modelling for a living and am competent in Python (w/ Shapely, Numpy and Scipy too), MatLab, C/C++ and Fortran as well as incompetent in a bunch of others. My real expertise in Chemistry is unfortunately irrelevant here.

    I will be keeping a close eye on this project and will take some time to review the code as time permits. Any explanatory material would be helpful especially a dirt simple “hello world” test example that can be used to test each individuals computer system set-up.


    1. Hello, thanks for your feedback, I really appreciate that. The funny part is, I also work on a chemistry faculty, as animator...;) and do also plenty of other scripts for work.

      I really understand your criticism, but since I don't get usually feedback from people who don't suceed on first opening of the software, there is for me not much to do to fix things. For me, the packages usually work everywhere I try them. Most often begginer problem is scale of objects( 1 blender unit = 1 meter), which often causes memory overflow. I tried to implement a system which detects big objects and tries to optimize for this, but it's not finished.

      I agree for an urgent need for better comments, tutorials, documentation, sample files. I simply don't have much time to do that, although, I try to comment code more and also split it more sanely in smaller units, to be more readable.

      Good thing is, work on blenderCAM is ongoing and it is improving constantly, so I am glad you didn't loose hope after your first try ;)

      I really appreciate any cooperation from other people. By now, there are 2 people helping with builds for linux/mac and more people posting bug reports on the forum (we could start using more of google code site features, to have proper bug tracking)

      By the way, what is the performance of Shapely, did you ever try to compare it with Polygon? A great step forward would be currently to have actually Clipper as polygon clipping library, because of it's superior performance, stability and offseting algorithms...

  13. iccha:

    Thanks for accepting my comments as being helpful. Critical reviews of published work can be hard on the ego, I try to be helpful without seeming petty when I review manuscripts.

    I suspect the issue is probably not a true bug in Blender CAM but in how I think a machine tool and work piece should be set up versus how you think these should be set up convoluted with how Blender thinks about these issues. A working "hello world" example with a description of expect outcome would be most useful. By morphing a working example into my non-working example I can figure out what assumptions the program is making. From that I could write a "Getting Started" document and begin a "Users Guide" document.

    I started out with a simple cube with a cylindrical corner removed by boolean subtraction that was scaled from the meter size to the cm size range. Possibly the manner of scaling was inappropriate.

    I have not compared Shapely with Polygon3 but found Shapely fairly straight forward with most of the standard tools of computational geometry. I really wanted a 3D program but have not had a chance to work with CGAL or the CGAL-Python bindings.


    1. Hello, to your comment:
      Well if you have a concept of how workpiece/tools should work together, it would be great to describe this as a concept. Future development can go towards this goal...
      I can do several "Hello World" examples.. I think it is good idea to have these. Currently I also research if it would be a good idea to make good tutorials and actually sell them for a small fee to support the development..

      What you did seems to be right. Was your piece below zero Z level? by default, blenderCAM starts operation there...

      Regarding Shapely, I did only a small stability test, and realized that in complex cases it crashes as often as Polygon. I didn't also notice a big speed difference, but regarding this benchmark:

      is the GEOS engine used in Shapely by far the slowest. In long term, I'd love to have clipper or boost.geometry in BlenderCAM

  14. forget the windows question (should have seen that you do have a windows version) agen sbobet online . are you going to do 5 axis machine?

  15. Really like your plugin in the process of building a new 5 axis machine perhaps even 6 axis.
    I dont know if you are aware of the CNC TOOLKIT it is a plugin for 3DS Max that allows full 5 and 6 axis toolpath generation. It is written in Max Script so you maybe able to use it to figure out how to get 5 and 6 axis to workk in Blender.
    The cnc toolkit plugin is free and the guys that made it are really nice (im sure they would let you reverse it for blender).
    Looking forward to this plugin getting 5 and 6 axis capability so I can do everything with blender.

    1. Hello, I know CNC toolkit.
      More axis code is actually allready there, it's just I still don't have a 3+ axis machine to test it and work on it so that it works kind of perfectly....
      Maybe I should start a forum for cnc-axis set-ups so that I know what people want.