Spin the stock.Read the signal.
4- & 3-axis CAM built for DIY CNC. Real roughing & finishing toolpaths from an STL — simultaneous rotary, wrapped & flat engraving, and a material-removal sim.
Speaks grblHAL, GRBL, Genmitsu, AtomStack, HolzProfi HC-204A, LinuxCNC, Mach3/Mach4, Centroid and MASSO — plus drop-in posts for anything else. Two editions on one core engine: a free Community Edition, and Pro for the full toolbox.
64-BIT WIN 10/11 · ~276 MB
RotatoCAM only writes G-code — it does not run your machine. Every program it makes is a suggestion: inspect it, simulate it, and air-cut it before you commit. Provided AS-IS, no warranty — you accept all responsibility. Read the safe-testing guide →
Toolpaths, compiled.
Simultaneous 4-axis rotary
Lay the part in a wireframe 3-jaw chuck along the C axis. Flip / 90° reorient carries into the G-code, and a spin-part playback view turns the stock while the cutter holds. Spiral finishing and radial roughing in the free edition; more finishing styles in Pro.
Rough, finish, engrave
Queue rough → finish with different tools into one program with tool-change pauses, a surface-following finish pass and spring passes. Engrave system-font text flat or wrapped around a bar with a real V-bit profile — rapids and cutter shape come straight from the actual .nc.
See it before iron does
A material-removal simulator runs the real G-code and colors the cut surface by deviation, with a timeline scrubber, live feed readout and a machining-time estimate. Backplot, feed check and sim are in both editions.
See the cut before iron does.
Run the sim from the real G-code, then read quality at a glance — the cut surface is colored by deviation. A timeline scrubber, live position/feed readout and a machining-time estimate complete the picture. In both editions.
Free to keep. Pro for the deep toolbox.
Community Edition
- Spiral rotary finishing + radial roughing
- Wrapped & flat 2D engraving
- STL · OBJ · PLY · 3MF + DXF/SVG import
- grblHAL · GRBL · Genmitsu · AtomStack · HC-204A · LinuxCNC · Mach3/4 · Centroid · MASSO posts
- Guided machine + job setup wizards
- Backplot + material-removal sim
- No license, no nag, no expiry
Pro
FOUNDING PRICE — $49 while we're pre-1.0. It goes up when v1.0 ships; early buyers keep this price.
- Raster + axial/flow finishing · helical roughing
- 3+1 indexed surfacing · pencil cleanup · V-carve
- Conversational (no-CAD) suite · adaptive roughing
- Laser / plasma 2D cutting
- Built-in 4-axis G-code viewer (RotatoVIEW)
CE isn't a crippled trial — it's genuinely useful on its own and always will be: take a rotary part from model to verified G-code with the four core strategies and the full safety + setup workflow. The advanced strategies are where most of the late-night development went, so they live in Pro to keep the lights on and the work going. If RotatoCAM saves you time or money, Pro is the way to back it — if it doesn't, the free edition is yours to keep.
Lighter, smarter, made to last.
.223 — a build tag, not a version bump. Light, modular, strippable by hand, built to outlast the fashion that fights it. CE ships the four core strategies plus the full safety + setup workflow, and keeps getting safety and bug fixes — new strategies land in Pro.
Rotary mounted along Y
Most rotaries are bolted down along X, and until now that was the only way RotatoCAM could post a job. Turn yours a quarter turn on the table and the new Rotary runs along setting rotates the finished program to match: the part's length comes out on Y, its cross-section on X, and Z and the rotary word stay exactly where they were. It's a true rotation, not an axis swap, so nothing is mirrored and the program cuts what the simulator showed you. A flat engrave is untouched either way, and the out-of-travel warning now names the axis the motion actually lands on. Experimental until somebody has cut with it, so air-cut the first one. Asked for by a user with exactly this machine.
HolzProfi CNC6090 / HC-204A
A post for the HC-204A handheld control, whose rotary runs along Y. Written from the controller manual rather than inferred, which matters here because its accepted command set is unusually small: no G93 or G94, so no feed-mode word is sent and rotary feeds are converted rather than relabelled; no G20 or G21, so it is metric-only; and no M06 or M00, so there is no documented way to pause for a tool change, and the post says so and refuses a multi-operation program instead of emitting a pause that might not pause. It does do simultaneous four-axis: the manual has a rotary speed parameter that applies "in 4-axis linkage". Experimental until somebody has cut with it. Setup notes →
The axis and its letter are two questions
Which way the chuck points and which letter the controller answers to are unrelated, and a rotary mounted along Y is still usually called A. They're two separate settings, side by side in Machine setup. The letter has always been there, just in Machine setup rather than next to the Controller dropdown, which is where people kept looking for it.
It plans against the stock now
Passes used to be worked out purely from the part surface, so nothing knew what material was really standing there. Roughing now starts at the metal that is actually left instead of the bar's original OD, and the empty passes above it are gone.
Operations chain
Queue rough then finish and the second operation begins from what the first one really took off, so a smaller follow-up tool re-cuts the leftover instead of skimming the whole part again. Retracts clear the stock rather than the model.
It says when a wrap can't cut it
Wrapped surfacing only reaches shapes that are star-shaped about the rotary axis. A column or a camshaft is 100%; a figure with ears and limbs can be 20%, and the rest won't appear at any setting. You're told before you generate, not after.
AtomStack C4 Pro support
Its rotary is treated as a real fourth axis in plain degrees, not a substituted Y and not a circumference conversion, and absolute angles past a full turn are kept so a continuous spiral keeps counting up instead of resetting every revolution. Built from a live-machine handoff by a C4 Pro owner who read his own controller rather than the documentation. Marked experimental until somebody has cut with it.
A French option, where it matters
Settings ▸ Language translates the safety gate and the getting-started guide, the two places where a misunderstanding is expensive, and Windows' own file dialogs follow along. Menus and parameter names stay in English on purpose: renaming a menu you can still see in English just sends you hunting for something that isn't there.
The sim stopped eating the part
A cutter working close to the rotary centreline could wipe most of the ring at that station, so a 3+1 job on a part with openings down the middle came out of the simulator as a thin pin. The G-code was right the whole time — only the picture was wrong, which is the worst way for it to fail, because it makes a good program look like a ruined part. A cut now only takes material the cutter can actually reach.
Tapered cutters, planned properly
A fine-tipped tapered bit — the standard tool for 3D relief — used to be treated as a blunt disc of its full shank diameter, so every detail narrower than the shank was written off as unreachable at any setting. Pick taper, give it an included angle and a tip diameter (or a corner radius for a tapered ball nose), and it plans as the shape it is. Pass spacing now hits the scallop you asked for on every cutter shape.
The example projects actually open now
Nine models and eighteen ready-to-run job sheets have been inside every download all along, but the portable build looked for them one folder too high and told you they weren't installed. Help ▸ Open example projects finds them. The offline user guide, the window icon and the startup splash were all missing for the same reason, and all of them are back.
A square billet checked as a square billet
Set box stock and the does-it-fit warning now compares your part against the block's Y and Z one axis at a time, names the one that's short and by how much, and quotes the smallest block that would take the part. It used to ask whether the part cleared the circle a rotating bar's corners sweep, which could wave through a part that was genuinely too wide.
Custom posts + more controllers
Drop a post file into ~/.rotatocam/posts/ to add your own controller — no rebuild. Built-ins: grblHAL, GRBL, Genmitsu / SainSmart (4040-PRO, 3030 PROVer MAX), AtomStack C4 Pro, HolzProfi CNC6090 (HC-204A), LinuxCNC, Mach3/Mach4, Centroid and MASSO (experimental).
RotatoVIEW
Just need to view 4-axis G-code? The standalone viewer that actually works. Loads any rotary .nc, draws the true wrapped toolpath, and scrubs by machining time. Download free, unlock with a key. (Also bundled inside Pro.)
Did it earn its keep?
Maybe RotatoCAM saved you a CAM subscription. Maybe it cut something your old software couldn't — a wrapped nameplate, a clean 4-axis finish, or the roman columns for the miniature gladiator stadium you built in the garage over winter. CE stays free no matter what — if it made your machine do something worth doing, a coffee helps fund the next fix.
Pick your look. Read the cut.
Four themes — Amber CRT, Light, Dark and Green. Every frame below is the real app: real cutter shape, real rapids, straight out of the exported .nc.
Real cuts, caught on camera.
A handheld walkthrough from the garage — model in, G-code out, chips on the floor. No studio, no voiceover actor, no stock footage.
Send me what you made.
+ their name & machine
phone photo, chips and all
not shown above
removal sim running
The F word changes every line
Rotary moves go out as G93 inverse-time, where F is not a speed at all: it means "finish this move in 1/F minutes". It reads like nonsense next to a normal feed rate, and it is the thing that holds the cutter-contact speed steady while the radius changes underneath it.
Degrees pretending to be millimetres
Under G94 a grbl controller works out how long a block should take from the axis deltas, counting one degree of rotary as though it were 1 mm of travel. Hand it an inverse-time number without converting first and it is not slightly wrong, it is wrong by orders of magnitude.
A720 is not a typo
A continuous spiral just keeps counting: A450, A720, A1080. Wrapping the angle back to zero every revolution looks tidier in the file and would have the machine unwind the part mid-cut, so the absolute value rides all the way up.
One radius per ray
A wrapped pass stores a single radius for every ray out from the rotary axis, so it can only ever describe shapes that are star-shaped about that axis. RotatoCAM measures your model and tells you the percentage before you generate, because the part it cannot describe is not recoverable with a smaller tool, a finer scallop or more passes.
From STL to G-code: load, generate, cut.
Every job is the same six clicks — only the input and the strategy change.
Load
File ▸ Open model… for an STL/STEP — or just type your text / load a .dxf · .svg drawing for engraving.
Pick a strategy
Choose one from the Strategy menu — the four Community Edition strategies are described below.
Tool + stock
Pick a ball/flat end mill or a V-bit and set its diameter. Set the stock: Auto, a round bar, or a box billet.
Machine setup
Controller (grblHAL · GRBL · Genmitsu · AtomStack · HC-204A · LinuxCNC · Mach3/4 · Centroid · MASSO), surface feed and Safe Z. Defaults are sane — tune to your machine.
Generate + simulate
Click Generate toolpath to see the backplot, then Simulate / Play to watch it cut and check for gouges.
Export
Export G-code… saves the .nc / .ngc. Always air-cut above the stock first.
Don't build a job from scratch — open a ready-made one. Help ▸ Open example projects…, then File ▸ Run job file… and pick a .yaml. The model, tool, stock and strategy are already set — just Generate, Simulate, Export.
Don't want to hunt through panels? Two wizards fill them in for you. The machine setup wizard (Settings ▸ Machine setup wizard…, and offered automatically the first time you run it) gets your controller and machine limits right once. The job setup wizard (Strategy ▸ Job setup wizard…) walks a single job end to end — what you're making, cutting tool, feeds and speed, clearance, work zero — and ends on a summary before it writes anything. Both write through the same panels as manual setup, so nothing is hidden from you afterwards and nothing is locked in.
What each one is for
4-axis finish (spiral)
A smooth helical finishing pass over a rotary part from an STL. Pick a ball end mill and round stock, then lower Scallop height for a finer finish.
4-axis rough (radial)
Hogs material off a round bar in radial layers before finishing. Set Depth per pass and Stock to leave; tick Finish pass to chase it with a spiral.
2D engrave (flat)
Engrave text or a DXF·SVG drawing into flat stock. Type your text (or load a drawing), choose a V-bit, set Engrave depth, Generate.
Wrap engrave (rotary)
Wraps text or art around a cylinder. Type text (or load a drawing), set Bar diameter and Engrave depth, Generate.
Safe testing: crawl, walk, run.
CNC machines are dangerous. RotatoCAM only writes a G-code file — it cannot see your machine and it does not press Go. You are solely responsible for inspecting every program and operating your machine safely. Never blindly trust generated G-code — confirm it does what you expect on your machine, with your setup and your tools.
On the PC first — no machine
Open a model (or the bundled examples\), pick a tool + strategy, click Generate. Review the 3D backplot, run the feed check and the material-removal sim. Check rapids vs feeds, depths and units (G21 mm / G20 inch).
On the machine, dry — no material
Set work offset (G54) and tool length; confirm the correct controller. Air-cut — raise Z well above the stock and run the whole program, watching motion match the backplot. Hand on feed-hold / E-stop.
First real cut
Use soft material first (machine wax, foam, MDF, soft aluminum), shallow and slow. Start with 3-axis or wraparound engraving before any 4-axis surfacing. Light pass, stop and measure, then go deeper.
4-axis / rotary — extra care
In Machine setup, set your machine's max swing radius (spindle-to-table clearance); 4-axis jobs whose part radius exceeds it are blocked on purpose. Rotary moves use G93 inverse-time feed — a wrong rotary feed can snap an endmill, so make sure the feed check passes, air-cut the rotary motion first and start shallow.
Pre-cut checklist — every job
- Dimensions checked (measure thrice, cut once)
- Backplot + feed check + sim look correct
- Correct controller and units (mm/inch) selected
- Tool length & G54 offset set; stock clamped solid
- Air-cut done; motion matched the backplot
- E-stop in reach; eyes & hands protected
Found a bug? Tell me.
Serious issues (crashes, wrong G-code, anything unsafe) get priority. Include what you did, what happened, your edition (CE / Pro), your controller, and attach the STL/job + the generated .nc if you can. Or in the app: Help → Report a bug.
Unzip. Run. Cut.
Python and every dependency bundled. No install, no admin rights. Not code-signed, so SmartScreen may say "Windows protected your PC" on first run — click More info → Run anyway.
Community Edition
Free. The complete free toolbox — runs forever, no license needed.
Pro — $49
The full strategy set (indexed 3+1, pencil, conversational, adaptive, V-carve, laser/plasma & more). Pay once for this version — major upgrades are a separate $49. Download link emailed after checkout.
System requirements
Minimum: 64-bit Windows 10/11 · 4-core CPU · 8 GB RAM · GPU with OpenGL 3.2+ (integrated is fine) · ~2 GB disk.
Recommended: 6–8 core CPU · 16 GB RAM · SSD · a basic discrete GPU (e.g. GTX 1650) — for big models, fine sim detail, and the "Max" render look.
RotatoCAM is CPU-bound, so CPU clock matters most; the GPU mainly drives the 3D view.
RotatoCAM only generates a G-code file — you verify it. Inspect the backplot, simulate it, and air-cut every program on your own machine before you cut anything. We can't see your setup and we don't hit Go. Provided AS-IS, no warranty.