* add first version of DefaultPlanes to FeatureTreePane * fix lint issues * don't show default planes UI in sketch mode * lint * toggling default planes: implementation in xstate * revert malformed modelingMachine.ts * lint * save and restore default plane visibility when returning to modeling mode * fmt * tsc * introduce new cleanup state with actor when exiting sketch mode * temp remove restore default plane visibility - causes error on starting up a project * set selection filter after executeAst - this is a wip hacky fix * remove unused early return: this also caused plane selection to only work with double click * lint * no need to set selection filter to curves only, we want faces to be selectable in modeling mode, even though this means default planes are also selectable * tightening types for visibility map * lint * cleanups * fix border issue when visibility toggle is not active and props.visible === true * ui updates on FeatureTreePane/default planes * no pointer cursor for unselectable default planes * show default planes initially even for non-empty projects * dont show default planes initially when project is not empty * fix test: Only show axis planes when there are no errors * fixes for sketch tests * better initialize for planes * lint * fix uneccessary 'reset camera position' in sketch entry * revert hiding/showing content depending on artifact graph for tests * only show default planes when there are no errors * disable Restore default plane visibility, was causing temporary flashing of default planes when exiting sketch mode * Always show default plane visibility toggles, regardless of being on/off * revert modelingMachine to original idle states to avoid 'zoom_to_fit' test regression - probably racing condition * fmt
Zoo 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 
 - 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 
 
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
- UI
 - Networking
- WebSockets (via KittyCAD TS client)
 
 - Code Editor
- CodeMirror
 - Custom WASM LSP Server
 
 - Modeling
 
Get Started
We recommend downloading the latest application binary from our releases page. If you don't see your platform or architecture supported there, please file an issue.
If you'd like to try out upcoming changes sooner, you can also download those from our nightly releases page.
Developing
Finally, if you'd like to run a development build or contribute to the project, please visit our contributor guide to get started.
KCL
To contribute to the KittyCAD Language, see the README for KCL.
