OpenSCAD 2015.03 is out!

Please Login to Comment

WOOT! now we can put comic sans on everything ;D

get it here: http://www.openscad.org/downloads.html

If you make any scripts that use features from the new version, add links to them in this post!

Summary of changes

Language Features

  • Added text() module for 2D text
  • Added offset() module for 2D offsets
  • Added list comprehensions and let()
  • Added concat() function
  • Added chr() function
  • surface() can now take PNG images as input
  • min() and max() can now take a vector argument
  • 2D minkowski can now handle polygons with holes
  • Variables can now be assigned in local blocks without using assign()

Program Features

  • Added Toolbar icons
  • New code editor based on QScintilla
  • Added Splash screen
  • Added SVG export
  • Added AMF export
  • Added --viewall and --autocenter cmd-line parameters
  • GUI is now translated into German, Czech, Spanish, French and Russian
  • MDI (Multiple Document Interface) is now available on all platforms
  • Color schemes for viewer and editor can be user-edited using JSON files
  • GUI components are now dockable
  • Added Tickmarks on axes


  • Performance improvement: 2D (clipper), preview, hull, minkowski, surface
  • Performance improvement: Reduce duplicate evaluation of identical expressions
  • Better recursion behavior
  • STL export and import is now more robust
  • Internal cavities are better supported
  • New examples
  • Windows cmd-line behaves better
  • Better mirror() and scale() behavior when using negative factors


  • polyhedron() now takes a faces= argument rather than triangles=
  • assign() is no longer needed. Local variables can be created in any scope


I just installed developer snapshot 2016.10.04

This includes rotate_extrude with angle
This makes partial zylinders much easier to create.
Download here:

Dwnld OpenScad = issues = will not function = POP UP states sys needs OpenGl 2.1+, current sys config 1.1, cannot find OpenGl 2.1+ to install on WIN 10 .

Only APP that works so far "CUSTOMIZER" no others

Any suggestions?

Actually I'm using version: 2016.07.20

go here: http://www.openscad.org/downloads.html
click development snapshots on the right and download the latest bang up to date openscad version :-)

too bad, i'm using debian.. seems, i have to install it directly from source ;)

Has anyone installed this on debian wheezy? I'm in one of those situations where if I install it, I'm going to lose a bunch of other things I use (like FreeCAD). I suppose I could run it in virtualbox, but that seems like an awfully heavyweight solution to the problems caused incompatible shared libraries (rather than each program being packaged with its own dependencies and thereby causing some duplication, incompatible libraries force duplication of an entire OS). I shouldn't whine, but I sure do want to try this.

Comments deleted.

Offset rocks!

(The SCAD file for V1 is a mess, but I am learning, and V2 will be much cleaner.)

Customizable Large 7 Segment LED Display
by Sienna

Sweet, i updated my customizable text creations to use text and offset. All looks cool and round, like it should be. Finally i was able to remove all legacy code (to use the write-lib for the customizer).


Sweeping name plate
by makkuro
Round Text Sculpture
by makkuro
Customizable 3D name plate
by makkuro
Customizable pyramid text
by makkuro

Question for the OpenSCAD pros. Am I right in thinking that to give text() generated text depth I should be using linear_extrude?

I'm a little confused because the documentation shows the text() module creating 2D text here: http://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Text

But when I preview text in OpenSCAD it appears to be slightly extruded (by 1 mm?): OpenSCAD Text

linear_extrude seems to be working correctly and gives my text depth. But I've also noticed some major slowdown in the preview window when preforming unions and differences.

Any advice?

regarding speed, text tends to have a lot of little curves and bends that will slow down the render.

In preview, OpenSCAD extrudes 2d shapes by 1mm so that they are rendered. So while it looks like very thin 3d geometry, it really isn't. So you're exactly right - you need to use linear_extrude().

From what I've seen, it's much faster doing 2d operations (union, difference, etc.) and then extruding the result, rather than extruding into 3d and then doing the operations, if that is an option for you.

Thanks for the verification. I'll keep the 2D operations tip in mind too.

I used many of the new features to implement UV displacement mapping on any UV parametric surface, not just planes and cylinders: http://www.thingiverse.com/thing:719877. I think it demonstrates the power of OpenSCAD 2015.

This would not be possible in the previous version.

Easter Egg Maker 2015

FYI Customizer has been updated to use the new OpenSCAD release. It would be awesome to see this updated to use the customizer image widget :D

Thanks for the info. I just tried a simple test and it worked! I'll be posting a full update later today assuming it passes a few more tests.


It works just alright. I had to limit the resolution and could not do csg with the base without it timing out. The same script works fine locally, so I don't think it is the script itself or OpenSCAD. In fact, locally I can generate eggs 10x as dense as with Customizer. I realize it is probably running along with 1000's of other tasks online, so that is what you get. It is a big improvement.

Customizer Easter Egg Maker 2015

Wow. That's quite impressive. I'm particularly blown away by the "rock wall" egg, it's really convincing and very deep displacement with no obvious aliasing. Yet another interesting implementation to study...

Thank you, it is a work in progress. I don't see why I couldn't add UV primitives for all the common shapes and make it a more generalized library for OpenSCAD.

By the way, I noticed it worked a little better in OpenSCAD 2015.02.20 then with 2015.03, where it is slower and less stable. The 2015.03 version now throws an error message when I do csg on non-planar surfaces, prompting me change my script to use all trigons instead of quads by default. I don't know how it works under the hood, but I suppose it makes sense to avoid non-planer quads anyway.

I'll probably write up a technical walk-through explaining some of the operations in the future.

Oh man text module. Does anyone know if you can determine the dimensions of a string generated with text()? Seems like it would make scaling things to fit a lot easier.

you can't query the text to get it's dimensions, but you can SET it's dimensions with resize(), which should be just as good

resize([20,0,0], auto=true)
    text("something", font = ".Helvetica Neue Desk UI:style=Regular");

    resize([20,0,0], auto=true)
            text("something", font = "Comic Sans MS:style=Regular");


Great news. Thanks