Zoo Design Studio Documentation

repository·main·Indexed 22 days ago

https://github.com/kittycad/modeling-app

A hybrid CAD modeling application that treats geometric artifacts as human-readable KCL code. It features a GPU-accelerated, cloud-hosted geometry engine for high-performance rendering via video streams. The project includes the @kittycad/registry reactive framework for declarative composition, @kittycad/ui-components for app-agnostic UI elements, and a KCL Language Server for VSCode and Neovim.

Tokens
172.1K
Snippets
525
Records
859
Agent score
79%

What's inside Zoo Design Studio

  1. Overview of the KCL Standard Library

    main
    The KCL Standard Library provides a comprehensive set of modules for geometric modeling, mathematical operations, data manipulation, and geometric dimensioning and tolerancing (GDT). It is organized into specialized modules that allow users to perform complex CAD tasks such as sketching, solid modeling, hole creation, and geometric constraints.
  2. Overview of the KCL standard library (std)

    main
    The KCL standard library (std) provides frequently used constants, utility functions, and functions for interacting with KittyCAD servers to create sketches and geometry. While the library is organized into specific modules, most members are available globally in KCL programs without explicit imports.
  3. Overview of KCL Syntax

    main

    The kcl-syntax crate provides a lossless lexer and (future) parser for the KCL language. It is designed to be used by both the Language Server Protocol (LSP) and the KCL evaluator.

    The core data structure is an immutable Concrete Syntax Tree (CST). Unlike a standard Abstract Syntax Tree (AST), the CST is lossless, meaning it preserves all information from the original source text, including:

    • Comments
    • Whitespace
    • Code
    • Erroneous or incomplete input

    Developers can interact with this data through typed AST wrapper APIs, which provide different views depending on the use case: an AST for evaluation or a syntax tree for text querying and manipulation.

  4. Overview of Zoo Design Studio

    main

    Zoo Design Studio is a modern CAD application that uses a hybrid modeling approach. It combines a point-and-click GUI with a code-based representation using the KCL language.

    Key characteristics include:

    • Code-as-Artifact: All parts and assemblies are represented as human-readable KCL code, making them compatible with standard version control systems like GitHub.
    • Hybrid Interface: GUI interactions are translated into KCL code under the hood, allowing users to switch between visual modeling and manual coding.
    • GPU-Accelerated Rendering: The geometry engine is built for GPUs (primarily Nvidia's Vulkan) to provide high-performance rendering.
    • Cloud-Native Architecture: The 3D view is delivered as a video stream from a hosted geometry engine via WebSockets, offloading resource-intensive rendering and analysis from the local machine.
  5. Use @kittycad/ui-components

    main
    @kittycad/ui-components is a library of documented and tested UI components. It is intended for components that have an app-agnostic API and are decoupled from application-specific state machines, routing, or network clients. Components in this package are verified with Storybook stories and Vitest coverage for rendering and behavior.
  6. Use the `hole` module for drilling and cutting solids

    main
    The hole module in the std library provides definitions for standard holes that can be drilled or cut into solids. It includes functions for various hole types (blind, counterbore, countersink, etc.) and methods for positioning them (single holes, arrays of holes, or linear patterns).