CAM for your CNC is now as easy as slicing an .stl for your 3D printer — and as of
v1.0.3 it literally takes the .stl. NC Studio is the easiest way to get an NC
file out of a .STEP or .STL: open the model, keep the tools you
own active in your library, and one Auto-generate builds the program — then a
single button imports it straight into your GCode Sentinel setup, loaded at the zero
and ready. Already have .nc from another CAM suite? Those run in GCode Sentinel too.
Free in the macOS beta now.
The platform is two native macOS apps that hand off to each other in both directions.
NC Studio is the generator — it authors the program from your model.
GCode Sentinel — already marketed here as the platform, an advanced AI-infused
CNC platform designed around machine vision — is the controller that runs the machine. Studio
makes it; the controller cuts it. And because Studio vendors the controller's
Toolpath parser verbatim and shares its coordinate doctrine, the program Studio
writes is byte-for-byte the program the controller streams, and the preview is driven by that very
same parser — not an approximation of the job, but the job itself:
preview == removal-sim == the streamed program. When the setup is done, click
Import and the program loads onto the controller at the setup zero, selected and
ready; the controller carries the reciprocal NC Studio button back the other way —
one click there opens Studio. Both halves install together from the same DMG.
Four moves from a CAD model to a program waiting at the setup zero.
Drop in a .STEP — or a .STL, which converts to a solid automatically — and Studio auto-derives the setup. The model is read Z-up with the origin at the top-centre of the part (0,0,0); stock defaults to the part plus an XY margin, so the exterior gets cut away clean.
One button. Studio builds a full 3-axis job from your own tools: the largest active flat endmill roughs by Z-levels, a smaller one rest-machines the corners it couldn't reach, walls and flats get finished, and an active ball nose 3D-finishes every curved or sloped surface. One self-contained .nc per tool — and a two-sided part generates its flip program too.
See it before metal moves. Three synchronized 3D views — the model, the toolpath, and a cut-result removal simulation — all driven by the controller's own parser, so preview equals removal-sim equals the program that will stream.
Export grblHAL G-code, or click Import for a true one-click hand-off — the program loads straight onto the controller at the setup zero, selected and ready. First cuts should always be air- or foam-validated before any real stock.
Built native in SwiftUI, sharing the controller's parser and doctrine — so the program is clean, gouge-free, and exactly what the machine receives.
Preview every job across three views — the model, the toolpath, and a cut-result removal simulation — so you watch the part emerge from the stock before any chips fly. Studio shares the controller's parser and doctrine, so preview == removal-sim == the streamed program: what you see is what the machine receives, not an approximation.
Tools are .gcstool JSON packages — sellable, shareable, each with feeds stored inside the tool and a per-tool active flag. The default kit is two flat endmills: a 1/4" (Ø6.35) rougher and a 1/8" (Ø3.175) finisher. Auto-gen always roughs with the largest active tool and builds the program around the tools you actually own.
Output is grblHAL-clean — header G21/G90/M3 S, footer M5/G0 X0Y0, and no G28/G30/G53/M6. Each tool gets its own self-contained .nc — you change tools between files (or let the controller's guided tool-change steps run them in one cycle); no in-file pauses. A native Mac app — one half of a platform that hands off in both directions.
Author indexing cuts — pockets that go clean through the stock and carry their actual toolpath to the other side. Cut one side, flip the part, and re-register to a hole the first side already cut: those reference walls show up white on the controller and pick like real cut edges, so the flipped setup lands dead-on. Add perimeter holds (tab bridges that keep the piece fixed for the flip) and feature exclusions (byte-identical partial programs that register against their siblings), and both sides run off one setup — no lost index. The combined Cut view shows the finished part in one solid, through-holes open from both faces.
Every program previews in three synced 3D views — your model, the toolpath, and a cut-result removal simulation that carves the program out of the stock. Spin the post-cut part around and confirm the G-code makes exactly what you drew — before a single chip flies. Because Studio runs the program through the controller's own parser, what you preview is what the machine will receive.
Point Open PCB at your board's Gerber export — copper, edge and drill files —
set the copper-cut, isolation, and drill-and-edge depths, and
Generate PCB gcode builds the whole job — one .nc per tool:
isolation first (rest-machined), then the drilled holes, then the board edge last. Mill your own
boards at the bench instead of sending copper out to a fab.
Open your board's Gerber folder and Studio reads the copper, holes, and edge for you. Set the depths, hit Generate PCB gcode, and it writes one .nc per tool in cut order — isolation, drill, then the board edge last.
Isolation is rest-machined across your bits — a big bit clears copper fast, a fine bit details only what it couldn't reach. The bits come from the same tool library as your 3-axis jobs, so each tool's pass drops in as a guided tool-change step.
A Violations view flags any gap the chosen bit is too fat to isolate — the copper bridges that would short your board — before you cut. It reads out the missed gaps, so you fix the bit or the spacing first, not after you've scrapped a board.
Open 3D now takes STL meshes alongside STEP. Pick a .stl —
from any CAD export, a 3D scan, or a print file — and NC Studio converts it to a
machinable solid automatically on open: duplicate vertices weld, glued bodies separate
cleanly, coplanar facets merge back into flat faces, and the result flows straight into
the same auto-CAM as a native STEP. No settings, no second tool, no re-export from CAD.
Fusion, FreeCAD, Blender, a scanner, a print file you downloaded — if it exports an .stl, it opens. Binary and ASCII both read; units are taken as millimetres.
The mesh becomes a proper solid in a fraction of a second — welded, oriented outward, flats recovered — then rides the exact STEP pipeline: auto-setup, face picking, rough + finish, removal sim, hand-off.
A mesh that isn't a closed volume still imports, but the status bar says so plainly — you know the CAM may not machine it correctly before you generate, not after.