Choose a Kernel
Select and compose first-party CAD kernel plugins.
Pick kernels by source language or import format, and install only the packages your host needs.
| Kernel package | Input | Best fit |
|---|---|---|
@taucad/replicad | TypeScript/JavaScript using Replicad | High-level parametric BRep |
@taucad/opencascade | TypeScript/JavaScript using OCCT bindings | Direct BRep and topology control |
@taucad/manifold | TypeScript/JavaScript using Manifold | Mesh-first robust booleans |
@taucad/jscad | TypeScript/JavaScript using JSCAD | CSG modeling |
@taucad/openrscad | OpenSCAD | .scad models in browser or Node |
@taucad/zoo | KCL | Configured remote Zoo execution |
@taucad/gltf | glTF/GLB | glTF interchange with optional Draco |
@taucad/brep | STEP/STP/IGES/IGS/BREP | BRep-family file import |
@taucad/rhino | 3DM | Rhino file import |
@taucad/assimp | Mesh and scene formats | OBJ, FBX, STL, PLY, DAE, and related imports |
@taucad/build123d | Python using Build123d | Native desktop BRep, topology, and STEP |
@taucad/tscircuit | TSX using tscircuit | Electronics: 3D board, schematic, PCB, BOM |
There is no catch-all Tau kernel. Every first-party import extension has one explicit owner.
Compose toolkits
Pass one factory per package to defineRuntime. Source-code kernels need a bundler beside them; file-import kernels such as gltf(), brep(), rhino(), and assimp() do not:
import { defineRuntime } from '@taucad/runtime/worker';
import { esbuild } from '@taucad/esbuild';
import { manifold } from '@taucad/manifold';
import { replicad } from '@taucad/replicad';
export const modelingRuntime = defineRuntime({ plugins: [esbuild(), replicad(), manifold()] });Configure a packaged capability
Presets select capability sets — assimp({ preset: 'import' }) installs only the import kernel, leaving the export transcoder out. Role-nested options configure the factories the preset selects:
import { defineRuntime } from '@taucad/runtime/worker';
import { zoo } from '@taucad/zoo';
export const runtime = defineRuntime({
plugins: [zoo({ kernels: { default: { baseUrl: 'wss://example.com/v1/kernels/zoo' } } })],
});Use a direct role factory instead for app-local capabilities, isolated tests, or when a whole role must interleave outside plugin expansion.
Choose Build123d only in a native host
Build123d needs a packaged CPython payload and a project trust grant, so only a native host such as Tau Desktop can advertise it. Its .py files skip the JavaScript bundler entirely -- see Build123d for the authoring contract.
Choose tscircuit for electronics
A .tsx or .jsx file exports a board component. Rendering is offline: local autorouter, no parts engine; URL footprints and models are never fetched; each attempt or kicad:/jlcpcb: reference becomes a warning. See tscircuit for the authoring contract and install steps.