MCPcopy Index your code
hub / github.com/DSchroer/dslcad

github.com/DSchroer/dslcad @v0.0.4

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.0.4 ↗ · + Follow
576 symbols 1,291 edges 64 files 4 documented · 1%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

DSLCAD (Pronounced DieselCAD)

DSLCAD is a programming language & interpreter for building 3D models.

Inspired by OpenSCAD, it has a language and 3D viewer to simplify the modeling experience.

screenshot

Setup

Dependencies: - Rust - Just (https://github.com/casey/just)

To build run:

just build

This will first build OCCT if needed. Then build the rest of the app. OCCT is cached in the occt_prebuilt folder.

Usage

Check out the documentation pages.

Installation

Download the latest DSLCAD from the Releases tab of this repo.

You can find pre-built binaries for: - Windows - MacOS - Linux - Browsers (WebAssembly)

FAQ

What are you focusing on?

Right now there are two apps: - DSLCAD CLI - DSLCAD Editor

I am focusing on the CLI. Right now I don't have the energy to develop for the editor. I would like to do editor work but I do not have enough energy. If anyone wants to contribute I would appreciate it.

Why is this different from OpenSCAD?

DSLCAD aims to build upon the formula that was established by OpenSCAD. It is still functional in approach and has a more limited scope (no text editor). It has a viewer for rapid part development and a CLI for automation.

It offers some novel ideas such as: - chamfer and fillet operators to simplify part creation - the ability to create multiple parts (3D models) from a single file - object style properties to access variables my_gear.radius - top to bottom readability using pipes (the -> operator) to reduce nesting complexity - a single binary per platform for portability - focused workflow with the aim of using the 2D first then 3D part design flow - written in Rust to make it easy to build and contribute to

Extension points exported contracts — how you extend this code

GeomIterator (Interface)
(no doc) [5 implementers]
crates/dslcad_occt/src/explorer.rs
Access (Interface)
(no doc) [4 implementers]
crates/dslcad/src/runtime/access.rs
Store (Interface)
(no doc) [2 implementers]
crates/dslcad_viewer/src/settings.rs
Command (Interface)
(no doc) [3 implementers]
crates/dslcad_occt/src/command.rs
ResourceLoader (Interface)
(no doc) [3 implementers]
crates/dslcad/src/resources.rs
MenuAppExt (Interface)
(no doc) [1 implementers]
crates/dslcad_viewer/src/editor/gui/menu.rs
Builder (Interface)
(no doc) [3 implementers]
crates/dslcad_occt/src/command.rs
Resource (Interface)
(no doc) [3 implementers]
crates/dslcad/src/resources.rs

Core symbols most depended-on inside this repo

clone
called by 84
crates/dslcad_occt/src/point.rs
parse
called by 38
crates/dslcad/src/parser.rs
next
called by 32
crates/dslcad_occt/src/explorer.rs
run
called by 24
crates/dslcad/src/lib.rs
x
called by 19
crates/dslcad_occt/src/point.rs
visit_expression
called by 16
crates/dslcad/src/parser/syntax_visitor.rs
add_edge
called by 16
crates/dslcad_occt/src/wire.rs
y
called by 16
crates/dslcad_occt/src/point.rs

Shape

Method 266
Function 195
Class 75
Enum 25
Interface 15

Languages

Rust100%

Modules by API surface

crates/dslcad/src/parser.rs65 symbols
crates/dslcad_occt/src/shape.rs30 symbols
crates/dslcad_storage/src/threemf.rs28 symbols
crates/dslcad/src/parser/syntax_tree.rs27 symbols
crates/dslcad/src/library/math.rs26 symbols
crates/dslcad/src/library.rs26 symbols
crates/dslcad_occt/src/wire.rs24 symbols
crates/dslcad/src/runtime.rs24 symbols
crates/dslcad/src/lib.rs23 symbols
crates/dslcad_occt/src/point.rs20 symbols
crates/dslcad/src/runtime/value.rs18 symbols
crates/dslcad/src/library/faces.rs17 symbols

For agents

$ claude mcp add dslcad \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact