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.
Files changed (2) hide show
  1. package/README.md +129 -122
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -1,198 +1,205 @@
1
1
  <div align="center">
2
2
 
3
- # cycleCAD
3
+ <img src="https://raw.githubusercontent.com/vvlars-cmd/cyclecad/main/screenshot.png" alt="cycleCAD" width="720">
4
4
 
5
- **The open-source browser CAD that understands English.**
5
+ <h1>cycleCAD</h1>
6
6
 
7
- Type `motor mount plate with 4 bolt holes` and get a real 3D solid in 5 seconds.
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=for-the-badge&logo=npm&logoColor=white&color=CB3837" alt="npm"></a>&nbsp;
11
- <a href="https://github.com/vvlars-cmd/cyclecad/stargazers"><img src="https://img.shields.io/github/stars/vvlars-cmd/cyclecad?style=for-the-badge&logo=github&color=181717" alt="Stars"></a>&nbsp;
12
- <a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/License-MIT-blue?style=for-the-badge" alt="MIT"></a>&nbsp;
13
- <a href="https://cyclecad.com/app/"><img src="https://img.shields.io/badge/Try_it_live-00C853?style=for-the-badge&logo=googlechrome&logoColor=white" alt="Try it"></a>
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
- <br>
19
+ </div>
20
+
21
+ ---
22
22
 
23
- <a href="https://cyclecad.com/app/"><b>Open App</b></a>&nbsp;&nbsp;&bull;&nbsp;&nbsp;<a href="https://github.com/vvlars-cmd/cyclecad">Source Code</a>&nbsp;&nbsp;&bull;&nbsp;&nbsp;<a href="https://cyclecad.com/docs">Docs</a>
23
+ ## What is this
24
24
 
25
- </div>
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
- <br>
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
- ## Why cycleCAD
42
+ ## How it compares
30
43
 
31
- | | **cycleCAD** | OnShape | Fusion 360 | FreeCAD |
44
+ | | cycleCAD | OnShape | Fusion 360 | FreeCAD |
32
45
  |:--|:--|:--|:--|:--|
33
- | **Runs in browser** | Yes, zero install | Cloud-dependent | Desktop app | Desktop app |
34
- | **Cost** | Free, MIT licensed | $1,500/yr | $545/yr | Free |
35
- | **Text-to-CAD** | Built-in AI copilot | | | |
36
- | **Multiplayer** | WebRTC peer-to-peer | Paid add-on | | |
37
- | **Inventor files** | Opens .ipt and .iam natively | | Yes | |
38
- | **B-rep kernel** | OpenCascade.js WASM | Parasolid | Parasolid | OpenCascade |
39
- | **Mobile** | Touch-optimized viewer | | | |
40
- | **Open source** | MIT | Proprietary | Proprietary | LGPL |
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
- <br>
55
+ ---
56
+
57
+ ## Get started
43
58
 
44
- ## Get Started in 30 Seconds
59
+ **Browser** open [cyclecad.com/app](https://cyclecad.com/app/) and start designing.
45
60
 
46
- **Option 1 — Browser** (no install):
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 && cyclecad
64
+ npm install -g cyclecad
65
+ cyclecad
52
66
  ```
53
67
 
54
- **Option 3 — Clone**:
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
- <br>
61
-
62
- ## Text-to-CAD
75
+ ---
63
76
 
64
- Talk to cycleCAD like you'd talk to a colleague.
77
+ ## Architecture
65
78
 
66
79
  ```
67
- > create a motor mount plate 100mm wide, 80mm tall
68
- [solid rectangular prism appears]
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
- > add 4 bolt holes in corners, 10mm diameter
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
- > fillet all edges 2mm
74
- [edges rounded — part is ready to manufacture]
75
- ```
108
+ ---
109
+
110
+ ## Features
76
111
 
77
- The AI understands shapes, features, patterns, materials, booleans, and constraints. It works offline too no API key required for basic geometry.
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
- <br>
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
- ## Architecture
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
- ```mermaid
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
- **Zero dependencies.** Core app is ~22KB gzipped. Three.js, OpenCascade WASM, and AI models load on demand from CDN.
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
- <br>
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
- ## Features
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
- **Modeling** Parametric sketcher with 12 constraint types, extrude, revolve, sweep, loft, shell, fillet, chamfer, boolean union/cut/intersect, linear/circular/mirror patterns, threads, draft angles.
130
+ ## Agent API
140
131
 
141
- **Analysis** Distance and angle measurement, mass properties, DFM checks, stress heatmap, clearance detection, assembly validation with scoring.
132
+ cycleCAD is built for AI agents, not just humans. 55 commands across 10 namespaces via JSON-RPC.
142
133
 
143
- **AI** — Text-to-CAD with natural language, part identification from geometry, manufacturing cost estimation, auto-generated rebuild guides, maintenance scheduling, smart BOM with McMaster-Carr links.
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
- **Export** STL (ASCII and binary), OBJ, glTF 2.0, STEP, DXF, PDF engineering drawings. Direct slicer integration for 3D printing. G-code preview for CNC.
140
+ // Via MCP server
141
+ npx cyclecad-mcp # exposes all 55 commands as MCP tools
146
142
 
147
- **Platform** Works in Chrome, Safari, Firefox, Edge. Offline via IndexedDB. Mobile touch viewer. Git-style version history. Embeddable 3D viewer widget. 50+ keyboard shortcuts.
143
+ // Via REST API
144
+ curl -X POST http://localhost:3001/api/exec \
145
+ -d '{"command": "ops.box", "params": {"width": 100}}'
148
146
 
149
- <br>
147
+ // Via CLI
148
+ cyclecad ops.box --width 100 --height 50 --depth 30
149
+ ```
150
150
 
151
- ## Multiplayer
151
+ ---
152
152
 
153
- Create a room, share the code, design together in real-time.
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 required. Conflict-free CRDT sync.
160
+ Peer-to-peer via WebRTC. No server. CRDT sync.
162
161
 
163
- <br>
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 (bearings, fasteners, motors, structural). Community marketplace for publishing, selling, and remixing designs with 7090% creator royalties.
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
- <br>
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 # opens on localhost:3000
189
+ cd cyclecad && npm run dev
182
190
  ```
183
191
 
184
- Pick an issue labeled `good-first-issue`, make your changes, open a PR with before/after screenshots. We especially need help with UI polish, AI improvements, mobile interactions, testing, and translations.
192
+ Pick a `good-first-issue`, make changes, open a PR.
185
193
 
186
- <br>
194
+ ---
187
195
 
188
196
  ## License
189
197
 
190
- MIT © [Sachin Kumar](https://github.com/vvlars-cmd) — free for any use, commercial or personal.
191
-
192
- ---
198
+ MIT &copy; [Sachin Kumar](https://github.com/vvlars-cmd)
193
199
 
194
200
  <div align="center">
195
- <a href="https://cyclecad.com/app/"><b>Open cycleCAD</b></a>
196
- <br><br>
197
- <sub>Built for <a href="https://cyclewash.com">cycleWASH</a> — a real production machine with 400+ parts.</sub>
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cyclecad",
3
- "version": "1.3.3",
3
+ "version": "2.0.1",
4
4
  "description": "Browser-based parametric 3D CAD modeler with AI-powered tools, native Inventor file parsing, and smart assembly management. No install required.",
5
5
  "main": "index.html",
6
6
  "bin": {