cyclecad 3.0.0 → 3.1.0

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 (66) hide show
  1. package/BILLING-IMPLEMENTATION-SUMMARY.md +425 -0
  2. package/BILLING-INDEX.md +293 -0
  3. package/BILLING-INTEGRATION-GUIDE.md +414 -0
  4. package/COLLABORATION-INDEX.md +440 -0
  5. package/COLLABORATION-SYSTEM-SUMMARY.md +548 -0
  6. package/DOCKER-BUILD-MANIFEST.txt +483 -0
  7. package/DOCKER-FILES-REFERENCE.md +440 -0
  8. package/DOCKER-INFRASTRUCTURE.md +475 -0
  9. package/DOCKER-README.md +435 -0
  10. package/Dockerfile +33 -55
  11. package/PWA-FILES-CREATED.txt +350 -0
  12. package/QUICK-START-TESTING.md +126 -0
  13. package/STEP-IMPORT-QUICKSTART.md +347 -0
  14. package/STEP-IMPORT-SYSTEM-SUMMARY.md +502 -0
  15. package/app/css/mobile.css +1074 -0
  16. package/app/icons/generate-icons.js +203 -0
  17. package/app/js/billing-ui.js +990 -0
  18. package/app/js/brep-kernel.js +933 -981
  19. package/app/js/collab-client.js +750 -0
  20. package/app/js/mobile-nav.js +623 -0
  21. package/app/js/mobile-toolbar.js +476 -0
  22. package/app/js/modules/billing-module.js +724 -0
  23. package/app/js/modules/step-module-enhanced.js +938 -0
  24. package/app/js/offline-manager.js +705 -0
  25. package/app/js/responsive-init.js +360 -0
  26. package/app/js/touch-handler.js +429 -0
  27. package/app/manifest.json +211 -0
  28. package/app/offline.html +508 -0
  29. package/app/sw.js +571 -0
  30. package/app/tests/billing-tests.html +779 -0
  31. package/app/tests/brep-tests.html +980 -0
  32. package/app/tests/collab-tests.html +743 -0
  33. package/app/tests/mobile-tests.html +1299 -0
  34. package/app/tests/pwa-tests.html +1134 -0
  35. package/app/tests/step-tests.html +1042 -0
  36. package/app/tests/test-agent-v3.html +719 -0
  37. package/docker-compose.yml +225 -0
  38. package/docs/BILLING-HELP.json +260 -0
  39. package/docs/BILLING-README.md +639 -0
  40. package/docs/BILLING-TUTORIAL.md +736 -0
  41. package/docs/BREP-HELP.json +326 -0
  42. package/docs/BREP-TUTORIAL.md +802 -0
  43. package/docs/COLLABORATION-HELP.json +228 -0
  44. package/docs/COLLABORATION-TUTORIAL.md +818 -0
  45. package/docs/DOCKER-HELP.json +224 -0
  46. package/docs/DOCKER-TUTORIAL.md +974 -0
  47. package/docs/MOBILE-HELP.json +243 -0
  48. package/docs/MOBILE-RESPONSIVE-README.md +378 -0
  49. package/docs/MOBILE-TUTORIAL.md +747 -0
  50. package/docs/PWA-HELP.json +228 -0
  51. package/docs/PWA-README.md +662 -0
  52. package/docs/PWA-TUTORIAL.md +757 -0
  53. package/docs/STEP-HELP.json +481 -0
  54. package/docs/STEP-IMPORT-TUTORIAL.md +824 -0
  55. package/docs/TESTING-GUIDE.md +528 -0
  56. package/docs/TESTING-HELP.json +182 -0
  57. package/fusion-vs-cyclecad.html +1771 -0
  58. package/nginx.conf +237 -0
  59. package/package.json +1 -1
  60. package/server/Dockerfile.converter +51 -0
  61. package/server/Dockerfile.signaling +28 -0
  62. package/server/billing-server.js +487 -0
  63. package/server/converter-enhanced.py +528 -0
  64. package/server/requirements-converter.txt +29 -0
  65. package/server/signaling-server.js +801 -0
  66. package/tests/docker-tests.sh +389 -0
