MonkeyCAM -- free, open source ski and snowboard CAD/CAM

For discussions related to designing and making ski/snowboard-building equipment, such as presses, core profilers, edge benders, etc.

Moderators: Head Monkey, kelvin, bigKam, skidesmond, chrismp

User avatar
Head Monkey
Posts: 296
Joined: Sun Jul 17, 2005 4:53 pm
Location: Carnation, WA
Contact:

MonkeyCAM -- free, open source ski and snowboard CAD/CAM

Post by Head Monkey »

This post contains the current status of MonkeyCAM and will be kept up to date. Last updated for v4.0.6.

MonkeyCAM v4.0 is an open source CAD/CAM program for designing skis and snowboards, and generating G-code programs to cut board parts with a CNC machine. It is free to use for personal and commercial purposes, licensed under the quite permissive Apache 2.0 license. All G-Code programs generated by the program are completely license free, even for commercial use. Party on.

It is available at https://www.monkeycam.org as an online tool which always runs the latest version for free. No ads, no more downloading binaries and screwing with the command line.

Take the tour here: https://www.monkeycam.org/tour

Example of what it generates: https://monkeycam.org/results/5744863563743232

The CAD portion of MonkeyCAM is quite limited, and is specifically designed to aid the design of skis and snowboards only. The CAM portion is slightly more general, but again is specialized to ski and snowboard manufacture.

MonkeyCAM source is published on GitHub at https://github.com/mikemag/MonkeyCAM

Current release with Mac OSX and Windows binaries if you want to download. Linux binaries added in the next release, and I may drop Windows: https://github.com/mikemag/MonkeyCAM/releases

Full documentation here:
User's Guide overview
G-Code Program Guide
Configuration Guide -- every board and machine parameter documented.

Features and Current Status

The program takes configuration as JSON to describe the ski or snowboard shape via a small set of parameters and generates the following G-code programs:

* Base cutout
* Core:
** Guide holes to allow the core to be removed and flipped between programs
** Alignment marks to transfer key design points to the bottom of the core
** Edge relief to leave room for steel edges
** Insert holes for standard snowboard inserts (T-nuts) in a variety of patterns
** Top profile to impart the taper to the core
** Cutout, allowing for sidewall overhang and nose/tail spacers
* Nose and tail spacers which match the core
* Edge trenches to enable inlay of different edge wood and/or sidewall material along the effective edge of the core

The G-code programs emitted at this time have been tested on my CNC machine with a very old DeskCNC controller and work correctly. Each program also loads in Mach 3 and simulates correctly. The programs not involving holes load in ShopBot's controller and simulate correctly, but the ones with holes do not work for ShopBot right now.
Last edited by Head Monkey on Tue Oct 17, 2017 9:59 pm, edited 11 times in total.
Everything I know about snowboard building, almost: MonkeyWiki, a guide to snowboard construction
Free open source ski and snowboard CADCAM: MonkeyCAM, snoCAD-X

User avatar
Head Monkey
Posts: 296
Joined: Sun Jul 17, 2005 4:53 pm
Location: Carnation, WA
Contact:

Post by Head Monkey »

Around 2003 or so I built my own CNC machine specifically for snowboard construction. I started off using BobCADCAM and it was a pain in the ass. Being a software developer, I decided to start making my own program to generate G-code programs for snowboards and I called it MonkeyCAM. I ended up working on it quite a lot and used it to cut every snowboard I've made since late 2003, refining it every couple of months, and taking it thru three major revisions. Over the years I've tired other CAD/CAM packages but I've always gone back to MonkeyCAM. A few clicks and 10 seconds later I've generated 9 G-code programs to cut base, nose/tail spacers, and core and I know they're correct and fit together properly.

A lot of people have asked me if I'd sell it, or otherwise make it available, but I always said no. Mostly because I developed it for me and didn't really care about usability or making it pretty, and I felt it would be too difficult for others to use well. The code was a hacked together mess that I wasn't very proud of either.

I wanted to start on v4 of MonkeyCAM, and I decided it's time for a complete re-write. And this time I'm doing it on GitHub and completely open sourcing it. Initially it is available as a command line only app, but that will change in the near future. I'll build a new UI around it that will be web browser based, and I will eventually host MonkeyCAM on something like AWS or Google Apps so it can be used from a web browser without having to download or install anything.

It's only about 30% re-written so far and it's missing a lot of features, but I'm trying to order the work so it produces useful things early. For instance, right now it will generate programs to profile a core and cut insert holes, but not actually cut a core out. That's fine, though, since those two programs are really useful and agnostic to the specifics of how you cut out your core, and the top profile especially is typically pretty annoying to generate.

I've licensed the project under the quite permissive Apache 2.0 license. It will always be free and open source. I'm hosting it on GitHub, and for those not familiar with open source software development, GitHub is a popular site to host open source projects. It has nice features for source control, issue tracking, releases, etc. It also makes collaboration really easy. Anyone can make a GitHub account for free and "fork the repository" into their own, and change the source if they want. They can then submit "pull requests" which will let me take their changes back into the main branch. The best part is that if I stop caring about the project, anyone can pick it up and continue with it. If I'm busy one month and there's a bug that people really need fixed, someone else can fork the repo, fix the bug, and people can use that version until I get off my ass and pull the changes back up to the main branch. Essentially, putting it on GitHub like this ensures it will never die or be orphaned so long as someone, somewhere, cares.

