Schema Editor
Why Is Most Open-Source CAD Software So Hard to Use on the Web?
TLDR
Most web-based CAD tools fall into two extremes: complex desktop ports compiled to WebAssembly with awkward UIs, or generic vector drawing apps that treat diagrams as unstructured collections of lines. We built Schema Editor to bridge this gap: an open-source, MIT-licensed drawing engine under 100KB gzipped that understands structural domain semantics natively.| Architecture Choice | Legacy Web CAD Ports | Schema Editor Model |
|---|---|---|
| Framework Overhead | Heavy Wasm / Heavy UI Frameworks | Vanilla JS + Direct SVG DOM (<100KB) |
| Wire Intelligence | Unstructured line drawings | Logic-aware Manhattan routing |
| Rendering Performance | Low frame rates on mobile | Fluid 60fps interaction on mobile |
Core engineering pillars
- Logic-Aware Wiring: Wires understand pin connectivity natively. Moving a component automatically recalculates orthogonal Manhattan segments.
- Performance Over Frameworks: Built in Vanilla JS without heavy framework wrappers to guarantee 60fps hit testing and drag rendering.
- Multi-Domain Adaptability: A single core geometry engine supports Electrical, Software UML, and Architectural floorplans simply by swapping symbol libraries.
// Lightweight <100KB Zero-Build Entry Point
import { SchemaEditor } from './src/core/editor.js';
const editor = new SchemaEditor('#canvas-container', { domain: 'electrical', snapToGrid: true });
Check out the code and try the live demo: github.com/carnworkstudios/schema-editor
Rule of thumb: Focus web CAD engines on semantic domain awareness and lightweight native browser primitives to achieve responsive interactive drawing.
Read this post in the full Engineering Journal →