Skip to content

About

EasyCAM5000 is collection of CAM tools for Makers. It includes EasyTrace5000 for PCB fabrication/prototyping and EasyShape5000 for 2.5-3D milling + 4th axis. It's 100% web-based, client-side, open-source and free to use.

Topics

Resources

Code of conduct

Contributing

Stars

89 stars

Watchers

7 watching

Forks

Latest commit

 

History

125 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EasyCAM5000 - Browser-Based CAM Tools

License: AGPL v3 Status: Active Tech: VanillaJS Tech: WebAssembly Accessibility: WCAG 2.1 AA Partial

A suite of CAM tools that run entirely in your browser. No installation, no accounts, no cloud processing - your files never leave your machine.

Both apps sit on shared foundations: analytic file parsing, a Clipper2/WASM geometry pipeline that reconstructs almost lossless arcs after boolean operations, three-stage toolpath planning with G2/G3, plus ten post-processors and counting. Each app wraps that engine in a UI and an operation set built for specialized workflows.


The apps

EasyTrace5000 - PCB fabrication

Turns Gerber, Excellon and SVG into G-code for isolation milling, or into precision SVG/PNG for laser and vinyl work. Meant as an alternative to FlatCAM.

EasyTrace5000 workspace screenshot

Open EasyTrace5000 · Documentation · Repository README

Isolation routing · copper clearing · drilling · board cutout with tabs · solder paste stencils · a fiber/UV laser pipeline (beta).

EasyShape5000 - CNC routing

General routing from vector and mesh sources, from flat SVG cutting through 3D surfacing and 4th-axis work. Planned as a replacement for Easel, it now offers more operational choices and better quality toolpaths (thanks to analytic G2/G3 arcs).

EasyShape5000 workspace screenshot

Open EasyShape5000 · Documentation · Repository README

Profile · pocket · drilling · engraving · v-carve · 3D relief · rotary (continuous radial and indexed 3+1), with a 3D toolpath preview.

Which one do I need?

EasyTrace5000 EasyShape5000
Input Gerber, Excellon, SVG SVG, STL
Model one file per operation per-shape operation buckets
Transforms board-level per-shape/nested group
Undo/redo no full command history
Machines CNC router, laser/drag knife CNC router
3D operations no V-carve, relief, rotary
Output G-code, plus SVG/PNG G-code

The shared engine

  • Parsing - Gerber (RS-274X), Excellon, SVG (full path spec including arcs and Béziers), STL (binary and ASCII).
  • Geometry - Clipper2 via WebAssembly for booleans, with arc reconstruction so exported arcs use G2/G3 arcs insted of tessellated polylines.
  • Toolpaths - translate geometry to motion, optimize (staydown clustering, nearest-neighbour ordering, collinear simplification), then inject machine specifics: rapids, plunges or helical entries, holding tabs, rotary routes.
  • Rendering - a custom 2D canvas renderer with batching, level-of-detail and viewport culling, plus a three.js 3D preview for toolpaths and stock. With simulation to come soon™.
  • Frontend - vanilla JavaScript (ES6+), HTML5, CSS3. No framework, and no build step required for development or local deployment.

File support

Format Extensions Used by
Gerber .gbr .ger .gtl .gbl .gts .gbs .gko .gm1 EasyTrace5000
Excellon .drl .xln .txt .drill .exc EasyTrace5000
SVG .svg both
STL .stl (binary and ASCII) EasyShape5000

Developed and tested against KiCad and EasyEDA output.

Exporting Gerber with Protel extensions lets drag-and-drop auto-assign files to the right operation.

Bézier curves are parsed analytically but interpolated to line segments before offsetting - analytic Bézier offsetting is not supported yet.

Post-processors

Having access to a limited number of machines/controllers/setups means the project depends on community feedback about what works or doesn't for most hardware/setup combinations. While the geometry system has been tested thoroughly, the recent additions of tool-changing and 4th-axis logic mean a lot more variables have been added which haven't been fully tested in all possible controller configurations, so proceed with some caution and report any unexpected behaviour.

Post Tool change 4th axis state
GRBL no replacement (mostly) tested
Roland RML no no (more) experimental
grblHAL yes a-word / repl. experimental
Makera (Carvera) yes a-word / repl. (less) experimental
UCCNC yes a-word / repl. experimental
Mach3 yes a-word / repl. experimental
LinuxCNC yes a-word / repl. (less) experimental
Marlin no replacement experimental
Fanuc yes a-word / repl. radioactive
WinPC-NC yes a-word / repl. radioactive

Documentation

Full walkthroughs, every operation and every parameter live on the site:

Accessibility

EasyTrace5000 supports keyboard-only navigation and screen readers. See the accessibility guide (source: easytrace5000/doc/ACCESSIBILITY.md) for the full shortcut list and current WCAG 2.1 status.


For developers

One shared engine at the repository root; each app directory adds a UI, an operation set and a profile. Repository layout, local setup, the production build and the debug console commands are in ARCHITECTURE.md.

git clone https://github.com/RicardoJCMarques/EasyCAM5000.git
cd EasyCAM5000 && npx serve      # a local server is required; file:// will not work

Status and known limitations

Suite version 1.6.2 - see the changelog. Versions track the suite as a whole; entries name the app they affect.

Anything else lives in the issue tracker.

Roadmap

  • Multi-lingual UI - the string layer exists, only English is populated
  • Tool library, post-processor and theme import/export
  • Toolpath playback and material removal simulation in the 3D preview
  • Service Worker for offline use

Contributing

I am not actively seeking code contributions, but testing reports are the most useful thing anyone can send - especially confirmation that a post-processor works on real hardware.

Obvious CTA

If you use and like EasyCAM5000 don't forget to star it so it becomes more discoverable to other people.

Sponsorship

EasyCAM5000 is free software. If this tool saves you time or patience, Github Sponsors and Ko-fi contributions fund development time and test hardware. Manufacturers and industry partners can get visibility on the welcome screen and in the documentation.

Sponsor - FabAcademy @ Fab Lab Benfica Your Logo Your Logo

Contact us regarding sponsorship →


License

Copyright © 2025-2026 Eltryus - Ricardo Marques

The application is licensed under the GNU Affero General Public License v3.0 or later (LICENSE). Free to use commercially, free to modify and redistribute - but a modified version served over a network must make its source available to the people using it.

Third-party components keep their own licenses, listed in NOTICE: Clipper2 (Boost 1.0), three.js (MIT), delaunator (ISC).

Example files carry their own terms: examples/exampleThroughHole1 is CC0; examples/exampleSMD1 and LineTest.svg are CC BY-NC.

Trademarks. "Eltryus" is a trademark. You may not use the name to endorse or promote derived products without written permission, beyond describing the software's origin.

Acknowledgments

  • Angus Johnson for Clipper2, and Erik Sombroek for the WASM build
  • Delaunator library developers
  • The open-source and Fab Lab / Makerspace communities
  • Krisjanis and Marcela, for outstanding contributions to naming this thing
  • Marcela again, for the through-hole example board
  • A standalone Clipper2-WASM test page built during early development, still useful as living documentation for the library's API - live version

About

EasyCAM5000 is collection of CAM tools for Makers. It includes EasyTrace5000 for PCB fabrication/prototyping and EasyShape5000 for 2.5-3D milling + 4th axis. It's 100% web-based, client-side, open-source and free to use.

Topics

Resources

Code of conduct

Contributing

Stars

89 stars

Watchers

7 watching

Forks

Sponsor this project

Contributors

Languages