I hope this will be useful to those of you with CNC machines. I'll also add a few features later to make it useful to people without CNC machines, but the focus for now is on CNC. If you have a CNC machine I'd love your feedback on the G-code programs it is generating: bugs, things you'd like to see it do differently, etc. Different controllers have different idiosyncrasies which tend to require slightly different formatting of each G-code command, and I'll work on making the program more adaptable to those as necessary. Also, different people have different work holding tastes and I'm open to adapting to different strategies there, too.

Finally, using it will be quite difficult at this time; you'll need a bit of a software development background to use it right now since it's only distributed in source form. I'll work on changing that in the next few weeks.
Last edited by Head Monkey on Fri Sep 20, 2013 12:50 am, edited 1 time in total.
Everything I know about snowboard building, almost: MonkeyWiki, a guide to snowboard construction
Free open source ski and snowboard CADCAM: MonkeyCAM, snoCAD-X

User avatar
Head Monkey
Posts: 296
Joined: Sun Jul 17, 2005 4:53 pm
Location: Carnation, WA
Contact:

Post by Head Monkey »

I've added some sample output of the program here: https://github.com/mikemag/MonkeyCAM/tr ... ple-output
Everything I know about snowboard building, almost: MonkeyWiki, a guide to snowboard construction
Free open source ski and snowboard CADCAM: MonkeyCAM, snoCAD-X

User avatar
tufty
Posts: 105
Joined: Thu Mar 11, 2010 11:55 am
Location: Northern Alps

Post by tufty »

That's rockin' Mike.

Been a while since I played with C++, but if you need any help I'll be more than willing to do what I can.

Simon

ben_mtl
Posts: 582
Joined: Mon Mar 31, 2008 1:47 pm
Location: Sherbrooke, Quebec
Contact:

Post by ben_mtl »

Waw that's amazing Mike ! That's a huge amount of work you're sharing (again..) with the SB community. I'll have a look into it as soon as I can even though I kinda figured out how to be efficient with my CNC using AutoCAD for ski design (I'm a control freek I like to be able to tweak every dimension/shape on a ski) and CamBam for the CAM part but as you said the profiling operation is what is more "challenging".

Thanks !
A bad day skiing is always better than a good one at work...

knightsofnii
Posts: 1148
Joined: Tue Jan 08, 2008 6:02 am
Location: NJ USA
Contact:

Post by knightsofnii »

Definitely keeping my eyelids peeled open to this.

Currently using snocad when it's available. A partner has boardcrafter.
Using Vectric Aspire for cadding molds and templates, and generating the code.
Machine is running off Mach 3.
Doug

User avatar
vinman
Posts: 1362
Joined: Fri Nov 09, 2007 4:16 pm
Location: The tin foil isle
Contact:

Post by vinman »

This puts me one step close to a CNC purchase once I have space.

Thanks Mike.
Fighting gravity on a daily basis
www.Whiteroomcustomskis.com

User avatar
Skammy
Posts: 50
Joined: Sat Oct 03, 2009 1:49 am

Post by Skammy »

Thanks ! :D :D

artski
Posts: 149
Joined: Tue Oct 13, 2009 8:48 am
Location: Boyne country, Mich.

Post by artski »

Very cool !

artski
Posts: 149
Joined: Tue Oct 13, 2009 8:48 am
Location: Boyne country, Mich.

Post by artski »

Very cool !

Idris
Posts: 381
Joined: Wed Jun 29, 2005 3:34 pm
Location: Chamonix, France
Contact:

Post by Idris »

Very nice, very cool idea, Thanks Mike
Image

Idris
Posts: 381
Joined: Wed Jun 29, 2005 3:34 pm
Location: Chamonix, France
Contact:

Post by Idris »

Very nice, very cool idea, Thanks Mike
Image

User avatar
Head Monkey
Posts: 296
Joined: Sun Jul 17, 2005 4:53 pm
Location: Carnation, WA
Contact:

Post by Head Monkey »

I tested the first six programs out of MonkeyCAM today on an old scrap core blank, and made a few updates. In addition to working on my controller (a really old DeskCNC) they load and sim properly in Mach 3, too. It would be groovy if someone who uses Mach 3 could pull up the sample programs and give them a run for me. I don't need you to cut anything; just run it and see if your controller complains in any way, and if the cutter moves smoothly. Each program states what the bounding box of the cutter will be in G54 so you can setup your machine to ensure the cutter doesn't contact anything for testing.

The sample programs are here: https://github.com/mikemag/MonkeyCAM/tr ... ple-output

If someone has a ShopBot it would also be good to get some feedback on the programs that don't involve circles. The ShopBot controller doesn't like the G02's for some reason and I'll need to dig into that, so avoid those (it will be obvious).

My guess is that by targeting Mach 3 and ShopBot I'll cover 90% of the machines people are likely to use. If you're using a different controller I'd love to know about it.
Everything I know about snowboard building, almost: MonkeyWiki, a guide to snowboard construction
Free open source ski and snowboard CADCAM: MonkeyCAM, snoCAD-X

twizzstyle
Posts: 2203
Joined: Tue Mar 07, 2006 8:25 pm
Location: Kenmore, Wa USA

Post by twizzstyle »

I use Mach3 on my router Mike, I'll try to get out to the shop sometime this week and give your test programs a run.

User avatar
MontuckyMadman
Posts: 2394
Joined: Fri Jun 20, 2008 9:41 pm

Post by MontuckyMadman »

The SB3 shopbot control software is free and you can download and run in preview mode to see if it works.
Or I can test it for you.
sammer wrote: I'm still a tang on top guy.

Post Reply