Application-agnostic REST API and database for tool data synchronization across CAM systems, CNC machines, and tool rooms.
Smooth Core is the central REST API and database system that provides a unified interface for managing tool data across manufacturing systems. It's designed to bridge the gap between CAM software, CNC machines, and tool rooms with a focus on real-time synchronization and data integrity.
- RESTful API with bulk operations for efficient data handling
- Multi-tenant Architecture with automatic data isolation
- Security built in: role-based access control, tag-scoped API keys, immutable audit log
- Change detection by version or timestamp for efficient client sync
- Backup and restore with versioned tool set history and rollback
- Developer-Friendly with OpenAPI documentation and a CLI
Planned work (standards import, more clients, hosted offering) lives in ROADMAP.md — this README only claims what runs today.
Task-oriented walkthroughs for linking a CNC control and a CAM tool set:
- Build a CAM tool set from your machine's tools — the machine has the tools; get them into your CAM tool set (control → CAM).
- Match a machine and a CAM tool set you built separately — both sides exist; link them by identity and inherit the machine's numbering.
- Coming soon: the reverse direction (CAM → control) — push a CAM tool set down to a machine.
- Issues: If you encounter any problems, please open an issue.
- Discussion: For questions and discussions, use GitHub Discussions.
This project was started out of a personal need to synchronize linuxcnc machine control with FreeCAD CAM workbenches. As such, these are the reference implementations of clients. Additional clients are welcome and encouraged.
The reference Python client — an importable Client library and the smooth
command-line client. Lives in its own repo:
loobric-smooth (pip install loobric-smooth).
We welcome contributions! Please see our Contributing Guide for details on how to get started.