Frequently Asked Questions

Back to Index


What's this web-page for?

Aside from the usual purposes of publication and communication, it's purpose is mainly to host the experimental web-interface to demonstrate our Adaptive Clearing 3-axis machining algorithm without the need of a whole CAM system.

The technology uses a combination of C++, Python, Javascript, Mesa3D, and WalterZorn's vector graphics library. We were later informed that what we had created a type of Ajax framework.

If you have any interesting questions about it, send them in and we may answer them in our blog.

If you actually succeed in cutting something with it, you are probably the first, in which case please tell us so we can write a feature article. The potential of releasing CAM software in this form is as yet unproven.

Back to top

Why doesn't it work for Internet Explorer?

The Adaptive Clearing web-interface is at the edge of what we can do on an internet browser using its natural capabilities, without a plug-in.

Unfortunately, internet browsers are not very compatible with one another, and web-programmers, having no influence on Microsoft, have had to knuckle down and waste a lots of energy putting in work-arounds that you don't notice. This work imposes a significant cost on the development of advanced web-pages such as this, and we're not interested enough to do it. So, if you take about ten minutes of your time to install the far superior Firefox browser for free, you won't regret it, and you'll save us a lot of worktime that can otherwise be spent in more interesting ways.

Back to top

What is an STL file?

It stands for Stereo-Lithography File, and is the most basic format for recording a trianglar mesh model. Almost all CAD-CAM systems support it, so it serves well as a data exchange.

Back to top

I can't handle this interface, do you have a better demo?

We have one which installs from an exe file and has a very minimal user interface with instructions here. You have to contact us for a copy and persuade us that you are genuinely interested in looking at it, which usually isn't very hard.

Back to top

How do I get this algorithm in my CAM system?

If you use Mastercam you can buy the C-hook from Cimco Integration.

Some CAM companies are in the process of integrating it. They'll say who they are if you ask them nicely. Contemporary corporate culture prevents us from saying anything on their behalf without express written permission, unfortunately. We're not respected enough not to damage their brand value. My next sentence was going to be: "If our names were XXXXXX, they wouldn't be reluctant to let people know that we had contributed to their product," but there are absolutely no heros in the field of software development I can use to make that metaphore work, which is kind of sad.

If you use software from a company that is not integrating the Adaptive Clearing algorithm, and would like to have access to it without the hassle of changing your supplier, you have to ask them for it. Companies are ultimately driven by customer demand; we can send out our details as many times as we like, but if they don't believe their users are interested, it'll be ignored.

Back to top

I am a programmer who has been given the job of replicating your algorithm, and I'm stuck, can you give me some hints?

Sure. Please get in touch. I am actually interested in this subject, and rarely get the opportunity to engage with people on a technical level about how to write CAM algorithms. There's way too little sharing of ideas in this field.

Some CAM companies have a policy of never buying software from outside sources, so there's no way we could sell it to them. It's better for everyone that they make their own version of Adaptive Clearing (at unnecessary expense), than for their salesforce to go round the world explaining to people that it's a worthless feature which nobody needs, on account of the fact that they haven't got it.

So don't be shy, and don't think it's in anyone's interest to persist in a permanent regime of self-enforced isolation. A small warning: you will be asked to help with my pet project of getting the Wikipedia:CAM pages written up properly.

Back to top

What's so special about this machining algorithm?

Most machining algorithms work geometrically, based on the part model. I know because I have written half a dozen of them (offset area clearing, waterline finishing, parallel passes, constant stepover, pencil milling, ...).

There are variations of these algorithms made using combinations of the two of strategies (eg Parallel pencil milling). Also, there are ways to adapt a toolpath after it is calculated (eg Rest Roughing).

What's special about this algorithm is it's controlled by a stock model at all times of the calculation. This technique can be applied to most machining strategies, but it makes the biggest difference (and is easiest to program) for the roughing cycle, because that is when the shape of the stock changes the most.

The result is that you can safely cut along the full length of the tool, always keeping its helical blades in contact with the metal (which reduces vibration), while never colliding into too much uncut material and causing the tool to break.

It is impossible to generate a general purpose Z-clearing toolpath that cuts this deeply without an adaptive model of the stock. Without this technique the only strategies are to clear the metal in a series of shallow steps, or apply plunge roughing.

Back to top

What other software is similar to this?

There are many CAM packages that purport to implement google:trochoidal machining. In most cases these are geometrically defined, usually by attaching tangent circles to a conventional offset toolpath and sending the tool on a journey around about, hoping it doesn't collide with too much material along the way.

Our Adaptive Clearing does not contain an explicit implementation of trochoidal or spiral machining; these motions are merely emergent properties of the algorithm. As yet, we haven't seen any evidence of a feature that uses the same underlying idea as ours, though many companies assure us that they are undergoing their own development. Whether this is true or not is something their users are going to have to ask them about.

There are, however, two notable systems on the market that target the same problem, but use a different solution. The first is Surfware's patent-pending TrueMill feature, which came out in 2005 as part of their "Velocity" CAM product. More recently we have heard that it has been offered to some CAM vendors as an OEM. The software patent issue relating to it caught our attention vividly when it came out, because there happened to be a patent debate in the European Union at the time.

