When Theo Saville and I founded CloudNC in 2015, we had one shared ambition: to make the manufacture of anything an autonomous, single-click process.
Eight years later, we’re still working to achieve this goal! However, we are now about to launch our first software solution, CAM Assist, that will automate much of the process for programming CNC machines to precision manufacture components.
It will be a step change for how manufacturing works globally. The elephant in the room though: why has it taken us so long?
The simple answer: it’s a very complex problem! Here’s why.
The problem itself
Let’s take a look at what we’re trying to improve first: global manufacturing.
More specifically, almost everything that’s made in the world today relies to some extent on high-quality, precision-manufactured components – and we can use technology to improve the process of making them.
These components are made in milling machines (such as CNC machines) and are used either in the products we use and consume – from watches to laptops to phones, to cars to turbines to aeroplanes – or in the moulds that are used to create the apparatus for other industrial processes, such as plastics and packaging.
So they are everywhere: indeed, somewhere close to $1 trillion-worth of components are made every year. However, producing them isn’t as simple as using a 3D printer. Instead, the machines need to be told how to make each part, via a process called Computer Aided Manufacturing (CAM). And for that, you need a skilled human in the loop to program the machine.
Having that human element involved creates variance. Programming a CNC machine requires training and expertise, and there aren’t that many people who can do it (and the skills gap is growing as demand for components rises and the number of those entering the industry lags behind the number retiring out).
There’s even fewer who are experts, and skill levels matter. There’s an infinite number of potential ways of making any component, and a new programmer is much more likely to be less efficient and more wasteful than a very talented one.
What we want to do with our solutions is automate as much of that process as possible, helping those with less experience program as quickly and optimally as the best CAM programmers out there – reinventing the manufacturing process for everyone.
Challenge 1: Infinity
That word ‘infinite’ though: that’s where much of the problem lies. If you think about the process for programming how a single component is manufactured, the potential solution space is very large.
It’s not like 3D printing where you have one tool and you can work out the best way forward layer by layer – with a CNC machine, there are multiple tools (of different sizes and types) that can all be used to achieve certain results, all of which can be deployed at different angles or depths or speed, and in any order.
So, the number of solutions is, in effect, exponentially large, and that creates huge problems from a computational point of view. Simply put, considering them all in order to work out what the best path forward requires a computer to multiply near-infinity by near-infinity, many times (combinatorial complexity!) – which takes far too long to produce results that might be useful to anyone.
The challenge therefore: make the scale of the problem tractable. Without giving away too much of our ‘secret sauce’, one element of the CloudNC process is to reduce the scale of the problem: for example, by rejecting impossible or very difficult tool paths, while making sure that optimal solutions are retained.
As a result, our algorithms are able to locate the potential best ways forward, without having to consider every possible solution that there is – meaning we can deliver results in seconds, as opposed to years.
Challenge 2: Physics
OK, so we can deal with the potentially infinite number of ways of making these components. But the other problem here is that this is a complex physical environment to consider, with – literally – many moving parts.
When machining a component, materials get very hot. They expand and contract. The milling machines have to cut chips away from metal blocks, and if the chips are too thick then the tool breaks, or if too thin then the surface of the metal cleaves. Tools get damaged, and wear out. The whole assembly vibrates.
Combining these physical restrictions with the exponential number of solutions is what elevates the difficulty level of solving the precision manufacturing challenge from ‘hard’ to ‘nightmare’.
It’s not enough to find a solution that uses the quickest and most efficient toolpath. Instead, your way forward also has to take into account multiple different physical aspects of the tools and raw materials you are using, and one miscalculation potentially ruins hundreds of thousands of dollars-worth of expensive machinery.
So – what’s the cheat code? Well, again it’s about making the problem tractable. Realistically, we can’t understand the integration of every physical element with every possible way of machining a component. But we can generate and assess the most optimal and align these with an understanding of the most common, regularly-used and applied techniques, and ensure our solutions incorporate these today.
As a result, our solutions can already be applied to the majority of CNC machining challenges, and we’re improving and fine-tuning how they work all the time. As a result, we can accelerate the process of programming the manufacture of a relatively complex component in a CNC machine from hours (or even days) to seconds.
The Optimal Path
Of course, the above description of our solutions is light in detail, as you’d expect for a short essay summing up 8+ years of work and over a million lines of code (and counting). Equally, I don’t want to give away the farm: exactly how our algorithms work is proprietary to CloudNC – we’ve spent a lot of time and effort building them!
This discretion does therefore under-sell what we’ve had to build: for example, complex algorithms to accelerate and finesse complex aspects of computational geometry, combining the machining of different shapes and aspects with each other, and producing results in a timeframe that adds value for users.
In addition, it doesn’t emphasise enough the tight parameters within which we operate. We’re literally creating machining solutions that are being used to create parts for fighter jets and nuclear plants – which means they have to be exact. There is no margin of error.
That’s why we’ve taken our time getting CAM Assist ready – there’s been a lot to solve. And we’re not especially close to the end of the journey: our vision of bringing single-click manufacturing to the world will remain some distance off for some time yet – we’re still conquering a previously intractable problem!
But we are making massive inroads to it, and what we’ve made tractable so far is a substantial part of the overall problem. We’re making accelerating CNC machine programming possible, so that we can make components faster and quicker, enabling innovation and helping fill the skills gap in manufacturing.
That’s what we’ve achieved so far – and I can’t wait to see the impact.
(PS: want to help us solve these problems? Check out our open roles at Careers).