-
-
Notifications
You must be signed in to change notification settings - Fork 8
Expand file tree
/
Copy pathindex.html
More file actions
410 lines (374 loc) · 25.1 KB
/
index.html
File metadata and controls
410 lines (374 loc) · 25.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
<!DOCTYPE html>
<html lang="en" data-theme="dark">
<head>
<meta charset="UTF-8">
<!--!
@file index.html
@description EasyTrace5000 Landing Page
@author Eltryus - Ricardo Marques
@copyright 2025-2026 Eltryus - Ricardo Marques
@see {@link https://github.com/RicardoJCMarques/EasyTrace5000}
@license AGPL-3.0-or-later
-->
<!--
EasyTrace5000 - Advanced PCB Isolation CAM Workspace
Copyright (C) 2025-2026 Eltryus
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
-->
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover">
<title>Eltryus CAM Suite | Free Browser-Based Manufacturing Tools</title>
<meta name="description" content="A suite of free, open-source CAM tools running directly in your browser. Features EasyTrace5000 for PCB milling, and upcoming 2.5D routing tools.">
<meta name="keywords" content="CAM Suite, PCB CAM, CNC Router software, browser CAM tool, open source CAM, G-code generator">
<meta name="author" content="Eltryus">
<meta name="robots" content="index, follow">
<meta name="theme-color" content="#1a1a1a">
<link rel="canonical" href="https://cam.eltryus.design/">
<meta property="og:type" content="website">
<meta property="og:url" content="https://cam.eltryus.design/">
<meta property="og:title" content="Eltryus CAM Suite | Free Browser-Based Manufacturing Tools">
<meta property="og:site_name" content="Eltryus">
<meta property="og:description" content="Free, open-source, client-side CAM software for makers. Featuring EasyTrace5000 for PCB isolation routing and upcoming 2.5D woodworking tools.">
<meta property="og:image" content="https://cam.eltryus.design/images/social-preview.jpg">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<meta property="og:locale" content="en_US">
<link rel="icon" type="image/png" href="images/favicon/favicon-96x96.png" sizes="96x96">
<link rel="icon" type="image/svg+xml" href="images/favicon/favicon.svg">
<link rel="shortcut icon" href="images/favicon/favicon.ico">
<link rel="apple-touch-icon" sizes="180x180" href="images/favicon/apple-touch-icon.png">
<link rel="manifest" href="images/favicon/site.webmanifest">
<link rel="preload" as="image" href="images/EasyTrace5000_workspace.webp" type="image/webp" fetchpriority="high">
<link rel="stylesheet" href="css/base.css">
<link rel="stylesheet" href="css/components.css">
<link rel="stylesheet" href="css/theme.css">
<link rel="stylesheet" href="css/doc.css">
<script type="application/ld+json">
[
{
"@context": "https://schema.org",
"@type": "WebApplication",
"name": "Eltryus CAM Suite",
"url": "https://cam.eltryus.design/",
"operatingSystem": "Any (Browser-based)",
"applicationCategory": "DeveloperApplication",
"applicationSubCategory": "CAM Software",
"offers": {
"@type": "Offer",
"price": "0",
"priceCurrency": "EUR",
"availability": "https://schema.org/InStock"
},
"description": "A suite of free, open-source, browser-based CAM tools. Features EasyTrace5000 for generating CNC and Laser files for PCB fabrication and upcoming 2.5D routing software.",
"hasPart": {
"@type": "WebApplication",
"name": "EasyTrace5000 Workspace",
"url": "https://cam.eltryus.design/easytrace5000/",
"description": "Advanced PCB CAM tool for isolation routing and laser processing."
},
"potentialAction": [
{
"@type": "ViewAction",
"target": "https://cam.eltryus.design/easytrace5000/",
"name": "Launch EasyTrace5000"
},
{
"@type": "ViewAction",
"target": "https://cam.eltryus.design/easytrace5000/doc/",
"name": "Read Documentation"
},
{
"@type": "DonateAction",
"target": "https://ko-fi.com/eltryus",
"name": "Support Development"
}
],
"author": {
"@type": "Organization",
"name": "Eltryus",
"url": "https://www.eltryus.design",
"logo": "https://www.eltryus.design/images/logo.png"
},
"screenshot": {
"@type": "ImageObject",
"url": "https://cam.eltryus.design/images/social-preview.jpg",
"caption": "Eltryus CAM Suite tools"
},
"isAccessibleForFree": true,
"browserRequirements": "Requires JavaScript and WebAssembly support"
},
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "Eltryus CAM Suite",
"item": "https://cam.eltryus.design/"
}
]
}
]
</script>
</head>
<body>
<!-- Skip link for keyboard accessibility -->
<a href="#main-content" class="skip-link">Skip to Main Content</a>
<!-- Header — matches doc pages -->
<header class="doc-header">
<div class="doc-brand">
<a href="/" aria-label="Eltryus CAM Suite Homepage">Eltryus CAM Suite</a>
</div>
<button class="doc-menu-toggle" aria-label="Toggle Navigation Menu" aria-expanded="false">
<svg class="icon-menu" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
<line x1="3" y1="12" x2="21" y2="12"></line>
<line x1="3" y1="6" x2="21" y2="6"></line>
<line x1="3" y1="18" x2="21" y2="18"></line>
</svg>
<svg class="icon-close" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
<line x1="18" y1="6" x2="6" y2="18"></line>
<line x1="6" y1="6" x2="18" y2="18"></line>
</svg>
</button>
<nav class="doc-nav" aria-label="Main Navigation">
<a href="/easytrace5000/" draggable="false" aria-label="Launch the Application">Open EasyTrace5000</a>
<span class="separator" aria-hidden="true"></span>
<a href="easytrace5000/doc/" draggable="false" aria-label="Documentation">Docs</a>
<a href="easytrace5000/doc/cnc" draggable="false" aria-label="CNC Milling Guide">CNC Guide</a>
<a href="easytrace5000/doc/laser" draggable="false" aria-label="Laser Processing Guide">Laser Guide</a>
<a href="easytrace5000/doc/accessibility" draggable="false" aria-label="Accessibility Statement">Accessibility</a>
<span class="separator" aria-hidden="true"></span>
<a href="https://github.com/RicardoJCMarques/EasyTrace5000" target="_blank" draggable="false" aria-label="GitHub Repository (opens in a new tab)">GitHub</a>
<button class="theme-toggle" id="theme-toggle" title="Toggle Theme" aria-label="Toggle between light and dark theme">
<svg class="sun-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" aria-hidden="true"><circle cx="12" cy="12" r="5"></circle><line x1="12" y1="1" x2="12" y2="3"></line><line x1="12" y1="21" x2="12" y2="23"></line><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line><line x1="1" y1="12" x2="3" y2="12"></line><line x1="21" y1="12" x2="23" y2="12"></line><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line></svg>
<svg class="moon-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" aria-hidden="true"><path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path></svg>
</button>
</nav>
</header>
<div class="doc-wrapper">
<main id="main-content" class="doc-main doc-main--wide">
<!-- Hero -->
<section class="hero">
<h1>Browser-Based CAM Tools for Makers</h1>
<p class="tagline">Free, open-source manufacturing software that runs entirely in your browser. From PCB isolation routing to 2.5D woodworking—no cloud, no accounts, no installations.</p>
</section>
<section id="suite-tools">
<div class="pipeline-grid" style="margin-top: -2rem; margin-bottom: 4rem;">
<a href="easytrace5000/" class="pipeline-card pipeline-card--active" draggable="false" aria-label="Launch EasyTrace5000 Workspace">
<h3>
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" aria-hidden="true">
<rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect>
<line x1="9" y1="3" x2="9" y2="21"></line>
<circle cx="14" cy="9" r="2"></circle>
<path d="M14 11v10"></path>
</svg>
EasyTrace5000
<span class="doc-badge doc-badge--stable">Live</span>
</h3>
<p>Advanced PCB CAM. Convert Gerber, Excellon, and SVG files into CNC G-Code or Laser compatible files. Client-side replacement for FlatCAM.</p>
<span class="btn btn--primary btn--block" aria-hidden="true">Launch EasyTrace5000 Workspace</span>
</a>
<div class="pipeline-card pipeline-card--dev" style="opacity: 0.8; cursor: default;">
<h3>
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" aria-hidden="true">
<path d="M20 14.66V20a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h5.34"></path>
<polygon points="18 2 22 6 12 16 8 16 8 12 18 2"></polygon>
</svg>
3D Router CAM
<span class="doc-badge doc-badge--dev">Eventually</span>
</h3>
<p>A CAM tool for woodworking, furniture/sign making and 3D reliefs.</p>
<span class="btn btn--secondary btn--block" aria-hidden="true" style="pointer-events: none;">Maybe, Kinda, Sorta</span>
</div>
</div>
</section>
<!-- What is EasyTrace5000 -->
<section id="about">
<h2>EasyTrace5000 PCB CAM Tool</h2>
<p>EasyTrace5000 is a free, open-source CAM (Computer-Aided Manufacturing) tool purpose-built for PCB prototyping. It takes the standard fabrication files your EDA software exports — Gerber RS-274X copper layers, Excellon drill files, and SVG outlines — and generates the G-code your CNC router needs to physically mill the board.</p>
<figure>
<img src="images/EasyTrace5000_workspace.webp" width="1152" height="648" alt="EasyTrace5000 Workspace">
<figcaption>The EasyTrace5000 workspace with loaded PCB geometry</figcaption>
</figure>
<p>The entire application runs client-side in your browser using WebAssembly-powered geometry processing. Your board files never leave your machine — there are no cloud servers, no accounts, and no subscriptions. Open the workspace, drop your files in, configure your tool and machine parameters, and export ready-to-run G-code.</p>
<p>EasyTrace5000 has been developed and tested with files from KiCad and EasyEDA. It supports GRBL-based CNC controllers out of the box, with experimental post-processors for GrblHAL, Marlin, LinuxCNC, Mach3, and Roland RML machines.</p>
</section>
<!-- Manufacturing Workflows -->
<section id="workflows">
<h2>Supported Manufacturing Workflows</h2>
<p>EasyTrace5000 supports distinct processing pipelines tailored to your equipment. Read the documentation guides below to learn how to prepare your files and configure the workspace for your specific machine.</p>
<div class="pipeline-grid">
<a href="easytrace5000/doc/cnc" class="pipeline-card pipeline-card--active" draggable="false" aria-label="Read the CNC Milling Guide">
<h3>
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" aria-hidden="true">
<circle cx="12" cy="12" r="3"/>
<path d="M12 2v4M12 18v4M4.93 4.93l2.83 2.83M16.24 16.24l2.83 2.83M2 12h4M18 12h4M4.93 19.07l2.83-2.83M16.24 7.76l2.83-2.83"/>
</svg>
CNC Milling
<span class="doc-badge doc-badge--stable">Stable</span>
</h3>
<p>Learn how to generate G-code for multi-pass isolation routing, intelligent drill strategy selection (peck vs. helix milling), copper clearing pocketing, and board cutout with holding tabs.</p>
<span class="btn btn--primary btn--block" aria-hidden="true">Read CNC Guide →</span>
</a>
<a href="easytrace5000/doc/laser" class="pipeline-card pipeline-card--dev" draggable="false" aria-label="Read the Laser Processing Guide">
<h3>
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" aria-hidden="true">
<path d="M12 2v8"/><path d="M12 14v8"/><circle cx="12" cy="12" r="2"/>
<path d="M4.93 4.93l4.24 4.24"/><path d="M14.83 14.83l4.24 4.24"/>
</svg>
Laser Processing
<span class="doc-badge doc-badge--dev">Beta</span>
</h3>
<p>Discover how to export vector (SVG) and raster (PNG) files for copper ablation and solder paste stencils. Features dynamic offsetting, cross-hatching, and solid polygon fills.</p>
<span class="btn btn--secondary btn--block" aria-hidden="true">Read Laser Guide →</span>
</a>
</div>
</section>
<!-- Key Features -->
<section>
<h2>Key Features & Architecture</h2>
<div class="feature-grid">
<div class="feature-card">
<h3>Multi-Operation Workflow</h3>
<p>A non-destructive workflow supporting multi-pass trace isolation, internal copper clearing, and board cutouts with optional holding tabs.</p>
</div>
<div class="feature-card">
<h3>Advanced Geometry Engine</h3>
<p>Analytic parsing of Gerber RS-274X, Excellon, and full SVG paths (including Béziers). Powered by a WebAssembly compilation of Clipper2 for high-performance boolean operations.</p>
</div>
<div class="feature-card">
<h3>True Arc Reconstruction</h3>
<p>Reconstructs true arcs (G2/G3) from polygonized post-Clipper2 data. This prevents the machine stuttering and poor surface finishes inherent to highly segmented toolpaths.</p>
</div>
<div class="feature-card">
<h3>Smart Drill Strategy</h3>
<p>Analyzes hole and slot diameters against your selected tool size to dynamically generate standard peck drilling or helical milling paths.</p>
</div>
<div class="feature-card">
<h3>Laser Geometry Engine</h3>
<p>Dedicated laser pipeline generating physical kerf-compensated paths. Supports concentric offsets, alternating zig-zag hatching for ablation, and solid polygon fills for raster rendering.</p>
</div>
<div class="feature-card">
<h3>100% Client-Side Privacy</h3>
<p>Your proprietary board files never leave your computer. EasyTrace5000 runs entirely in the browser memory with no cloud processing, no accounts, and broad post-processor support (GRBL, Marlin, LinuxCNC).</p>
</div>
</div>
</section>
<!-- Supported File Formats -->
<section id="formats">
<h2>Supported File Formats</h2>
<p>EasyTrace5000 reads the standard fabrication file formats exported by PCB design tools like KiCad, EasyEDA, Altium, Eagle, and others.</p>
<div class="feature-grid">
<div class="feature-card">
<h3>Gerber (RS-274X)</h3>
<p>Standard copper layer and board outline files. Accepts <code>.gbr</code>, <code>.ger</code>, <code>.gtl</code>, <code>.gbl</code>, <code>.gts</code>, <code>.gbs</code>, <code>.gko</code>, <code>.gm1</code> extensions. Protel naming conventions are recognized for automatic operation assignment on drag-and-drop.</p>
</div>
<div class="feature-card">
<h3>Excellon Drill</h3>
<p>Drill files with hole positions, sizes, and slot definitions. Supports <code>.drl</code>, <code>.xln</code>, <code>.txt</code>, <code>.drill</code>, <code>.exc</code> extensions. The system automatically analyzes each hole against your tool diameter and selects the optimal drilling strategy.</p>
</div>
<div class="feature-card">
<h3>SVG (Scalable Vector Graphics)</h3>
<p>Full SVG path support including lines, arcs, quadratic and cubic Bézier curves. Useful for custom board outlines, decorative traces, or designs created outside traditional EDA tools.</p>
</div>
</div>
</section>
<!-- How it works — brief workflow -->
<section id="how-it-works">
<h2>How It Works</h2>
<p>A non-destructive, browser-based pipeline from design file to machine instructions.</p>
<div class="step-grid">
<div class="step-card">
<h3>1 - Load & Position</h3>
<p>Drag and drop your standard fabrication files (<strong>Gerber, Excellon, or SVG</strong>) directly into the browser. Set your machine's physical origin, adjust board rotation, and configure global settings like tool dimensions or laser kerf.</p>
</div>
<div class="step-card">
<h3>2 - Generate Geometry</h3>
<p>The WebAssembly-powered geometry engine processes your files locally. Apply dynamic multi-pass offsets for trace isolation, calculate smart peck/mill strategies for drilling, or generate cross-hatch fills for laser ablation.</p>
</div>
<div class="step-card">
<h3>3 - Preview & Export</h3>
<p>Choose your target pipeline:</p>
<ul class="sub-feature-list">
<li><strong>CNC:</strong> Simulate 3D tool reach, set feeds and speeds, and export optimized <strong>G-code</strong>.</li>
<li><strong>Laser:</strong> Assign layer colors, fuse colinear hatch segments, and export high-precision <strong>SVG or PNG</strong> files.</li>
</ul>
</div>
</div>
</section>
<!-- Sponsors -->
<section id="support" class="sponsors-section">
<h2>Support EasyTrace5000</h2>
<p>This project is free and open-source (AGPLv3). Your support helps cover development time, hosting costs, and the test hardware needed for upcoming features like the laser processing pipeline.</p>
<div class="sponsor-grid">
<a href="https://ko-fi.com/eltryus" target="_blank" class="sponsor-slot" title="Support on Ko-fi" draggable="false" aria-label="Support development on Ko-fi (opens in a new tab)">
<div class="slot-content">
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true">
<path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z"/>
</svg>
<span>Support on Ko-fi</span>
</div>
</a>
<a href="mailto:sponsor@eltryus.design" class="sponsor-slot" title="Become a Sponsor" draggable="false" aria-label="Contact us about sponsorship">
<div class="slot-content">
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" aria-hidden="true">
<path d="M12 5v14M5 12h14"/>
</svg>
<span>Your Logo Here</span>
</div>
</a>
<a href="mailto:sponsor@eltryus.design" class="sponsor-slot" title="Become a Sponsor" draggable="false" aria-label="Contact us about sponsorship">
<div class="slot-content">
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" aria-hidden="true">
<path d="M12 5v14M5 12h14"/>
</svg>
<span>Your Logo Here</span>
</div>
</a>
</div>
<p><a href="mailto:sponsor@eltryus.design" draggable="false">Become a sponsor →</a></p>
</section>
</main>
<!-- Footer -->
<footer class="doc-footer" aria-label="Footer">
<p>
<a href="https://github.com/RicardoJCMarques/EasyTrace5000/blob/main/CHANGELOG.md" title="Version" draggable="false">Version 1.3.2</a> |
<a href="easytrace5000/" draggable="false">Open EasyTrace5000</a> |
<a href="easytrace5000/doc/" draggable="false">EasyTrace5000 Documentation</a> |
<a href="https://github.com/RicardoJCMarques/EasyTrace5000" target="_blank" draggable="false" aria-label="GitHub Repository (opens in a new tab)">GitHub</a> |
<a href="/LICENSE" target="_blank" draggable="false" aria-label="AGPLv3 License (opens in a new tab)">AGPLv3 Licensed</a>
</p>
</footer>
</div>
<!-- Theme Loader -->
<script defer src="themes/theme-loader.js"></script>
<script>
document.addEventListener('DOMContentLoaded', () => {
// Theme toggle
const themeBtn = document.getElementById('theme-toggle');
if (themeBtn && window.ThemeLoader) {
themeBtn.addEventListener('click', () => window.ThemeLoader.toggleTheme());
}
// Mobile menu toggle
const menuBtn = document.querySelector('.doc-menu-toggle');
const nav = document.querySelector('.doc-nav');
if (menuBtn && nav) {
menuBtn.addEventListener('click', () => {
const isExpanded = menuBtn.getAttribute('aria-expanded') === 'true';
menuBtn.setAttribute('aria-expanded', !isExpanded);
nav.classList.toggle('is-open');
});
}
});
</script>
</body>
</html>