@@ -0,0 +1,228 @@
1
+ {
2
+ "collaboration": {
3
+ "overview": {
4
+ "title": "Real-Time Collaboration",
5
+ "description": "Work together with team members on the same 3D model in real time. See cursors, selections, and edits instantly.",
6
+ "category": "collaboration"
7
+ },
8
+ "create_session": {
9
+ "title": "Create Collaboration Session",
10
+ "description": "Start a new collaborative design session. Share the room ID with team members to invite them.",
11
+ "usage": "Click Tools → Collaborate → Create Session, enter a name, and share the generated room ID.",
12
+ "shortcuts": "Ctrl+Alt+Shift+C",
13
+ "category": "collaboration",
14
+ "relatedTopics": ["join_session", "share_room"]
15
+ },
16
+ "join_session": {
17
+ "title": "Join Collaboration Session",
18
+ "description": "Join an existing collaborative session using the room ID provided by the host.",
19
+ "usage": "Click Tools → Collaborate → Join Session, enter the room ID and your name.",
20
+ "shortcuts": "Ctrl+Alt+Shift+J",
21
+ "category": "collaboration",
22
+ "relatedTopics": ["create_session", "user_list"]
23
+ },
24
+ "share_room": {
25
+ "title": "Share Room Link",
26
+ "description": "Generate a shareable link to invite others to your collaboration session. Can optionally password-protect the room.",
27
+ "usage": "In collaboration panel, click 'Share' to copy the link or set a password.",
28
+ "tips": ["Password-protected rooms are more secure for sensitive projects", "Share links expire after 24 hours for security"],
29
+ "category": "collaboration",
30
+ "relatedTopics": ["create_session", "room_security"]
31
+ },
32
+ "room_security": {
33
+ "title": "Room Security & Passwords",
34
+ "description": "Protect your collaboration room with a password. Only users with the correct password can join.",
35
+ "usage": "When creating a room, check 'Require Password' and enter a secure password.",
36
+ "tips": ["Use strong passwords (min 8 characters, mixed case, numbers)", "Change password if room is compromised", "Public rooms have no password"],
37
+ "category": "collaboration",
38
+ "relatedTopics": ["create_session", "share_room"]
39
+ },
40
+ "user_list": {
41
+ "title": "Collaboration User List",
42
+ "description": "See all users in the current session with their status, color, and active selections.",
43
+ "usage": "The user list appears in the right panel during a collaboration session. Green dot = online, yellow = idle, red = offline.",
44
+ "tips": ["Hover over a user to highlight their selection", "Right-click to kick user or change permissions"],
45
+ "category": "collaboration",
46
+ "relatedTopics": ["cursor_sharing", "selection_sharing"]
47
+ },
48
+ "cursor_sharing": {
49
+ "title": "Cursor Sharing",
50
+ "description": "See where each team member is looking with live cursor positions. Cursor updates are throttled (10x/sec) for performance.",
51
+ "usage": "Move your mouse in the 3D viewport. Other users will see a cursor indicator with your name and color.",
52
+ "tips": ["Cursor color is unique per user for easy identification", "Turn off in Settings for privacy"],
53
+ "category": "collaboration",
54
+ "relatedTopics": ["user_list", "selection_sharing"]
55
+ },
56
+ "selection_sharing": {
57
+ "title": "Selection Sharing",
58
+ "description": "When you select a part, all team members see it highlighted in your color. Know what others are working on.",
59
+ "usage": "Click on a part in the 3D view. Other users see the selection with your user color.",
60
+ "tips": ["Multi-select with Ctrl+Click", "Selection updates are instant (no throttling)", "Helps avoid conflicting edits"],
61
+ "category": "collaboration",
62
+ "relatedTopics": ["cursor_sharing", "user_list"]
63
+ },
64
+ "live_chat": {
65
+ "title": "Collaboration Chat",
66
+ "description": "Send instant messages to your team without leaving the app. Chat history is saved for the session.",
67
+ "usage": "Type in the chat box at the bottom right and press Enter to send.",
68
+ "shortcuts": "Ctrl+Shift+M to focus chat",
69
+ "tips": ["Messages are shown with timestamp and user color", "Chat history is saved for 50 most recent messages"],
70
+ "category": "collaboration",
71
+ "relatedTopics": ["comments", "mentions"]
72
+ },
73
+ "mentions": {
74
+ "title": "Mentions in Chat",
75
+ "description": "Mention a specific team member using @ symbol to get their attention.",
76
+ "usage": "Type @username in chat. Mentioned user gets a notification even if minimized.",
77
+ "tips": ["@everyone mentions all users in room", "Mentions show in bold red text"],
78
+ "category": "collaboration",
79
+ "relatedTopics": ["live_chat", "notifications"]
80
+ },
81
+ "comments": {
82
+ "title": "Part Comments",
83
+ "description": "Add comments to specific parts for design reviews and feedback.",
84
+ "usage": "Right-click on a part → Add Comment. Comments are visible to all team members.",
85
+ "shortcuts": "Ctrl+Shift+N",
86
+ "tips": ["Comments are pinned to parts and appear when part is selected", "Resolve comments when discussion is done"],
87
+ "category": "collaboration",
88
+ "relatedTopics": ["live_chat", "design_review"]
89
+ },
90
+ "design_review": {
91
+ "title": "Collaborative Design Review",
92
+ "description": "Review a design together in real time. All changes are tracked and can be undone.",
93
+ "usage": "Enable 'Design Review Mode' in Tools → Collaborate. Changes are logged for review.",
94
+ "tips": ["All changes are reversible", "Review history shows who made each change and when", "Approve or reject changes from other users"],
95
+ "category": "collaboration",
96
+ "relatedTopics": ["comments", "history"]
97
+ },
98
+ "operation_sync": {
99
+ "title": "Operation Synchronization",
100
+ "description": "All geometry operations (extrude, fillet, chamfer, etc.) are synchronized in real time across all clients.",
101
+ "usage": "Perform an operation (e.g., extrude). Other users see it applied immediately to their view.",
102
+ "tips": ["Operations are logged in order for consistency", "Offline operations queue and sync when reconnected"],
103
+ "category": "collaboration",
104
+ "relatedTopics": ["conflict_resolution", "offline_mode"]
105
+ },
106
+ "conflict_resolution": {
107
+ "title": "Conflict Resolution",
108
+ "description": "When two users edit the same part simultaneously, conflicts are resolved using Last-Writer-Wins (LWW) or CRDT algorithm.",
109
+ "usage": "If conflict occurs, app will notify you. Accept or reject the conflicting change.",
110
+ "tips": ["Geometry operations use CRDT (order-preserved)", "Property changes use LWW (latest timestamp wins)", "Use chat to discuss conflicting changes"],
111
+ "category": "collaboration",
112
+ "relatedTopics": ["operation_sync", "history"]
113
+ },
114
+ "offline_mode": {
115
+ "title": "Offline Collaboration",
116
+ "description": "Work offline and sync changes when reconnected. Operations queue automatically.",
117
+ "usage": "Keep using the app normally when offline. Connection will restore and sync automatically.",
118
+ "tips": ["Offline queue can hold up to 1000 operations", "Sync happens automatically on reconnect", "No data is lost"],
119
+ "category": "collaboration",
120
+ "relatedTopics": ["operation_sync", "connection_status"]
121
+ },
122
+ "connection_status": {
123
+ "title": "Connection Status",
124
+ "description": "Monitor your collaboration server connection. Status bar shows connection state.",
125
+ "usage": "Look at top-right corner: 🟢 Connected, 🟡 Reconnecting, 🔴 Disconnected.",
126
+ "tips": ["'Reconnecting' state lasts up to 30 seconds before showing disconnected", "All changes made offline will sync when connected"],
127
+ "category": "collaboration",
128
+ "relatedTopics": ["offline_mode", "troubleshooting"]
129
+ },
130
+ "history": {
131
+ "title": "Collaboration History",
132
+ "description": "View all operations performed in the session with timestamps and user info.",
133
+ "usage": "Click Tools → Collaborate → View History. See a timeline of all changes.",
134
+ "shortcuts": "Ctrl+H",
135
+ "tips": ["Click on any operation to revert to that point", "History includes who made each change", "Export history as JSON for documentation"],
136
+ "category": "collaboration",
137
+ "relatedTopics": ["undo_redo", "timestamps"]
138
+ },
139
+ "undo_redo": {
140
+ "title": "Undo/Redo in Collaboration",
141
+ "description": "Undo and redo work in collaborative sessions. Your changes don't affect others unless they conflict.",
142
+ "usage": "Ctrl+Z to undo, Ctrl+Y to redo. Other users see your undo/redo as operations.",
143
+ "tips": ["Undoing remote operations may cause conflicts", "Use chat to coordinate before undoing large changes"],
144
+ "category": "collaboration",
145
+ "relatedTopics": ["history", "conflict_resolution"]
146
+ },
147
+ "permissions": {
148
+ "title": "Collaboration Permissions",
149
+ "description": "Control what team members can do in your session. Permissions include edit, view, comment.",
150
+ "usage": "Host can set permissions per user. Right-click user in list → Change Permissions.",
151
+ "tips": ["Viewer: read-only access (no edits)", "Commenter: can suggest changes via comments", "Editor: full edit access"],
152
+ "category": "collaboration",
153
+ "relatedTopics": ["user_list", "create_session"]
154
+ },
155
+ "notifications": {
156
+ "title": "Collaboration Notifications",
157
+ "description": "Get notified when users join/leave, when mentioned in chat, or on important changes.",
158
+ "usage": "Notifications appear in bottom-right corner. Click to dismiss or act.",
159
+ "tips": ["Mute notifications in Settings → Notifications", "Sound alerts only when tab is not focused"],
160
+ "category": "collaboration",
161
+ "relatedTopics": ["mentions", "user_list"]
162
+ },
163
+ "export_session": {
164
+ "title": "Export Collaboration Session",
165
+ "description": "Save the entire session including geometry, history, and chat as a file.",
166
+ "usage": "Tools → Collaborate → Export Session. Choose format (JSON, ZIP, PDF).",
167
+ "tips": ["JSON export includes full operation history for replay", "ZIP includes geometry and chat log", "PDF is human-readable documentation"],
168
+ "category": "collaboration",
169
+ "relatedTopics": ["history", "save_model"]
170
+ },
171
+ "webrtc": {
172
+ "title": "Peer-to-Peer (P2P) Data Transfer",
173
+ "description": "After initial signaling, direct P2P connections reduce latency. No data passes through server.",
174
+ "usage": "Automatic. Once WebRTC connects (within 5s), P2P data channel is established.",
175
+ "tips": ["P2P is faster and reduces server load", "Falls back to WebSocket if P2P not available", "Works through most firewalls via STUN/TURN"],
176
+ "category": "collaboration",
177
+ "relatedTopics": ["connection_status", "latency"]
178
+ },
179
+ "latency": {
180
+ "title": "Latency & Performance",
181
+ "description": "Monitor latency (ping time) to collaboration server. High latency may cause lag.",
182
+ "usage": "Status bar shows latency in ms. <50ms is excellent, <200ms is good.",
183
+ "tips": ["Latency is shown in parentheses: (47ms)", "High latency affects cursor sharing more than geometry ops", "Switch servers geographically closer if consistently high"],
184
+ "category": "collaboration",
185
+ "relatedTopics": ["connection_status", "troubleshooting"]
186
+ },
187
+ "troubleshooting": {
188
+ "title": "Collaboration Troubleshooting",
189
+ "description": "Common issues and solutions for collaboration features.",
190
+ "usage": "See detailed troubleshooting guide in Help → Troubleshooting → Collaboration.",
191
+ "tips": ["Check internet connection first", "Clear browser cache if issues persist", "Restart app if stuck in reconnecting state"],
192
+ "category": "collaboration",
193
+ "relatedTopics": ["connection_status", "offline_mode"]
194
+ },
195
+ "bandwidth_limits": {
196
+ "title": "Bandwidth & Data Usage",
197
+ "description": "Collaboration uses minimal bandwidth. Typical usage is 1-5 MB per hour.",
198
+ "usage": "Cursor updates: 10 updates/sec × 100 bytes = 1 KB/sec max",
199
+ "tips": ["Operations are binary-encoded for efficiency", "Chat is text-only, minimal bandwidth", "Video/file sharing uses separate channels"],
200
+ "category": "collaboration",
201
+ "relatedTopics": ["performance", "connection_status"]
202
+ },
203
+ "performance": {
204
+ "title": "Performance in Collaboration",
205
+ "description": "Collaboration is optimized for performance. Even with 10 users, FPS remains high.",
206
+ "usage": "Monitor FPS counter (Ctrl+Shift+F). Should stay >30 FPS even with multiple collaborators.",
207
+ "tips": ["Turn off cursor sharing if FPS drops below 30", "Use view filters to reduce geometry on screen", "Close unused panels to save GPU memory"],
208
+ "category": "collaboration",
209
+ "relatedTopics": ["bandwidth_limits", "latency"]
210
+ },
211
+ "data_privacy": {
212
+ "title": "Data Privacy in Collaboration",
213
+ "description": "All data is encrypted in transit (wss://) and at rest on server.",
214
+ "usage": "Use HTTPS URL for secure transport. Server uses TLS 1.2+.",
215
+ "tips": ["Use password-protected rooms for sensitive projects", "Don't share room ID publicly", "Data is deleted 30 days after session ends"],
216
+ "category": "collaboration",
217
+ "relatedTopics": ["room_security", "data_encryption"]
218
+ },
219
+ "data_encryption": {
220
+ "title": "Data Encryption",
221
+ "description": "All collaboration data is encrypted in transit and at rest.",
222
+ "usage": "Automatic. Uses AES-256 for at-rest, TLS 1.2+ for in-transit.",
223
+ "tips": ["End-to-end encryption available for premium users", "Server does not store encryption keys"],
224
+ "category": "collaboration",
225
+ "relatedTopics": ["data_privacy", "room_security"]
226
+ }
227
+ }
228
+ }