(registered 2024-05-30, last updated 2024-05-30) Media type name: text Media subtype name: vnd.zoo.kcl Required parameters: N/A Optional parameters: N/A Encoding considerations: binary Security considerations: KCL (KittyCAD Language) files are designed to be tokenized, parsed, and executed using the open-source Zoo tooling. Once compiled, the code is transformed into WebSocket messages that are transmitted over the network to a KittyCAD graphics engine for execution. These engine instances can be hosted either locally or on remote servers, offering flexibility while also necessitating strict security measures. KCL files possess the capability to import and reference other KCL files, potentially introducing insecure data. Therefore, users are strongly advised to scrutinize all imports with the same diligence applied to managing a typical software dependency tree. To further safeguard against security risks, all referenced or imported files must be locally available, and KCL files are explicitly designed not to fetch dependencies from remote URLs. Interoperability considerations: KCL (KittyCAD Language) is expertly crafted to facilitate the sharing of mechanical design logic within the manufacturing sector. As a functional scripting and programming language, KCL generates artifacts in a variety of established geometric formats, including STEP, OBJ, GLTF, PLY, and STL. This ensures seamless integration with existing workflows and broad compatibility with industry-standard tools and platforms. Importantly, despite potential evolutions in the language, older scripts can be compiled with earlier versions of our open-source tooling, preserving the integrity and utility of past designs in future applications. Published specification: https://zoo.dev/docs/kcl The open source repo that holds the code for the tokenizer, parser, and compiler is https://github.com/kittycad/modeling-app. Applications which use this media: KCL (KittyCAD Language) files are primarily employed by mechanical engineers and designers in the manufacturing industry to articulate and implement precise mechanical design logic. Leveraged by the KittyCAD/Zoo suite of tools, KCL facilitates the meticulous design and manufacturing of mechanical components that require utmost precision. Engineers and designers use KCL to script complex geometric operations and create parametric designs, which are then accurately visualized or manufactured according to stringent specifications. While KCL is adaptable for broader 3D design tasks, its true strength lies in applications demanding high precision and watertight specifications, such as the production of durable physical goods. The language is pivotal not only in commercial manufacturing processes but also in academic research in computational design and in educational settings where teaching advanced mechanical design principles is crucial. Fragment identifier considerations: Currently, KCL files do not support the use of fragment identifiers. KCL scripts are intended to be executed as whole units, and there is no mechanism within the KCL file format to reference or extract sub-components of the script via fragment identifiers. Future versions of the KCL specification could consider adding this functionality if there is a demonstrated need from the community or specific use cases that would benefit from such a feature. Restrictions on usage: none Additional information: 1. Deprecated alias names for this type: N/A 2. Magic number(s): N/A 3. File extension(s): kcl 4. Macintosh file type code: N/A 5. Object Identifiers: N/A General Comments: It's important to note that the KCL language and its associated tooling are under active development, with contributions from a global community of developers. While the language specification is stable for current versions, future enhancements and changes are anticipated as part of its natural evolution. Users and developers are encouraged to participate in the ongoing development process through the open-source community on GitHub. Person to contact for further information: 1. Name: Jessie Frazelle 2. Email: jess&zoo.dev Intended usage: LIMITED USE The KCL media type is primarily intended for applications in mechanical design and manufacturing, where it excels in facilitating the sharing and execution of design logic among compatible tools and platforms. Although KCL is tailored for the mechanical design domain, its robust handling of 3D geometric data also makes it suitable for a broader range of 3D design applications. Users should note that while KCL files adeptly describe mechanical operations and other 3D tasks, any actual fabrication or production processes must be overseen by qualified professionals to ensure they meet safety standards and regulatory compliance. Author/Change controller: The Zoo Engineering Team, along with the KCL community