4- & 3-axis CAM built for DIY CNC. Real roughing & finishing toolpaths from an STL or STEP — simultaneous rotary, adaptive clearing, conversational (no-STL) programs, wrapped & flat engraving, and a material-removal sim. Speaks grblHAL, GRBL and LinuxCNC.
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.
Queue rough → finish with different tools into one program with tool-change pauses. Fine .001″ Z stepdown, a surface-following finish pass and spring passes on every op — plus drill patterns (peck) and helical boring for holes bigger than the bit.
Engrave system-font text flat or wrapped around a bar with a real V-bit profile — the exported rapids and cutter shape come straight from the actual .nc.





A rough early-beta walkthrough, recorded handheld — expect rough edges.
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.

Toolpath gen is dramatically faster — the Embree raycaster plus a rewritten drop-cutter (a heavy 490k-tri scan dropped from minutes to seconds). New Simplify control decimates dense scans to a target triangle count; a 3 mm tool can't resolve that detail anyway. Also: 3+1 no longer cuts past the centerline, mm/inch persists, and crashes now write a log.
Indexed 3+1 surfaces a model one face at a time — the part clocks to N positions and a 3-axis pass runs on each, for prismatic / multi-faced parts a single wrap can't reach. Pencil-trace runs a small tool down the concave valley floors a wide finish leaves behind (straight, ring or helical grooves).
Fill in the numbers: drill patterns (incl. rotary-indexed), turn-to-round, facing, pockets, flute / spiral grooves, thread milling, index slots (gear / spline / knurl) and non-round / oval turning — plus rotary finishes (raster, axial). No model required.
Set the bar by diameter with a wireframe chuck; text reads right out of the box (Mirror / Flip / Center). Around-the-bar strokes now arc on the surface and carve, and the spin-view bit tracks the cut. Distance-from-chuck + bar-length controls.
A 4-line text box (no wrap); newlines render as stacked rows at a uniform size — flat, V-carve and wrapped.
STL · STEP · OBJ · PLY · OFF · GLB · 3MF meshes and DXF / SVG drawings — the import libraries are now bundled in the portable build, with clear errors on unsupported geometry.
Mode, machine, strategy + fields, tool, feeds, stock and chucking — even the loaded model and any flip/rotate — are restored on the next launch.
Bar length + distance from chuck for rotary jobs; the sim carves the whole blank with the held stub + chuck end visible, coverage measured over the cut zone.
CHANGELOG.md.CNC machines are dangerous. RotatoCAM only writes a G-code file — it cannot see your machine. You are solely responsible for inspecting every program and operating your machine safely. The wraparound-engraving case on a real bar is exactly what beta testers are helping prove.
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).
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.
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.
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.
RotatoCAM updates often and tells you on launch when a newer build exists. Please make sure you're on the latest version (currently v0.69.0.223, shown in Help → About) before reporting — an issue you hit may already be fixed.
Serious issues (crashes, wrong G-code, anything unsafe) get priority. Include what you did, what happened, your controller (grblHAL / GRBL / LinuxCNC), and attach the STL/job + the generated .nc if you can. Report a bug / send feedback → (or in the app: Help → Report a bug)
No license needed during the beta. Open-source under GPLv3 — complete source available on request. Building closed-source/commercial? A separate commercial license is available. therealrevjmoney@gmail.com
ONE-TIME · UP TO 3 MACHINES
Not charging during the beta. A one-time license keeps the app unlocked and funds development — and you'll always be able to build from source under the GPL. Details posted here when the beta concludes.
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. If it made your machine do something worth doing, a coffee helps fund the next feature, fix, and the exact-kernel work. RotatoCAM stays open-source no matter what — support is optional, and every bit goes straight back into the tool.
A portable Windows build — 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.
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.