| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
A fast, precise, GPU-accelerated CSG modeler with OpenSCAD-compatible syntax.
ChiselCAD is an open-source 3D CAD modeler for engineers and makers who prefer code-driven design. It reads OpenSCAD-syntax .scad files and renders them with a modern Vulkan renderer — giving you a dramatically faster result than legacy OpenGL-based tools.
It implements nearly all of the OpenSCAD language today — primitives, booleans, transforms, control flow, user-defined functions/modules and function literals, 2D extrusion, color()/offset()/projection(), and file I/O (include/use/import/surface/text). See Supported Language below for the full breakdown and the repo's open issues for the small number of constructs still missing — mainly assert()/ echo() used as chained expressions inside function bodies, and multi-variable/C-style list comprehensions.
Correctness has been validated against real OpenSCAD both by source audit and by diffing output against a live OpenSCAD binary on its own test corpus (see tests/tools/README.md); every bug found that way is fixed and closed. Remaining gaps are tracked as GitHub issues.
difference() {
cube([50, 35, 7]);
translate([25, 17.5, -1])
cylinder(h = 9, r = 5.5);
translate([6, 6, -1])
cylinder(h = 9, r = 2.8);
}ChiselCAD vs OpenSCAD at a glance
OpenSCAD ChiselCAD Renderer Legacy OpenGL + OpenCSG Vulkan, multi-light Blinn-Phong + rim lighting (PBR/SSAO planned) Boolean backend CGAL (slow) / Manifold (experimental) Manifold (always on) UI responsiveness Blocks on F6 render Async — UI never freezes Editor Embedded QScintilla External (VS Code) + file watch + diagnostics panel; embedded editor and LSP planned AI assistance None Claude integration (planned) Language coverage Full OpenSCAD Nearly all of the language; a handful of constructs remain (see below)
| Category | Supported |
|---|---|
| Primitives (3D) | cube, sphere, cylinder, polyhedron() |
| Primitives (2D) | square, circle, polygon, text() |
| Booleans / CSG | union(), difference(), intersection(), hull(), minkowski() |
| Transforms | translate(), rotate(), scale(), mirror(), multmatrix(), color(), resize() |
| CSG modifiers | # (highlight), % (background), ! (root), * (disable) |
| Control flow | for, if/else, let, ternary ?:, ranges ([a:b]/[a:b:c]), list comprehensions (single-variable) |
| Functions & modules | user-defined function/module, children()/$children, named + default args |
| Built-ins | full math set, string/vector helpers (concat, str, len, lookup, rands, ...) |
| 2D → 3D | linear_extrude, rotate_extrude (including nested extrusion), offset(), projection() |
| File I/O | include <>, use <> (per-file diagnostics), import() (STL, OFF, 3MF, AMF, DXF, SVG), surface() (.dat or .png) |
| Diagnostics | echo(), assert() (statement form only — not yet as chained expressions) |
| Quality | $fn, $fs, $fa, $vpr/$vpt/$vpd/$vpf (global and per-node) |
| Export | Binary STL |
The OpenSCAD language and CSG engine are feature-complete and validated against real OpenSCAD, both by source audit and by diffing output against a live OpenSCAD binary on its own test corpus. What's left — assert()/ echo() as expressions, multi-variable list comprehensions, non-STL export, and a few other known gaps — is tracked as GitHub issues.
Don't want to build from source? Grab a prebuilt binary from the Releases page — Windows and Linux x64 archives are attached to every release. Unzip/untar and run chiselcad (or chiselcad_cli for headless .scad → STL conversion). ChiselCAD is still early/prerelease software — see Project Status below.
git clone https://github.com/particlesector/chiselcad.git
cd chiselcad
git submodule update --init --recursive
cmake -B build -DCMAKE_TOOLCHAIN_FILE=$VCPKG_ROOT/scripts/buildsystems/vcpkg.cmake
cmake --build build --config ReleaseThe binary will be at build/chiselcad (Linux) or build/Release/chiselcad.exe (Windows).
All resolved via vcpkg:
| Library | Purpose |
|---|---|
| Vulkan + VMA | GPU rendering |
| GLFW | Window + input |
| ImGui (docking) | UI |
| Manifold | CSG boolean operations |
| GLM | Math |
| spdlog | Logging |
| nlohmann-json | Config |
| ImGuiColorTextEdit | Embedded code editor |
A full LSP extension for VS Code is planned (see docs/roadmap.md).
| Document | Description |
|---|---|
| docs/architecture.md | Full system architecture, subsystem design, and key decisions |
| docs/roadmap.md | Planned features and future direction |
| CONTRIBUTING.md | How to contribute |
ChiselCAD is in active development. The core rendering pipeline, CSG evaluator, and nearly all of the OpenSCAD language are implemented and working (see Supported Language above). Current focus is closing the remaining language gaps tracked in docs/roadmap.md and the v4 tooling/visual-quality work, before making a full drop-in-replacement claim.
If you want to follow along or contribute, see CONTRIBUTING.md.
MIT — see LICENSE.
ChiselCAD uses Manifold (Apache 2.0), Dear ImGui (MIT), and other open-source libraries. See docs/architecture.md for the full dependency list.
| Back | FazBrowse Home | New Git URL |