Native CAD/CAM · v6
CADCAMFUN
A local-first desktop app for drawing, modelling, toolpaths, and G-code. Edit geometry in the workbench. Keep projects on your desktop. Connect tools through the sidecar.
Design, model, manufacture.
Bun sidecar, Effect services, SQLite on disk, Tauri around the window.
-
Line
-
Arc
-
Extrude
-
Fillet
-
Mill
-
Drill
-
Toolpath
-
Measure
Workspace
Packages own the model. Apps own the window.
Persistence
db
Drizzle schema, migrations, and the Effect Database service. SQLite via bun:sqlite.
Domain
core
Pure CAD geometry and CAM / G-code. No database, network, or filesystem.
Contract
api
Schema-first HttpApi definitions and the domain schemas both sides share.
Assistant
ai
nikcli embedded host and AI SDK v7, as Effect services.
Plugins
plugin-sdk
Public plugin API types and the host contract.
History
vcs
Git-compatible history: objects, branches, merge, diff, and GitHub sync.
Automation
workflow
Actions-style workflow schema, triggers, and runner.
Codegen
httpapi-codegen
Generates clients from the HttpApi contract into packages/api/src/sdk and packages/api/src/client.
Bridge
@cadcamfunv2/cadcamfun-nikcli-plugin
Exposes the running app’s CAD/CAM action catalogue to a standalone nikcli. The list is read from the app; the plugin does not keep a second copy.
Server
apps/sidecar
Bun Effect server: HttpApi handlers, services, repositories, plugin host, and wiring.
Window
apps/desktop
SolidJS + Vite UI and the Tauri v2 Rust shell in src-tauri/.
Companion
apps/mobile
Expo iOS companion. Thin client of a paired desktop. Native pairing socket in modules/companion-net.
Boundaries
Imports point inward, from geometry to the window.
-
01
core
CAD geometry and G-code. No I/O.
-
02
api
HttpApi contract shared by both sides.
-
03
sidecar
Effect services, SQLite, and HTTP.
-
04
desktop
SolidJS workbench and local geometry.
Also imported by the sidecar
- db
- ai
- plugin-sdk
- vcs
- workflow
Dependency direction has no cycles. core is imported by api, and api by the sidecar. The sidecar also imports db, ai, plugin-sdk, vcs, and workflow. The desktop imports the API client and core geometry at runtime. Mobile uses the API contract through its companion client. core and api do not import db.
Quickstart
One workspace. The desktop opens from here.
Published desktop installers are on the download page. These commands are for a source checkout: install with Bun, run the tests, then build the sidecar and open the Tauri window.
bun install
bun test packages apps
bun run desktop:dev