← Back to Blog

Introducing Smooth: Tool Data Sync for CAM and CNC

By Brad Collette November 5, 2025
Announcement Open Source Tool Management CAM CNC

I’m a developer working on the FreeCAD CAM workbench and a hobbyist CNC user. I’ve long been frustrated by the lack of software to keep tool data synchronized between FreeCAD and my milling machine. It isn’t just exporting from one computer and importing into another. I have my desktop computer in the house where I do most of my design and set up CAM jobs and another desktop in the workshop where I may have to tweak the setup before running it. I carry a laptop when I travel and that has FreeCAD on it too so my tool information needs to be synced there too. The tooltable on the milling machine stores the offsets so a one-way export from FreeCAD is not enough.

For years, I’ve kept things in sync with a Dropbox folder and a lot of scripts. I assumed this was just a hobbyist problem and that the ‘big boys’ had a real solution. In a recent video meetup with some folks from the LinuxCNC community I asked about the ‘state of the art’ in this area and was surprised to learn that there isn’t one. There are a few commercial solutions but they are expensive, limited, and generally disliked.

I started talking to several professionals and heard the same thing. One even told me that the ‘system of record’ for his production tool data was a ‘Big Chief Yellow legal pad in his top drawer’.

Why Open Source Makes Sense Here

Some problems lend themselves to open-source solutions and I think this is one of them. An open-source tool synchronization system would not just benefit everyone, it would have some clear advantages over the closed-source alternatives.

  • Hobbyists could sync from a free account or self-hosted server
  • CNC manufacturers could write a client to sync their equipment with a neutral server and market it as a feature
  • CAM manufacturers wouldn’t have to support many different machine formats
  • Tool manufacturers could publish their data in a compatible format to make creating CAM tools simple
  • Makerspaces could publish their tool libraries in a format that would let users sync to any CAM tool they prefer

The Solution: Smooth-Core - A Format-Neutral Server for Exchanging Tool Data

What it does:

  • Syncs tool libraries between CAM systems, CNC controllers, and other tool-data consumers (tool rooms, simulation systems, etc)
  • Builds on existing standards (ISO 13399, STEP-NC, MTConnect)
  • Versioned RESTful API with bulk operations so clients don’t continuously break as the project matures
  • Command line tool to make scripting easy
  • Multi-tenant with role-based access
  • Self-hostable with full data control
  • Core import/export support to avoid lock-in
  • Structured logging for debugging and audit trails

Key Features

  • Open Source - A permissive license
  • RESTful API with bulk operations for efficient data handling
  • Multi-tenant Architecture with automatic data isolation
  • Standards-Aligned with ISO 13399, STEP-NC, and MTConnect
  • Comprehensive Security with role-based access control, tag-based API and audit logging
  • Developer-Friendly with OpenAPI documentation and client libraries

How Would You Use It?

Integrating with Smooth-Core should be possible in several ways:

1. Simple Shell Script

Using the CLI tool is the easiest way to sync data. It should be possible to experiment even for hobbyists and non-developers.

2. Python Program

Using the API is the next step up. This would let users build more sophisticated clients.

3. Plugins or Addons

Some devs might want to build plugins or addons for existing applications. This is demonstrated with Smooth-FreeCAD.

4. Direct Integration

If the project sees successful adoption, application developers may want to incorporate support directly—this too should be possible if the API is stable and versioned.

Current Status

Early alpha. It works, tests pass, and you can try it today. I’ve built a working FreeCAD addon and a script that could run on a LinuxCNC control box to sync tool data. The LinuxCNC scripts are very primitive. I’d welcome contributions to make them more useful.

Try It

The core components are live on GitHub:

Quick test: Clone smooth-core, run the server, install the FreeCAD addon, sync your tool libraries. Takes ~10 minutes.

What’s Next

This is a personal project that’s starting to “chooch” (work well enough to share). I’m looking for:

  • Feedback on the overall strategy
  • Stars, forks, and follows on GitHub to get attention from likely contributors
  • Expertise on the tool data standards
  • Contributors to try making clients for other CAM/CNC systems
  • Users willing to test and provide feedback

Get Involved

If you’ve been frustrated by tool data synchronization problems, give Smooth a try. And if you think this could be useful, a star on GitHub goes a long way toward building momentum for the project.


About the Author: Brad Collette (sliptonic) is a FreeCAD developer and contributor to the CAM workbench, with years of experience in CNC machining and CAM software development.