A modern OpenSCAD editor with live preview and AI copilot β runs in your browser or as a desktop app
π Try it now β OpenSCAD Studio is available as a web app (no install needed) or as a macOS desktop app. The web version runs entirely in your browser using WebAssembly.
Desktop: macOS 10.15 (Catalina) or later.
As a software engineer and maker hobbyist, I love OpenSCAD. It allows for precision and maps to my mental model of building things. However, some operations (like rounding with minkowski) are not very intuitive. At work, I often use Cursor and Claude Code for writing code, and found myself plugging my OpenSCAD code into ChatGPT in order to either (1) scaffold out a starting point or (2) fix a confusing issue in my code. I also became frustrated by certain limitations of the OpenSCAD editor, like not being able to easily indent code with the editor commands I'm used to. So I built OpenSCAD Studio, which aims to be something like a Cursor for the language.
- π Web app - Use directly in your browser at openscad-studio.pages.dev β no install needed
- π€ AI copilot - Chat with Claude/GPT to generate and fix code (bring your own API key)
- π¨ Modern editor - OpenSCAD syntax highlighting, multi-tab editing, format on save, vim mode support
- π 2D mode - Dedicated SVG viewer for laser cutting and engraving
- πΌοΈ Live 3D preview - Interactive mesh viewer with orbit controls and content-hash caching
- π Real-time diagnostics - Inline error markers with line/column precision
- βοΈ Customizer panel - Interactive controls for OpenSCAD parameters with auto-rendering
- π 22+ themes - Popular themes like Catppuccin, Dracula, One Dark Pro, GitHub, Nord, Tokyo Night, and more
Limitations: Special operators (!, #, %, *) preview not yet implemented
Visit openscad-studio.pages.dev. Works in Chrome and Edge (requires SharedArrayBuffer support). No OpenSCAD installation needed β rendering is done via WebAssembly in your browser.
Install via Homebrew:
brew tap zacharyfmarion/openscad-studio
brew install --cask openscad-studioOr download the latest DMG from GitHub Releases. Requires macOS 10.15 (Catalina) or later.
# Install dependencies
pnpm install
# Run web version in development mode
pnpm web:dev
# Run desktop version in development mode (requires Rust toolchain)
pnpm tauri:dev
# Build for production
pnpm web:build # Web
pnpm tauri:build # DesktopDesktop development requires the Rust toolchain. Web development only needs Node.js 18+ and pnpm.
openscad-studio/
βββ apps/
β βββ ui/ # Desktop app (Tauri + React)
β β βββ src/ # Shared React frontend
β β β βββ components/ # React components
β β β βββ hooks/ # Custom React hooks
β β β βββ platform/ # Platform abstraction layer
β β β β βββ types.ts # PlatformBridge interface
β β β β βββ tauriBridge.ts # Desktop implementation
β β β β βββ webBridge.ts # Web implementation
β β β βββ services/ # OpenSCAD WASM worker, render service, AI service
β β β βββ stores/ # Zustand state management
β β β βββ themes/ # 22+ editor themes
β β βββ src-tauri/ # Rust backend (desktop only)
β βββ web/ # Web app entry point (Vite)
βββ packages/
βββ shared/ # Shared TypeScript types
The AI copilot uses the Vercel AI SDK with streaming support. AI requests are made client-side in both the web app and the Tauri desktop app, and API keys are currently stored in local storage state inside the browser/webview. This is a convenience tradeoff, not backend-style secret isolation.
- Open Settings (β,)
- Navigate to "AI" tab
- Enter your Anthropic / OpenAI API key
Supported Providers: All models from the following providers are supported:
- Anthropic
- OpenAI
The AI can:
- View your current code and preview
- Make targeted code changes
- Check for compilation errors
- Generate new OpenSCAD designs from natural language
- CLAUDE.md - Comprehensive guide for AI assistants and contributors
- ARCHITECTURE.md - Web + desktop architecture design
- engineering-roadmap.md - Detailed development roadmap with phases
- β Phase 1-2: Monaco editor, live preview, 3D viewer, export, caching
- β Phase 3: AI copilot
- β Phase 4 (Partial): Production polish, customizer, themes, CI/CD, library management
- β Phase 5 (v0.7): Web version with openscad-wasm
See engineering-roadmap.md for detailed breakdown.
Contributions are welcome! Please:
- Check existing issues or create a new one to discuss your idea
- Fork the repository and create a feature branch
- Follow the code style (prettier for TypeScript, rustfmt for Rust)
- Update documentation as needed
- Submit a pull request
For detailed development guidelines, see CLAUDE.md and CONTRIBUTING.md.
This project is licensed under the GNU General Public License v2.0 - see LICENSE for details.
This license change was made to comply with OpenSCAD's GPL-2.0 license, as the project now bundles openscad-wasm.
Built with:
- Tauri - Rust-powered desktop framework
- React - UI framework
- Monaco Editor - Code editor
- Three.js - 3D rendering
- OpenSCAD - The amazing CSG tool this editor is built for
- openscad-wasm - WebAssembly build of OpenSCAD
- Vercel AI SDK - AI streaming framework
Made with β€οΈ for the OpenSCAD community
