Core Technologies
React 18.3.1
Modern React with concurrent features and improved rendering performance. Why React?- Component-based architecture for UI modularity
- Efficient rendering with Virtual DOM
- Strong ecosystem and TypeScript support
- Excellent developer experience with hot reload
TypeScript 5.6.2
Type-safe JavaScript with strict compiler settings. Configuration highlights:- Target: ES2020
- Strict mode enabled
- JSX:
react-jsx(automatic runtime) - Module resolution:
bundler(Vite-optimized)
- Catch bugs at compile time
- Better IDE support with IntelliSense
- Self-documenting code with type annotations
- Safer refactoring
Vite 6.0.0
Next-generation frontend build tool with lightning-fast HMR. Why Vite?- Instant server start with native ES modules
- Lightning-fast Hot Module Replacement (HMR)
- Optimized production builds with Rollup
- Out-of-the-box TypeScript support
- Excellent PWA integration
State Management
Zustand 5.0.0
Minimalist state management library for React. Why Zustand?- Simple API with minimal boilerplate
- No providers or context required
- Built-in middleware support (undo/redo)
- Excellent TypeScript inference
- Small bundle size (~1KB)
- Easy to implement time-travel debugging
3D Graphics & Geometry
Three.js 0.170.0
Powerful 3D graphics library built on WebGL. Why Three.js?- Industry-standard for web 3D rendering
- Rich API for cameras, lights, materials
- Built-in OrbitControls for camera manipulation
- Efficient rendering pipeline
- PBR (Physically Based Rendering) materials
Manifold 3D 3.3.2
High-performance WASM CSG (Constructive Solid Geometry) engine. Why Manifold?- Guaranteed manifold (watertight) meshes
- Fast boolean operations (union, difference, intersection)
- Runs in WebAssembly for near-native performance
- Perfect for generating 3D-printable geometry
- Produces clean, valid meshes for export
File Handling
JSZip 3.10.1
Create and manipulate ZIP archives in JavaScript. Why JSZip?- Required for 3MF export (3MF is a ZIP-based format)
- Pure JavaScript, works entirely client-side
- Supports both text and binary content
- Implements OPC (Open Packaging Conventions)
- Packages 3MF XML files
- Bundles multiple objects in one archive
- Creates valid OPC-compliant 3MF files
UUID 11.0.0
Generate RFC4122-compliant unique identifiers. Why UUID?- Unique bin IDs for reliable tracking
- Collision-free object identification
- Required for 3MF object referencing
Styling
Tailwind CSS 4.0.0
Utility-first CSS framework with Vite plugin integration. Why Tailwind?- Rapid UI development with utility classes
- Consistent design system
- Automatic purging of unused CSS
- Dark mode support
- Responsive design utilities
- Small production bundle size
Build & Development
Vite Plugins
PWA Configuration
Thevite-plugin-pwa plugin enables:
- Service Worker generation
- Offline asset caching
- Installable app experience
- Background updates
- Caches JS, CSS, HTML, WASM, fonts
- 10MB maximum file size
- Runtime caching for Google Fonts
- Manual update prompts (no automatic reload)
TypeScript Types
Type definitions for external libraries:Dependencies Summary
Runtime Dependencies
Development Dependencies
Architecture Decisions
Why Client-Side Only?
- No server required = easier deployment
- User data never leaves their device (privacy)
- Works offline after first load
- Reduced hosting costs
- WASM enables near-native performance in the browser
Why Web Workers?
- Keep UI responsive during heavy CSG operations
- Prevent blocking the main thread
- Enable background geometry generation
- Better perceived performance
Why Manifold over other CSG libraries?
- vs OpenJSCAD: Faster, guaranteed manifold output
- vs Three.js CSG: More reliable, cleaner meshes
- vs server-side CAD: No network latency, works offline
Performance Characteristics
All CSG operations run in a Web Worker to maintain 60 FPS UI responsiveness.
