The Problem
Browser-based CAD tools typically fall into two camps: lightweight viewers that cannot perform real modeling operations, or server-side renderers that introduce latency and require backend infrastructure. Chili3D addresses this by running the full OpenCascade (OCCT) geometry kernel compiled to WebAssembly in the browser, delivering native-class modeling performance without installation.
What This Does
Chili3D is a browser-based 3D CAD application with a command-driven architecture. The packages/core layer provides the foundation: document management, command patterns, event handling, and math utilities. The packages/app layer implements the actual modeling operations—each shape type (box, cylinder, sphere, etc.) has its own file under packages/app/src/bodys/, and each editing operation (fillet, chamfer, boolean, mirror) lives under packages/app/src/commands/.
The C++ layer in cpp/src/ wraps OpenCascade and compiles to WebAssembly. Key files include mesher.cpp for triangulation and converter.cpp for data exchange. The application supports STEP, IGES, and BREP import/export, plus a full undo/redo stack with transaction history.
How To Use It
Setup: Clone the repository and install dependencies with npm. The package.json at the root defines all scripts.
git clone https://github.com/xiangechen/chili3d.git cd chili3d npm install
Running it: Start the development server:
npm run dev # Launches at http://localhost:8080
Building: For production, run npm run build. The WebAssembly module is pre-built and included, but you can rebuild it with npm run setup:wasm followed by npm run build:wasm. A Dockerfile and compose.yml are present for containerized deployment. No environment variables or external services are required—the app runs entirely client-side.
Real-World Use
A design team evaluating CAD tools can deploy Chili3D as an internal web application using the provided Docker setup. Engineers open STEP files from their PLM system, perform quick modifications (fillet, boolean operations, measurements), and export back to STEP. The command-based architecture in packages/core/src/command/ supports plugin development, and the i18n system in packages/core/src/i18n/ allows localization for multilingual teams. The document save/load flow in packages/app/src/commands/application/saveDocument.ts and openDocument.ts handles persistence.
Code Health & Issues
Med - Alpha-stage stability: The README explicitly states this is early development with breaking API changes and incomplete documentation. Production adoption carries risk. Low - Test coverage: Only 4 test files exist across the entire codebase (packages/app/test/). The core geometry and command layers have minimal automated coverage. Low - Build complexity: The dual C++/TypeScript build pipeline requires specific tooling for WebAssembly compilation, which adds friction to local development. Low - Single-maintainer risk: This is a fork of a project with 4,740 stars, but the active development appears concentrated. Bus factor is a consideration.
The codebase is well-structured with clear separation between core, app, and builder packages. CI is configured in .github/workflows/main.yml, and the license is present.
The Bottom Line
Chili3D is an impressive technical achievement—running a full OCCT geometry kernel in the browser is non-trivial, and the feature set (booleans, sweeps, lofts, measurements) covers real CAD workflows. It is not production-ready for enterprise use given its alpha status and thin test coverage, but it is a strong foundation for teams that need browser-based CAD capabilities and can invest in hardening it. For evaluation, prototyping, or internal tooling with modest requirements, it is worth a serious look.