The second is VoluMill, which appears to have been started off in 2007 by some folks who left Surfware to form their own business around another implementation of a similar algorithm. Their toolpath generating product is available to users over the internet where you upload a contour to their servers and then download a finished toolpath for a monthly fee. Anyone who's looking for a comparison should check out our free web demo, which we don't believe anyone has yet used for actual cutting.

These two versions, which seem to be based on the geometric properties of the contours, rather than on an analytical model of the remaining metal, are real feats. Unfortunately, they might represent an inflexable approach which doesn't extended to rest roughing very effectively. However, you can never really be sure what will be the strengths and weaknesses of an approach when it is on the drawing board, or how far it can be improved with persistent development. The market is best served by a variety of distinct methods, not just one which is thought to be "right", and then honestly comparing them when they are performing at their best.

For latest opinions, try search blog for "Truemill", or search blog for "patent".

Back to top

How does it work?

A full description of the algorithm would take too much time to write out, and we don't know anyone who is that interested. Here is an intuitive explanation:

Suppose you have a complicated lawn to mow, and your mower isn't powerful enough to plough head-on straight into the uncut grass. What you can do is cut just on the edge of the mower, so it is half-on and half-off the un-cut grass and doesn't get overloaded. If you have a square piece of lawn with a concrete driveway on all four sides, you can start at one corner and follow the edge, turn the corner, and so on. In this way you will cut the grass in a spiral.

If the grass is in a channel between two raised flower beds you might find yourself having to scoop out little crescents of grass over and over again to get through. If the grass is completely contained without any side patios to allow an approach, you will have to carry the mower to the middle, use shears to clear a little circular patch to start off, before spiraling your way outwards.

Ultimately, the algorithm relies on having a very precise model of where the un-cut grass/metal remains, and there is a lot of trickery in working this out fast enough without consuming too much computer memory.

Back to top

Who are you?

Martin Dunschen and Julian Todd are self-employed programmers who formerly worked on Machining Strategist at NC Graphics between 1993 and 2002 when the product name, the development team, and one copy of the source code was sold to Vero Software. NC Graphics continue to develop the same code under the name Depocam, and the two systems have been diverging ever since. I don't know of any other case where this has happened in the software industry.

We don't do corporations, accountants, intellectual property rights, lawyers, or glass office blocks. "Freesteel" only exists as a domain name. What we can do is write software without getting distracted by any of that tedious nonsense, none of which is necessary, given the availability of computers these days.

Julian's personal web-page is www.goatchurch.org.uk. He also co-created www.publicwhip.org.uk, and develops a cave drawing program. Martin has interests outside of programming, and does a blog for his street, which is also the house where we have our office. He should put up more pictures. There's a thousand times more life here than you can ever get in a hygenic glass office block with cubicals and car-park out back... That's enough making you envious of our cheap down-sized lifestyles.

We are based in Liverpool, England on the edge of Toxteth.

Back to top

How are you paid?

Our original plan was to let our friends at Cimco Integration sell the software for us and deal with all the accounts, but no one seems to want to do that. So we've had to do deals directly and negotiate contracts in our own names, which has been kind of interesting so far. It was never our intention to have to go about sending invoices to people every three months for payment, but it seems to be what we're stuck with.

Beyond that, we muddle along with various work for the university that looks interesting, and Julian has all his non-paying programming projects, like www.publicwhip.org.uk, that he believes is a more worthy contribution to the body politic than giving money to a corrupt political party. Our income is easy to work out if you know we don't pay VAT.

Back to top

Why is your blog so unprofessional and full of ranting?

Short answer: So it's worth reading!

I've had enough of tight-lipped professional corporate blogs with their on-message, equivocating, dull, predictable, content-free drivel that you can read in any of the glossy CADCAM magazines that litter the foyer of any professional company and are not fit for a dentist's waiting room. You know what I'm talking about. If you want the high-life, see upFront ezine.

I promise if I say anything very embarrassing to someone else, I'll probably take it out if there's a good reason. If I say something embarrassing to myself, I probably won't. If I hit a problem with the algorithm, I expect I'll mention it. If I see a rival version of this algorithm, I'll talk about it from a standpoint of curiosity, knowledge and its relationship to what I'm doing.

This means, for all its flaws, it stands a chance of containing information. It's not fun always having to twist everything to a commercial advantage. Whatever.

Back to top

I thought you were going to release all your software Free Open Source?

It is our conscious intention that we would -- eventually, in the long term -- like to see a Free Open Source CAM system out there in the world into which we can contribute a version of our work. However, you don't make algorithms Open Source merely by publishing the code on the internet; they have to be part of a working system with a User Interface that people are willing to use and contribute to.

We don't have time to write a whole User Interface with the necessary controls ourselves. We're very good at writing machining algorithms, which few people can do, so we're really waiting for volunteers to join us (or for us to join another team of volunteers) with knowledge of a platform in which our algorithms could be hosted.

There are interesting Open Source developments in opencascade-CAD and linuxcnc-CAM which we don't know much about. But really, we're waiting for people with ideas and are willing to do serious work to contact us and discuss how such a project could be put together to make it succeed. Open Source is a process that requires teamwork. It is not about waiting for us to run over and give things away that you would otherwise have to pay for; people have to be willing to contribute back into it. In the meantime, the online interface is free, and we hope you can make use of it.

Back to top


2007-01-18