IconVery often I had the problem, that downloaded STL files needed some minor editing in order to be printable on my MakerBot. Most of the time it was just a simple move to the center of the build platform or a resize.

In addition to that, I already wrote OpenGL code to visualize STL and GCode files a couple of months ago for another larger project.

Finally I had sometimes the problem that I downloaded a ASCII encoded STL file and wanted to open the file in my 3D/CAD application. Since this application can only read binary STL files I needed an easy way to convert ASCII STL to binary STL.

So I wrote Pleasant3D, a small utility which solves these problems and uses the above mentioned visualization code to display STL and GCode files:


There’s no zooming for now and the size of the “build platform” is fixed to 10x10cm (i.e. MakerBot’s build platform). I wrote the code in a way you’ll can choose different build platforms (e.g. RepRap Darwin, Mendel and so on) for visualization and adjustments in future revisions of the application . Since I only own a MakerBot, any feedback on your needs is appreciated.

You can watch a short screencast of Pleasant3D here:

Please note, that this is v1.0 of Pleasant3D and thus its initial release and first time in the wild. So please be gentle…

Pleasant3D requires Mac OS X 10.6 (Snow Leopard) or newer.

You can download Pleasant3D here for free:


  1. I’m with Adam – does this take advantage of features that are only in 10.6 or is it just a matter of recompiling it for 10.5? I think most people aren’t using 10.6 yet because of all of the problems that have cropped up. This is the first piece of software I’ve come across that is 10.6 only and I’m surprised because I didn’t think there were many major changes between the two versions of the OS. Thanks – I look forward to checking out this software.

  2. Hi,
    Great !
    This is the first and only Mac app. that I know which is capable of previewing/displaying GCode. And I have been searching for quite some time. I would love to see a 10.5/PPC version and even if it’s a shareware version. And I’m sure I’m not the only one.

    • @Erik: Thanks.

      “Is there any chance that this could become a cross platform project?”
      I doubt it. Most of the code (i.e. anything what’s not an OpenGL call) is pure Objective-C. Also, the code makes heavy use of GCD (Grand Central Dispatch), which is (to my knowledge) only available on Mac OS X 10.6 (and later).

  3. I would also be happy to improve it; I was thinking about creating my own open-source tool using SDL/OpenGL but I think it’s stupid to create a clone for something that already works…

    And if you don’t want to open-source it, can you make it work for 10.5? I cannot believe it would involve more than some build settings… It would be really great for people who cannot upgrade to 10.6 (yet)…

    • Thanks for the offer.
      As said before, it’s a little bit more complicated, than just switching some build settings on/off. One would need to opt-in some fallback code for the GCD parts which would mean, that the now relatively simple GCD/block implementation code would be blown up to something much more complicated (and probably slower).
      Also, binary STL files are little endian, i.e. I can currently map the contents directly into memory, which is not only simple but also very fast. Porting this code to an Intel/PPC universal binary would mean, that the whole STL import routines needs to be rewritten in order to handle byte-swapping in case the code runs on a big-endian machine.
      True, that’s all doable, but it’s definitely much more work than just changing some build settings. Trust me.

      Of course, if requests for a 10.5/PPC version keep coming, I’ll eventually check how much work it would be to port the code. Although I’d rather not…

  4. Ok, fair enough.

    BTW, from what I see, Pleasant3D looks very cool.

    I think, especially with the use of GCD, your code is indeed hard to port. It’s cool that you are on the cutting edge of that technology. Just a pity that Linux/Windows users cannot benefit from the program.

    I am probably going (‘trying’ is maybe the better term) to create a simple open-source SDL/OpenGL tool. It’s not my point to mimic Pleasent3D, but to provide some basic functionality.
    It’s just so cool you can just double-click (or preview!) a gcode/stl file… :-)

    Cheers -Jef

    • “It’s cool that you are on the cutting edge of that technology.”
      Thanks for pointing this out!

      That was actually one of the main goals when I started to develop Pleasant3D.
      There’s already portable visualization code for GCode available (e.g. Skeinview or Behold in Skeinforge’s Analyse section). There’re also several cross platform solutions for viewing/editing STL files (e.g. Blender).
      I didn’t (and don’t) want to provide another cross platform tool for those tasks, struggling with GUI and performance tradeoffs caused by the need of portable code. I explicitly decided to develop a high performance, native GUI tool for the system I’m working on (which is obviously Mac OS X, sorry Windows and Linux users), using all cutting edge technologies available in the most recent OS (which is Mac OS X 10.6, sorry PPC and Leopard users).

  5. Thanks for making this tool available! We’ve set up a fab lab and are trying to run it using Mac OS X as far as possible. Your approach makes a lot of sense to me – fast and polished tools like yours that make best use of a specific platform are rare. Good to see GCD working so well too!

    – Prof. Dr. Jan Borchers, RWTH Aachen University

  6. Very cool! Source would really be appreciated though, since even if it can’t be ported, it could at least be learned from to create a Java app, Windows app, web app, etc. A recipe book if you will.

Leave a Reply