cyclecad 1.3.3 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +129 -122
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,198 +1,205 @@
|
|
|
1
1
|
<div align="center">
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
<img src="https://raw.githubusercontent.com/vvlars-cmd/cyclecad/main/screenshot.png" alt="cycleCAD" width="720">
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
<h1>cycleCAD</h1>
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
No install. No login. Free forever
|
|
7
|
+
<p><strong>Open-source browser CAD with a B-Rep kernel.</strong><br>
|
|
8
|
+
Real solid modeling. Real fillets. Real booleans. No install. No login. Free forever.</p>
|
|
9
9
|
|
|
10
|
-
<a href="https://www.npmjs.com/package/cyclecad"><img src="https://img.shields.io/npm/v/cyclecad?style=
|
|
11
|
-
<a href="https://
|
|
12
|
-
<a href="https://
|
|
13
|
-
<a href="https://
|
|
10
|
+
<a href="https://www.npmjs.com/package/cyclecad"><img src="https://img.shields.io/npm/v/cyclecad?style=flat-square&logo=npm&color=CB3837" alt="npm"></a>
|
|
11
|
+
<a href="https://www.npmjs.com/package/cyclecad"><img src="https://img.shields.io/npm/dw/cyclecad?style=flat-square&color=CB3837" alt="downloads"></a>
|
|
12
|
+
<a href="https://github.com/vvlars-cmd/cyclecad/stargazers"><img src="https://img.shields.io/github/stars/vvlars-cmd/cyclecad?style=flat-square&logo=github" alt="stars"></a>
|
|
13
|
+
<a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/license-MIT-blue?style=flat-square" alt="MIT"></a>
|
|
14
14
|
|
|
15
|
-
<br>
|
|
15
|
+
<br><br>
|
|
16
16
|
|
|
17
|
-
<a href="https://cyclecad.com/app/">
|
|
18
|
-
<img src="https://raw.githubusercontent.com/vvlars-cmd/cyclecad/main/screenshot.png" alt="cycleCAD — Browser-based 3D CAD with AI Copilot" width="720">
|
|
19
|
-
</a>
|
|
17
|
+
<a href="https://cyclecad.com/app/"><strong>Open App</strong></a> · <a href="https://github.com/vvlars-cmd/cyclecad">Source</a> · <a href="https://cyclecad.com/docs">Docs</a> · <a href="https://www.npmjs.com/package/cyclecad">npm</a>
|
|
20
18
|
|
|
21
|
-
|
|
19
|
+
</div>
|
|
20
|
+
|
|
21
|
+
---
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
## What is this
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
cycleCAD is a parametric 3D CAD modeler that runs entirely in the browser. It uses OpenCascade.js (WASM) as a real B-Rep solid modeling kernel — the same geometry engine behind FreeCAD and KiCad. You get actual solid geometry, not mesh approximations.
|
|
26
26
|
|
|
27
|
-
|
|
27
|
+
Type `motor mount plate with 4 bolt holes` into the AI copilot and get a real 3D solid in seconds.
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
> create a motor mount plate 100mm wide, 80mm tall
|
|
31
|
+
✓ solid rectangular prism
|
|
32
|
+
|
|
33
|
+
> add 4 bolt holes in corners, 10mm diameter
|
|
34
|
+
✓ holes cut through plate
|
|
35
|
+
|
|
36
|
+
> fillet all edges 2mm
|
|
37
|
+
✓ edges rounded — ready to manufacture
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
---
|
|
28
41
|
|
|
29
|
-
##
|
|
42
|
+
## How it compares
|
|
30
43
|
|
|
31
|
-
| |
|
|
44
|
+
| | cycleCAD | OnShape | Fusion 360 | FreeCAD |
|
|
32
45
|
|:--|:--|:--|:--|:--|
|
|
33
|
-
|
|
|
34
|
-
|
|
|
35
|
-
|
|
|
36
|
-
|
|
|
37
|
-
|
|
|
38
|
-
|
|
|
39
|
-
|
|
|
40
|
-
|
|
|
46
|
+
| Runs in browser | Yes | Cloud | Desktop | Desktop |
|
|
47
|
+
| Cost | Free | $1,500/yr | $545/yr | Free |
|
|
48
|
+
| Text-to-CAD | Yes | No | No | No |
|
|
49
|
+
| B-Rep kernel | OpenCascade.js | Parasolid | Parasolid | OpenCascade |
|
|
50
|
+
| Multiplayer | WebRTC P2P | Paid | No | No |
|
|
51
|
+
| Inventor files | .ipt/.iam native | No | Yes | No |
|
|
52
|
+
| Open source | MIT | No | No | LGPL |
|
|
53
|
+
| Mobile viewer | Yes | No | No | No |
|
|
41
54
|
|
|
42
|
-
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## Get started
|
|
43
58
|
|
|
44
|
-
|
|
59
|
+
**Browser** — open [cyclecad.com/app](https://cyclecad.com/app/) and start designing.
|
|
45
60
|
|
|
46
|
-
**
|
|
47
|
-
Open [**cyclecad.com/app**](https://cyclecad.com/app/) and start designing.
|
|
61
|
+
**npm:**
|
|
48
62
|
|
|
49
|
-
**Option 2 — Local**:
|
|
50
63
|
```bash
|
|
51
|
-
npm install -g cyclecad
|
|
64
|
+
npm install -g cyclecad
|
|
65
|
+
cyclecad
|
|
52
66
|
```
|
|
53
67
|
|
|
54
|
-
**
|
|
68
|
+
**Clone:**
|
|
69
|
+
|
|
55
70
|
```bash
|
|
56
71
|
git clone https://github.com/vvlars-cmd/cyclecad.git
|
|
57
72
|
cd cyclecad && npm run dev
|
|
58
73
|
```
|
|
59
74
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
## Text-to-CAD
|
|
75
|
+
---
|
|
63
76
|
|
|
64
|
-
|
|
77
|
+
## Architecture
|
|
65
78
|
|
|
66
79
|
```
|
|
67
|
-
|
|
68
|
-
|
|
80
|
+
┌──────────────────────────────────────────────────────┐
|
|
81
|
+
│ cycleCAD — Browser Runtime │
|
|
82
|
+
│ │
|
|
83
|
+
│ ┌─────────────────────────────────────────────────┐ │
|
|
84
|
+
│ │ UI Layer — Toolbar · Tree · Properties · Chat │ │
|
|
85
|
+
│ └─────────────────────┬───────────────────────────┘ │
|
|
86
|
+
│ │ │
|
|
87
|
+
│ ┌─────────────────────▼───────────────────────────┐ │
|
|
88
|
+
│ │ LEGO Microkernel │ │
|
|
89
|
+
│ │ Module Registry · Event Bus · Command System │ │
|
|
90
|
+
│ │ Memory Manager · Shared State · Hot-Swap │ │
|
|
91
|
+
│ └──┬──────────┬──────────┬──────────┬─────────────┘ │
|
|
92
|
+
│ │ │ │ │ │
|
|
93
|
+
│ ┌──▼───┐ ┌──▼───┐ ┌──▼───┐ ┌──▼────────────┐ │
|
|
94
|
+
│ │Sketch│ │ Ops │ │B-Rep │ │ Services │ │
|
|
95
|
+
│ │Engine│ │extr. │ │Kernel│ │ AI · Multi · │ │
|
|
96
|
+
│ │2D │→ │rev. │→ │OCCT │ │ Marketplace │ │
|
|
97
|
+
│ │const.│ │bool. │ │WASM │ │ Simulation │ │
|
|
98
|
+
│ └──────┘ └──────┘ └──────┘ └───────────────┘ │
|
|
99
|
+
│ │
|
|
100
|
+
│ ┌──────────────────────────────────────────────────┐│
|
|
101
|
+
│ │ I/O — STEP · Inventor · STL · OBJ · glTF · DXF ││
|
|
102
|
+
│ └──────────────────────────────────────────────────┘│
|
|
103
|
+
└──────────────────────────────────────────────────────┘
|
|
104
|
+
```
|
|
69
105
|
|
|
70
|
-
|
|
71
|
-
[holes cut through the plate at each corner]
|
|
106
|
+
The kernel is ~300 lines. Everything else is a LEGO module that loads on demand. The B-Rep kernel (50MB WASM) only downloads when you need solid geometry. Modules can be hot-swapped at runtime.
|
|
72
107
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
## Features
|
|
76
111
|
|
|
77
|
-
|
|
112
|
+
**Modeling** — Parametric sketcher with 17 tools (line, rect, circle, arc, ellipse, spline, polygon, slot, trim, extend, offset, mirror, fillet, chamfer, construction, dimension, pattern). 12 constraint types. Extrude, revolve, sweep, loft, shell, fillet, chamfer, boolean, pattern, mirror, draft, hole, thread, rib.
|
|
78
113
|
|
|
79
|
-
|
|
114
|
+
**B-Rep Kernel** — Real solid geometry via OpenCascade.js WASM. True edge fillets and chamfers (not mesh approximations). Real boolean operations. STEP import/export. Mass properties with center of gravity. Edge and face selection.
|
|
80
115
|
|
|
81
|
-
|
|
116
|
+
**Drawing** — 2D engineering drawing workspace with orthographic views, section views, detail views. Linear, angular, radial, diameter dimensions. GD&T symbols, surface finish, weld symbols, balloons, title blocks, BOM tables. Export to PDF, DXF, SVG.
|
|
82
117
|
|
|
83
|
-
|
|
84
|
-
graph TB
|
|
85
|
-
subgraph Browser["cycleCAD — Browser Runtime"]
|
|
86
|
-
direction TB
|
|
87
|
-
UI["UI Layer<br><i>Toolbar · Tree · Properties · Chat</i>"]
|
|
88
|
-
|
|
89
|
-
subgraph Engine["CAD Engine"]
|
|
90
|
-
SK["Sketch Engine<br><small>2D constraints solver</small>"]
|
|
91
|
-
OP["Operations<br><small>extrude · revolve · boolean</small>"]
|
|
92
|
-
BR["B-Rep Kernel<br><small>OpenCascade.js WASM</small>"]
|
|
93
|
-
RN["Renderer<br><small>Three.js r170 · WebGL</small>"]
|
|
94
|
-
SK --> OP --> BR --> RN
|
|
95
|
-
end
|
|
96
|
-
|
|
97
|
-
subgraph Services["Services"]
|
|
98
|
-
direction LR
|
|
99
|
-
AI["AI Copilot<br><small>Gemini · Groq · Offline NLP</small>"]
|
|
100
|
-
CO["Multiplayer<br><small>WebRTC · CRDT</small>"]
|
|
101
|
-
MK["Marketplace<br><small>Parts · Templates</small>"]
|
|
102
|
-
end
|
|
103
|
-
|
|
104
|
-
subgraph IO["Integration"]
|
|
105
|
-
direction LR
|
|
106
|
-
IM["Import<br><small>STEP · Inventor · STL</small>"]
|
|
107
|
-
EX["Export<br><small>STL · OBJ · glTF · DXF</small>"]
|
|
108
|
-
ST["Storage<br><small>IndexedDB · GitHub</small>"]
|
|
109
|
-
end
|
|
110
|
-
|
|
111
|
-
UI --> Engine
|
|
112
|
-
UI --> Services
|
|
113
|
-
Engine --> IO
|
|
114
|
-
end
|
|
115
|
-
|
|
116
|
-
style Browser fill:#0d1117,stroke:#30363d,color:#c9d1d9
|
|
117
|
-
style Engine fill:#161b22,stroke:#58a6ff,color:#c9d1d9
|
|
118
|
-
style Services fill:#161b22,stroke:#3fb950,color:#c9d1d9
|
|
119
|
-
style IO fill:#161b22,stroke:#d29922,color:#c9d1d9
|
|
120
|
-
style UI fill:#1f6feb,stroke:#58a6ff,color:#fff
|
|
121
|
-
style SK fill:#21262d,stroke:#58a6ff,color:#c9d1d9
|
|
122
|
-
style OP fill:#21262d,stroke:#58a6ff,color:#c9d1d9
|
|
123
|
-
style BR fill:#21262d,stroke:#58a6ff,color:#c9d1d9
|
|
124
|
-
style RN fill:#21262d,stroke:#58a6ff,color:#c9d1d9
|
|
125
|
-
style AI fill:#21262d,stroke:#3fb950,color:#c9d1d9
|
|
126
|
-
style CO fill:#21262d,stroke:#3fb950,color:#c9d1d9
|
|
127
|
-
style MK fill:#21262d,stroke:#3fb950,color:#c9d1d9
|
|
128
|
-
style IM fill:#21262d,stroke:#d29922,color:#c9d1d9
|
|
129
|
-
style EX fill:#21262d,stroke:#d29922,color:#c9d1d9
|
|
130
|
-
style ST fill:#21262d,stroke:#d29922,color:#c9d1d9
|
|
131
|
-
```
|
|
118
|
+
**Simulation** — Static stress analysis (FEA), thermal analysis, modal frequency analysis, buckling. Material library (steel, aluminum, ABS, brass, titanium, nylon). Color-coded results visualization with safety factor plots.
|
|
132
119
|
|
|
133
|
-
**
|
|
120
|
+
**Assembly** — 7 joint types (rigid, revolute, slider, cylindrical, pin-slot, planar, ball). Joint limits and animation. Interference detection. Exploded views. Motion study. Auto-generated BOM.
|
|
134
121
|
|
|
135
|
-
|
|
122
|
+
**AI** — Text-to-CAD with natural language. Part identification from geometry. Manufacturing cost estimation. Auto-generated assembly instructions. Maintenance scheduling. Smart BOM with McMaster-Carr links. Works offline.
|
|
136
123
|
|
|
137
|
-
|
|
124
|
+
**Export** — STL (ASCII + binary), OBJ, glTF 2.0, STEP, DXF, PDF. 3D print slicer integration. G-code preview.
|
|
125
|
+
|
|
126
|
+
**Platform** — Chrome, Safari, Firefox, Edge. Offline via IndexedDB. Mobile touch viewer. 50+ keyboard shortcuts. Multi-language (EN/DE/FR/ES/IT/NL).
|
|
127
|
+
|
|
128
|
+
---
|
|
138
129
|
|
|
139
|
-
|
|
130
|
+
## Agent API
|
|
140
131
|
|
|
141
|
-
|
|
132
|
+
cycleCAD is built for AI agents, not just humans. 55 commands across 10 namespaces via JSON-RPC.
|
|
142
133
|
|
|
143
|
-
|
|
134
|
+
```javascript
|
|
135
|
+
// In browser
|
|
136
|
+
await kernel.exec('ops.box', { width: 100, height: 50, depth: 30 });
|
|
137
|
+
await kernel.exec('ops.fillet', { edges: [0, 1, 2], radius: 5 });
|
|
138
|
+
await kernel.exec('step.export', { filename: 'part.step' });
|
|
144
139
|
|
|
145
|
-
|
|
140
|
+
// Via MCP server
|
|
141
|
+
npx cyclecad-mcp # exposes all 55 commands as MCP tools
|
|
146
142
|
|
|
147
|
-
|
|
143
|
+
// Via REST API
|
|
144
|
+
curl -X POST http://localhost:3001/api/exec \
|
|
145
|
+
-d '{"command": "ops.box", "params": {"width": 100}}'
|
|
148
146
|
|
|
149
|
-
|
|
147
|
+
// Via CLI
|
|
148
|
+
cyclecad ops.box --width 100 --height 50 --depth 30
|
|
149
|
+
```
|
|
150
150
|
|
|
151
|
-
|
|
151
|
+
---
|
|
152
152
|
|
|
153
|
-
|
|
153
|
+
## Multiplayer
|
|
154
154
|
|
|
155
155
|
```javascript
|
|
156
156
|
const room = await cyclecad.createRoom(); // "ABC123"
|
|
157
157
|
await cyclecad.joinRoom("ABC123"); // teammate joins
|
|
158
|
-
// See each other's cursors, watch live edits, chat in-viewport
|
|
159
158
|
```
|
|
160
159
|
|
|
161
|
-
Peer-to-peer via WebRTC. No server
|
|
160
|
+
Peer-to-peer via WebRTC. No server. CRDT sync.
|
|
162
161
|
|
|
163
|
-
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
## Docker
|
|
165
|
+
|
|
166
|
+
```bash
|
|
167
|
+
docker compose up # starts cycleCAD + STEP converter + cycleWASH viewer
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
Three services: cycleCAD on `:8080`, STEP converter on `:8787`, ExplodeView on `:3000`.
|
|
171
|
+
|
|
172
|
+
---
|
|
164
173
|
|
|
165
174
|
## Parts Library
|
|
166
175
|
|
|
167
|
-
35+ built-in parametric parts
|
|
176
|
+
35+ built-in parametric parts. Community marketplace with 70-90% creator royalties.
|
|
168
177
|
|
|
169
178
|
```bash
|
|
170
179
|
cyclecad install bearing-6205
|
|
171
|
-
cyclecad install fastener-M5-hex-socket
|
|
172
180
|
cyclecad install motor-nema23
|
|
173
181
|
```
|
|
174
182
|
|
|
175
|
-
|
|
183
|
+
---
|
|
176
184
|
|
|
177
185
|
## Contributing
|
|
178
186
|
|
|
179
187
|
```bash
|
|
180
188
|
git clone https://github.com/vvlars-cmd/cyclecad.git
|
|
181
|
-
cd cyclecad && npm run dev
|
|
189
|
+
cd cyclecad && npm run dev
|
|
182
190
|
```
|
|
183
191
|
|
|
184
|
-
Pick
|
|
192
|
+
Pick a `good-first-issue`, make changes, open a PR.
|
|
185
193
|
|
|
186
|
-
|
|
194
|
+
---
|
|
187
195
|
|
|
188
196
|
## License
|
|
189
197
|
|
|
190
|
-
MIT
|
|
191
|
-
|
|
192
|
-
---
|
|
198
|
+
MIT © [Sachin Kumar](https://github.com/vvlars-cmd)
|
|
193
199
|
|
|
194
200
|
<div align="center">
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
201
|
+
<br>
|
|
202
|
+
<a href="https://cyclecad.com/app/"><strong>Open cycleCAD</strong></a>
|
|
203
|
+
<br><br>
|
|
204
|
+
<sub>Built for <a href="https://cyclewash.com">cycleWASH</a> — designing a real production machine with 400 parts.</sub>
|
|
198
205
|
</div>
|
package/package.json
CHANGED