Venus CAD Studio is a browser-first playground for parametric CAD: write OpenSCAD, preview geometry live via a WASM compiler, and iterate faster with an AI-assisted workflow that can start from a local shape library.
Traditional CAD can feel heavy for quick iterations, sharing, and experimenting with parametric ideas. Venus CAD Studio is built to make “prompt/code → preview → tweak → export” feel immediate:
- A fast in-browser loop for OpenSCAD modeling
- A small, reusable
src/shapeslibrary to avoid reinventing common models - Optional persistence (projects + chat history) with Supabase
- STL export when you’re ready to print or share
- OpenSCAD in the browser: compile to STL via an OpenSCAD WASM worker.
- Code-first editor: Monaco-powered editor with a live preview.
- AI CAD agent: generates or edits OpenSCAD while following project rules (for example: no
$fn). - Shape library context: the agent can inspect
src/shapesbefore writing new geometry. - Project persistence: save and load projects when authenticated with Supabase.
- Frontend: React 19 + TypeScript
- App framework/routing: TanStack (React Router / Start tooling)
- Build tooling: Vite
- Editor: Monaco (
@monaco-editor/react) - 3D preview: Three.js (STL loader + orbit controls)
- CAD runtime: OpenSCAD compiled to WebAssembly (worker-based compile)
- Auth + storage: Supabase
- Styling/UI: Tailwind CSS + Radix UI primitives + lucide icons
- Local dev/deploy tooling: Wrangler (Cloudflare)
Using npm:
npm installOr using bun (if you prefer):
bun installCreate a local .env from the example:
cp .env.example .envFill in:
VITE_SUPABASE_URLVITE_SUPABASE_ANON_KEYVITE_SUPABASE_PUBLISHABLE_KEY(if applicable to your setup)
npm run devOpen the URL printed in the terminal.
The app expects OpenSCAD WASM assets under public/openscad. If compilation/preview fails and the console warns about missing OpenSCAD assets, build the WASM port (or copy the generated assets) so these files exist:
public/openscad/openscad.wasmpublic/openscad/openscad.wasm.jspublic/openscad/openscad.fonts.jspublic/openscad/openscad.mcad.js
Local reusable OpenSCAD snippets live in:
src/shapes
If you add more shapes, keep them small, parameterized, and fast to compile so the library remains a performance win.
Big thanks to:
- The OpenSCAD community for a wonderfully scriptable CAD ecosystem.
- Supabase for making auth and persistence painless.
- TanStack, Vite, React, and the broader OSS community for the tools that make building fast, delightful web apps possible.
