vork by Voyager
An agent writes a scene as code, renders it on the GPU, looks at the result and revises the code. Source-available and free during the research preview.
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗An AI-powered OpenSCAD editor with live 3D preview. Choose a canonical design (or begin blank), then describe what you want in an independent derivative workspace. An AI agent writes the OpenSCAD code and renders the model in real time.
writeOpenscad) replaces the project source with a complete program every turn,
so the model is always renderable.color() renders in the live preview (per-face colors via
OpenSCAD's colored OFF export). Download models as binary STL or as 3MF with
per-face colors preserved as a 3MF color group (written client-side), which
Bambu Studio, Orca, and PrusaSlicer map to filaments for multi-material printing.Designs, OpenSCAD code and exported STL/3MF files that users create in the studio are
theirs, free for personal and commercial use (selling prints, selling files, client
work), with no attribution required. Everything 3D waives any rights it might hold in
them under CC0 1.0, and the
built-in starter designs in src/lib/builtin-scad/ are released under CC0 1.0 as well.
The public /license page states this in plain language; the landing page FAQ, the
studio sidebar, the download menu and the agent's instructions all point there. The
studio software itself and the Everything 3D branding are not covered by this grant.
Browser Server (Next.js App Router)
─────── ───────────────────────────
Chat (useChat + AI Elements) ──▶ POST /api/chat
└─ ToolLoopAgent (AI SDK)
├─ model: claude-opus-5-5 (Claude API)
├─ tool: writeOpenscad (zod-typed)
└─ onFinish → persist chat + code (Drizzle/Postgres)
writeOpenscad tool part ──▶ editor + preview
CodeMirror editor ──▶ PATCH /api/projects/[id]
openscad-wasm worker ──▶ binary STL ──▶ three.js preview
ToolLoopAgent behind an API route, calling
the Claude API directly (claude-opus-5-5 for the
agent, claude-haiku-5-5 for project names and starter metadata). The agent's
instructions, tools and conversation history are prompt-cached. Model ids are configured in one place, src/lib/ai/models.ts, and
overridable per environment via STUDIO_MODEL / NAMING_MODEL /
STARTER_DRAFT_MODEL with any current Claude model id. STUDIO_EFFORT sets how
much the agent thinks (low to max, default medium). All calls are
server-side; no API keys reach the browser.useChat streaming.canonical_designs, immutable
canonical_versions, mutable projects, AI SDK messages, and workspace_files).public/openscad/.Requirements: Node 20+, Postgres running locally.
npm install
createdb e3d_openscad_studio
cp .env.example .env.local
# Set POSTGRES_URL (e.g. postgres://<you>@localhost:5432/e3d_openscad_studio)
# Set ANTHROPIC_API_KEY (create one at https://platform.claude.com/settings/keys)
npm run db:migrate # apply schema
npm run dev # http://localhost:3000
Describe a model in the chat ("a hexagonal phone stand", "a 20 mm gear with 12 teeth") and watch it render.
npm run dev # dev server (Turbopack)
npm run build # type-check + production build
npm run start # serve production build
npm test # focused domain regression tests
npm run typecheck # tsc --noEmit
npm run db:generate # generate migration from schema changes
npm run db:migrate # apply migrations
POSTGRES_URL automatically.ANTHROPIC_API_KEY under Project → Settings → Environment Variables
(Production, Preview, and Development), then redeploy so it takes effect.POSTGRES_URL=... npm run db:migrate.Opening /studio shows the canonical design library rather than automatically
reopening the latest derivative. Choose Blank design or inspect a canonical and
select Create derivative. A derivative records the exact canonical version it
came from; new canonical versions appear as a non-destructive update hint while
existing work continues unchanged.
Use Save as canonical in a workspace to draft a title, description, reusable-change summary, and agent guidance. Review any derivative-specific warnings before saving. Publishing snapshots only the current code and workspace files — messages never become part of a canonical design.
ToolLoopAgent, useChat) + AI Elements + shadcn/ui + Tailwind v4