Self-hosted emergence-engineering/pcbjam (browser KiCad WASM) — CMMS embed fork. Upstream tracked as remote "upstream".
- TypeScript 49.1%
- C++ 36%
- Shell 4.2%
- C 2.9%
- JavaScript 2.6%
- Other 5.2%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
- Add KiCad fork as git submodule - Create project structure (patches, stubs, cmake, scripts, core, docs) - Add knowledge base and implementation plan documentation - Add README with project overview and goals 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> |
||
| docs | ||
| kicad@4bfed3f174 | ||
| .gitignore | ||
| .gitmodules | ||
| README.md | ||
KiCad WebAssembly Port
Experimental project to run KiCad's core logic in WebAssembly.
Project Structure
kicad-wasm/
├── kicad/ # KiCad source (git submodule)
├── patches/ # Patches to make deps optional
├── stubs/ # Stub headers for disabled deps
├── cmake/ # CMake modules
├── scripts/ # Build and maintenance scripts
├── core/ # Extracted core library for Wasm
└── docs/ # Knowledge base and plans
Goals
- Phase 1: Build KiCad with optional deps disabled (curl, git, OCC, ngspice)
- Phase 2: Extract core computation code as standalone library
- Phase 3: Compile core to WebAssembly
- Phase 4: Run native GUI with Wasm worker backend
- Phase 5: Browser-based UI
Documentation
Design Decisions
- Memory: Serialize/deserialize on every operation (proof of concept)
- Threading: Web Workers (browser-first design)
- Updates: Full board re-serialization
Getting Started
# Clone with submodules
git clone --recursive <repo-url>
# Apply patches
./scripts/prepare.sh
# Build with optional deps disabled
mkdir build && cd build
cmake .. -DKICAD_USE_CURL=OFF -DKICAD_USE_GIT=OFF -DKICAD_USE_OCC=OFF
make -j$(nproc)
License
KiCad is GPL-3.0. This wrapper/tooling follows the same license.