MCPcopy Index your code
hub / github.com/KittyCAD/modeling-app

github.com/KittyCAD/modeling-app @v1.3.4

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.3.4 ↗ · + Follow
10,154 symbols 44,520 edges 1,080 files 988 documented · 10%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Zoo Design Studio

Zoo Design Studio

zoo.dev/design-studio

A CAD application from the future, brought to you by the Zoo team.

Design Studio is our take on what a modern modelling experience can be. It is applying several lessons learned in the decades since most major CAD tools came into existence:

  • All artifacts—including parts and assemblies—should be represented as human-readable code. At the end of the day, your CAD project should be "plain text"
  • This makes version control—which is a solved problem in software engineering—trivial for CAD
  • All GUI (or point-and-click) interactions should be actions performed on this code representation under the hood
  • This unlocks a hybrid approach to modeling. Whether you point-and-click as you always have or you write your own KCL code, you are performing the same action in Design Studio
  • Everything graphics has to be built for the GPU
  • Most CAD applications have had to retrofit support for GPUs, but our geometry engine is made for GPUs (primarily Nvidia's Vulkan), getting the order of magnitude rendering performance boost with it
  • Make the resource-intensive pieces of an application auto-scaling
  • One of the bottlenecks of today's hardware design tools is that they all rely on the local machine's resources to do the hardest parts, which include geometry rendering and analysis. Our geometry engine parallelizes rendering and just sends video frames back to the app (seriously, inspect source, it's just a <video> element), and our API will offload analysis as we build it in

We are excited about what a small team of people could build in a short time with our API. We welcome you to try our API, build your own applications, or contribute to ours!

Design Studio is a hybrid user interface for CAD modeling. You can point-and-click to design parts (and soon assemblies), but everything you make is really just kcl code under the hood. All of your CAD models can be checked into source control such as GitHub and responsibly versioned, rolled back, and more.

The 3D view in Design Studio is just a video stream from our hosted geometry engine. The app sends new modeling commands to the engine via WebSockets, which returns back video frames of the view within the engine.

Technology

Get Started

We recommend downloading the latest application binary from our website. If you don't see your platform or architecture supported there, please file an issue. See the installation guide for additional instructions.

Developing

Finally, if you'd like to run a development build or contribute to the project, please visit our contributor guide to get started. To contribute to the KittyCAD Language, see the dedicated readme for KCL.

Extension points exported contracts — how you extend this code

ToKcmc (Interface)
Converts a unit from kcl_api to its equivalent for kcmc. [6 implementers]
rust/kcl-lib/src/unit_conversion.rs
FromServer (Interface)
(no doc) [8 implementers]
packages/codemirror-lsp-client/src/client/codec/index.ts
Disposable (Interface)
(no doc) [6 implementers]
rust/kcl-language-server/client/src/ctx.ts
SegmentUtils (Interface)
(no doc) [6 implementers]
src/clientSideScene/segments.ts
SketchEntityUtils (Interface)
(no doc) [6 implementers]
src/machines/sketchSolve/segments.ts
IsRetryable (Interface)
(no doc) [4 implementers]
rust/kcl-error/src/error.rs
Offset (Interface)
(no doc) [3 implementers]
packages/ui-components/src/components/Draggable/Draggable.tsx
PluginInfo (Interface)
Human-facing metadata shown for a plugin in plugin-management UIs.
packages/registry/src/helpers.ts

Core symbols most depended-on inside this repo

unwrap
called by 2462
rust/kcl-lib/src/parsing/mod.rs
map
called by 1813
rust/kcl-lib/src/parsing/ast/types/mod.rs
err
called by 1682
src/lib/trap.ts
clone
called by 1218
rust/kcl-lib/src/engine/mod.rs
push
called by 1208
rust/kcl-lib/src/parsing/ast/types/mod.rs
click
called by 933
e2e/playwright/fixtures/nativeMenuFixture.ts
get
called by 887
packages/registry/src/types.ts
clone
called by 709
rust/kcl-lib/src/execution/memory/legacy.rs

Shape

Function 6,504
Method 2,460
Class 627
Interface 293
Enum 270

Languages

TypeScript51%
Rust49%
Python1%

Modules by API surface

rust/kcl-lib/src/parsing/parser.rs350 symbols
rust/kcl-lib/src/frontend.rs307 symbols
rust/kcl-lib/src/parsing/ast/types/mod.rs217 symbols
src/lang/KclManager.ts179 symbols
rust/kcl-lib/src/execution/mod.rs176 symbols
rust/kcl-lib/src/frontend/trim/tests.rs134 symbols
rust/kcl-lib/src/execution/geometry.rs127 symbols
rust/kcl-lib/src/unparser.rs115 symbols
rust/kcl-lib/src/std/constraints.rs105 symbols
rust/kcl-lib/e2e/executor/main.rs102 symbols
rust/kcl-lib/src/execution/state.rs100 symbols
rust/kcl-lib/src/execution/types.rs94 symbols

For agents

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

⬇ download graph artifact