# Kernel Factories URL: /docs/api/kernels Kernel Factories [#kernel-factories] Use kernel factories when registering CAD engines with `createRuntimeClient`. Each factory returns a `KernelPlugin` that the client uses for kernel selection and worker loading. Types [#types] | undefined", "simplifiedType": "Record", "required": false, "deprecated": false } ] }} /> Factories [#factories] | Factory | Extensions | Purpose | | ----------------------- | ---------- | --------------------------------------------------- | | `replicad(options?)` | `ts`, `js` | OpenCASCADE-based parametric BRep via Replicad API | | `opencascade(options?)` | `ts`, `js` | Direct OpenCASCADE API access | | `manifold(options?)` | `ts`, `js` | Mesh-first manifold modeling with robust booleans | | `openscad()` | `scad` | CSG modeling with OpenSCAD language | | `jscad()` | `ts`, `js` | @jscad/modeling parametric CSG | | `zoo(options)` | `kcl` | KCL via Zoo WebSocket API | | `tau()` | `*` | Catch-all converter for STEP, STL, 3MF, OBJ imports | Usage [#usage] ```typescript import { createRuntimeClient, fromMemoryFS } from '@taucad/runtime'; import { replicad, opencascade, manifold, openscad, jscad, zoo, tau } from '@taucad/runtime/kernels'; import { esbuild } from '@taucad/runtime/bundler'; const client = createRuntimeClient({ kernels: [ replicad({ withBrepEdges: true }), opencascade(), manifold(), openscad(), jscad(), zoo({ baseUrl: 'wss://example.com/v1/kernels/zoo' }), tau(), ], bundlers: [esbuild()], fileSystem: fromMemoryFS(), }); ``` Related [#related] * [Choose a Kernel](../guides/choosing-a-kernel) * [Plugin System](../concepts/plugin-system) * [Create a Custom Kernel](../guides/custom-kernel)