The Zoo Design Studio app. https://zoo.dev/design-studio/download
  • TypeScript 63.2%
  • Rust 35.6%
  • CSS 0.4%
  • Python 0.3%
  • JavaScript 0.2%
Find a file
2026-02-03 22:02:32 -05:00
.github Revert back to Ubuntu 22.04 for Linux builds (#9921) 2026-02-03 11:38:46 -05:00
.helix Kwargs migration: arc/arcTo (#6334) 2025-04-18 17:40:44 -05:00
.husky pre commit fmt (#6470) 2025-04-25 04:58:58 -04:00
assets Rename nightly to staging and have it point to dev infra (#7422) 2025-06-09 15:43:48 -04:00
docs KCL: Clarify that merge = true is required on split (#9895) 2026-02-03 17:24:38 +00:00
e2e/playwright Fix scene selection of imported geometry for P&C (#8867) 2026-01-30 14:50:00 -05:00
openapi Update machine-api spec (#4305) 2024-10-25 20:53:08 +00:00
packages Bump eslint from 8.57.1 to 9.39.2 (#9709) 2026-01-29 04:13:58 +00:00
public Adding racing seat bracks (#9923) 2026-02-03 22:02:32 -05:00
rust Adding racing seat bracks (#9923) 2026-02-03 22:02:32 -05:00
scripts Support an alternate Rust env location on Vercel (#9892) 2026-01-30 17:39:13 +00:00
src Replace win-ca with tls.getCACertificates (#9894) 2026-02-03 17:43:11 +00:00
types Make CSP config dynamic based on selected host (#9837) 2026-01-29 10:42:55 -05:00
.codespellrc Update codespell ignore (#6702) 2025-05-06 13:12:23 +00:00
.env.development Support overriding the Engine WebSocket URL via querystring (#9376) 2025-12-17 14:53:19 +00:00
.env.production Finish "KITTYCAD" to "ZOO" rename of environment variables (#8720) 2025-10-29 09:21:45 -04:00
.envrc Only attempt to activate flake if nix is installed (#7868) 2025-07-21 12:52:40 -04:00
.gitattributes [bugfix] Fix user settings opening (#5414) 2025-02-19 13:31:07 -05:00
.gitignore Sketch 2.0: First pass - Crushing unknowns (#9170) 2025-12-10 07:32:08 +11:00
.npmrc WIP: migrate from yarn v1 to npm (#6274) 2025-04-12 02:49:49 +00:00
.nvmrc Revert "Electron v40, Node v24, Three v182" (#9820) 2026-01-24 14:49:49 -05:00
.prettierignore Move lsp server to this repo (#5619) 2025-03-04 22:21:12 -08:00
_typos.toml Revolve adjacency info (#7008) 2025-05-16 22:02:30 +00:00
babel.config.js Editor singleton to prevent re-renders (#2163) 2024-04-19 21:24:40 +00:00
biome.json ~Maybe~ (Lee: ABSOLUTELY) use biome (#6327) 2025-04-15 10:11:25 -04:00
CONTRIBUTING.md (docs+install) updates webpack link + install doc (#9615) 2026-01-10 00:20:45 +00:00
electron-builder.yml Move to electron-builder's sign tool: actually fail on error (#8444) 2025-09-30 15:59:44 +00:00
eslint.config.mjs Bump eslint from 8.57.1 to 9.39.2 (#9709) 2026-01-29 04:13:58 +00:00
flake.lock Handle msgpack deserialize (#8915) 2025-11-19 17:21:39 +00:00
flake.nix Revert "Electron v40, Node v24, Three v182" (#9820) 2026-01-24 14:49:49 -05:00
forge.config.ts ~Maybe~ (Lee: ABSOLUTELY) use biome (#6327) 2025-04-15 10:11:25 -04:00
forge.env.d.ts Sort imports (#6101) 2025-04-02 06:54:26 +00:00
GLOSSARY.md Prepare for Zookeeper release (#9124) 2025-12-03 18:08:54 -08:00
index.html Make tooltips use the browser's Popover API so they don't ever get cut off (#9501) 2026-01-05 18:34:04 -05:00
Info.plist header changes and open new window for double click in finder macos (#3652) 2024-08-25 19:56:11 +00:00
INSTALL.md Add note for zlib1g-dev on arm in INSTALL.md (#9241) 2025-12-09 13:10:52 +00:00
interface.d.ts Make file/folder deletions through project explorer actually archive instead, make them un/redoable (#9612) 2026-01-14 21:28:13 +00:00
LICENSE Zoo rebrand (#1228) 2023-12-18 06:15:26 -05:00
Makefile Skip Rust upgrades on Windows (#9610) 2026-01-12 14:42:08 +00:00
package-lock.json Bump @isaacs/brace-expansion from 5.0.0 to 5.0.1 for security patch (#9931) 2026-02-03 19:51:51 -05:00
package.json Replace win-ca with tls.getCACertificates (#9894) 2026-02-03 17:43:11 +00:00
playwright.config.ts ~Maybe~ (Lee: ABSOLUTELY) use biome (#6327) 2025-04-15 10:11:25 -04:00
playwright.electron.config.ts Switch to a 6-core profile for mac (#6323) 2025-04-15 13:07:16 -04:00
playwrightProcess.mjs Strip ANSI control sequences to clean up Axiom dashboard (#5934) 2025-03-21 17:54:56 +00:00
postcss.config.js Use PostCSS function from browser vendors to generate fallback color defs for when OKLCH isn't supported (#2770) 2024-07-01 12:29:08 -07:00
PRINCIPLES.md Refactor: migrate all singleton imports into React to use useSingletons hook, create App class to encapsulate it (#9727) 2026-01-27 09:30:31 -05:00
PRINCIPLES.mdb Refactor: migrate all singleton imports into React to use useSingletons hook, create App class to encapsulate it (#9727) 2026-01-27 09:30:31 -05:00
README.md Link to the dedicated page when there is intent to download (#7152) 2025-05-21 14:20:36 +00:00
release-notes.md Separate debug/release electron-builder to help mac job (#4313) 2024-10-28 13:41:32 +00:00
tailwind.config.js Add an info popover for "conversation memory coming soon", add a welcome message with prompt tips (#8220) 2025-09-05 16:02:04 +00:00
tsconfig.json Bump @electron/fuses from 1.8.0 to 2.0.0 (#9446) 2026-01-09 11:32:45 -05:00
tsconfig.node.json Bump @electron/fuses from 1.8.0 to 2.0.0 (#9446) 2026-01-09 11:32:45 -05:00
vercel.json Created a dedicated branch for the Vercel staging environment (#8228) 2025-09-05 18:35:13 -04:00
vite-env.d.ts Add app version to UI in Settings (#1351) 2024-02-07 11:36:19 -05:00
vite.base.config.ts turn CSP on (#8098) 2025-08-21 15:15:58 +02:00
vite.config.ts Force explicit imports for Vitest globals (#9140) 2025-12-02 12:10:39 -05:00
vite.main.config.ts Bump vitest from 3.2.4 to 4.0.14 (#9233) 2025-12-09 15:55:34 +00:00
vite.preload.config.ts Sort imports (#6101) 2025-04-02 06:54:26 +00:00
vite.renderer.config.ts Bump @kittycad/lib (#8236) 2025-09-09 21:16:21 +00:00
vitest.config.ts Bump vitest from 3.2.4 to 4.0.14 (#9233) 2025-12-09 15:55:34 +00:00
vitest.workspace.ts Bump vitest from 3.2.4 to 4.0.14 (#9233) 2025-12-09 15:55:34 +00:00

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.