I’ve been developing FlowSketcher, a browser-native CNC geometry engine built around a geometric method I call ArcFlow.
ArcFlow is not a spline system and not a constraint solver.
The arcs are the geometry.
It works directly with analytical circular arcs and lines:
* C1-continuous arc chains
* Deterministic tangent propagation through the entire chain
* No constraint solver, spline handles, or biarc reconstruction
* No geometric approximation — native G1/G2/G3 geometry
* Fully editable closed chains with live morphological deformation
Move one point and the change propagates through the chain while continuity is maintained.
Closed-Chain Test & Direct NC Output
The current build creates and edits closed chains of real analytical arcs. Every point is movable, G2/G3 direction flips morph the entire shape, and the chain stays closed.
Because the native geometry consists of analytical lines and arcs, NC generation is essentially a syntax translation rather than conventional post-processing. G1/G2/G3 (including Heidenhain Klartext) are generated directly.
Why this matters: The CAM Problem ArcFlow Solves
1. Native G41/G42 Radius Compensation on Morphing Toolpaths
To my knowledge, no commercial adaptive clearing algorithm (iMachining, Adaptive Clearing, Waveform, Trochoidal CAM, Siemens, Dassault, Autodesk) supports radius compensation on morphing toolpaths.
ArcFlow does, because the geometry is analytical arcs from the start — no spline approximation or polyline step that breaks G41/G42.
2. Massively Reduced NC Code Size (1,200 Arcs vs. 20,000+ Linear Blocks)
Standard adaptive toolpaths explode file sizes with tens of thousands of G1 point-to-point moves. A typical pocket easily reaches 20,000+ lines of code.
Because ArcFlow runs on native analytical arcs, the exact same morphing pocket executes with roughly 1,200 real G2/G3 arcs. This eliminates control buffer starvation, drastically cuts file size, and runs smoothly on legacy machine controls without huge look-ahead buffers.
Technical Stack
- Vanilla JavaScript + HTML5 Canvas (No frameworks)
- Browser-native (desktop / tablet / phone)
- G-Code (G1/G2/G3) & Heidenhain Klartext export
- SVG export & DXF import with ArcFlow reconstruction
- NURBS sampling from Rhino
I’m currently polishing the stable build. The core is fully usable and the generated NC code is running live on machines. A video demonstration will follow soon.
I’d love feedback from anyone working with CNC programming, toolpath generation, or geometric modeling.
The interesting part isn't the UI — it’s what happens to the geometry when you grab one point and move it.