(Or how I created an Open-Source CNC simulator)

Back in 2011, I contracted a case of programmer’s itch.  Before I knew it, I was scratching that metaphorical irritation like a  dog with flees. Within a couple of months, I had birthed the first  functional version of an Open-Source 3-axis CNC simulator called CAMotics (CAM-ah-ticks). Or rather OpenSCAM,  as it was called back then. These days, thousands of people all over  the world are using this software. Recently, I’ve gotten a number of  concerned emails asking about the project’s longevity. This blog entry  is an attempt to clear things up.

To get right to the point, the answer to the big question, and title of this post, is a resounding yes.  CAMotics is alive and well. I love this project and will continue to  develop it, fix bugs and add new features as long as I am able. Still,  it’s been nearly a year since the last version was released. Clearly, I  have some explaining to do. The short answer is that I’ve been working  on an important complementary project. But before getting into that,  allow me to provide some context so that you understand a bit more about  who I am, where I am coming from and my vision for the future of this  software.

Me as a kid programming a Big Trak.

I’ve  enjoyed writing software since I was a little kid sitting in the living  room in front of the family TV in my underwear entering machine code  listings from Byte magazine into a Commodore 64 to make programs like Eliza come alive. I stuck with it through my teenage years, went on to study computer science and eventually made programming my profession. In the time since those days, I’ve developed numerous Open-Source projects most of which were extremely interesting to me but not very interesting to anyone else. Then one day I stumbled upon the idea to create a CNC simulator.

At  first, I thought writing a 3-axis CNC simulator would be pretty easy. I  tried out some ideas and to my surprise initially none of them worked  very well. It seemed simple enough. You just push a cone shaped tool through a cube shaped stock and compute the difference. It turns out this is called a 3D sweep and algorithms which compute accurate sweeps quickly are quite  difficult to implement. Especially when you consider the large number of  overlapping moves typical to a CNC program.

Figure from a paper on CNC simulation.

Then  I started reading a lot of the published papers on CNC simulation.  Surprisingly, they go back at least 30 years and the topic is still an  active area of research. I kept reading and had some useful  conversations with some smart people on the Internet like Anders Wallin.  Eventually, some of the higher-level concepts started to sink in and I  began to formulate an idea based on parts of several different papers I  had read but combined in a way I believe is unique to CAMotics. At this  point I started to get some results which were pretty fast, not perfect  but still very usable. I added a basic user interface, built packages  for Windows, Linux and OSX and put it up on the Internet.

Screenshot of CAMotics v1.0.5

When  CAMotics was first released, I called it OpenSCAM as a joke and an  acronym for Open-Source Simulation & Computer Aided Machining.  Despite this somewhat scary sounding name lots of people started using  it. I began to receive regular emails from users thanking me for  creating this software and lots of feedback on bugs and feature requests.  Once I realized I had finally created something that not only I thought  was really cool but other people did too, I was over the moon. I dove  right in and over the last several years have put in literally 1,000s of  hours of my “free time” developing the software further. Incremental  improvements have resulted in the quite fast and relatively accurate  simulations now produced by CAMotics today.

View of the Golden Gate Bridge from the Marin headlands.

These  days, my wife and I live just north of the San Francisco Bay in Sonoma  County, which is a beautiful place but not inexpensive. As a software contractor,  I do quite well but just making a living takes up a lot of my time and  brain power. I know what you’re probably thinking. Poor guy, lives in a  fancy part of California, gets paid to do a job he loves, has a  wonderful wife and gets to work from home (oh did I mention I work from  home, it’s awesome). Really, I’m not complaining. I am lucky to get paid  to work on really cool projects but I’m a human and therefore I always want something more. As Nada Surf eloquently put it, “Behind every desire is another one waiting to be liberated when the first one’s sated.”

Click here to make a donation now.

If only I could get paid to work on CAMotics. Then I could spend much more time implementing all the awesome features I have planned. To this end, a few years ago, I added a donations page to the camotics.org website and surprisingly this actually worked. Quite a few of you  freely donated money; please continue to do so. But sadly, as of yet,  this has not amounted to a whole lot. Last time I crunched the numbers,  it worked out to about $1.33/hr. Sorry, honey we are going to have to  move in with your parents.

Drawing created for BoCon 2006

Jokes  aside, this got me thinking about other ways to earn money with an  Open-Source project like CAMotics. Several years back, I researched this  topic quite thoroughly. I read The Cathedral and the Bazaar, The Magic Cauldron, read the story behind the Open-Sourcing of Blender, learned to sing The Free Software Song poorly and even organized a Open-Source / hacker’s Con in Idaho were I and lots of other like mined people got together to discuss this and other issues facing a free Internet society. Unfortunately, this bit fueled vision quest for the  magic solution to funding an Open-Source project never congealed into a  definite answer. It did however give me some new ideas, crossed some not  so good ideas off the list and fast forward several years, ultimately  lead me to creating a startup with my Uncle. Which finally brings me to  the reason CAMotics development has lagged over the last year.

My Uncle Doug (smart guy!)

Unfortunately,  I cannot actually tell you what I’ve been busy with. Well, not yet.  What I can say is that together with my Uncle, (his name is Doug) we  have formed a startup called Buildbotics LLC and created something really awesome which complements CAMotics in a big way, will be Open-Source  and offers a clear path to making CAMotics profitable enough for Doug  and I to give it the attention it deserves. We are currently in stealth mode, but will reveal all soon and hope to have your support when we do.

So, with that cliff-hanging teaser, I have only two things left to say. Feel free to contact me directly and. . .stay tuned!