Correct what imported geometry can and cannot do - #991
Open
r-barton wants to merge 1 commit into
Open
Conversation
The Import page told users imported geometry "Can be used as boolean tools
(subtract imported geometry from KCL-created solids)" and "Can serve as
extrusion targets". Neither is true. An import has type `ImportedGeometry`
and every boolean is typed `[Solid]`, so both argument positions fail:
subtract([cube], tools = [t]) -> requires one or more `Solid`s,
but found an array of `ImportedGeometry`
subtract([base], tools = [cube]) -> tools requires an array of `Solid`s
`startSketchOn` rejects it too, so "extrude to face" is out as well. This
was verified against kcl-lib 0.2.177 for fillet, shell, patterns, and
sketch-on-face, and it holds for mesh and BREP files alike.
The child STEP page already said all of this correctly, so the accurate
bullets move up to the parent as a format-agnostic "Editing imported
geometry" section and the STEP page links to them, which stops the two
pages contradicting each other again.
Also on the Import page:
- Adds STL, OBJ, PLY, and SLDPRT, which the product accepts and
kcl-lang/foreign-imports documents, but this page never listed.
- Fixes `import bracket from "./parts/bracket.stp"`. Foreign files import
whole, so the form is `import "parts/bracket.stp" as bracket`.
- Corrects Unit Handling, which claimed Zoo interprets STEP unit metadata.
The STEP page says the opposite, and the STEP page is right.
Adds a "What Zookeeper Can't Do Yet" section to the Zookeeper page,
leading with imported CAD files, so there is somewhere to point a user who
asks the agent for an edit it cannot make.
Refs KittyCAD/text-to-cad#3969
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
r-barton
requested review from
Irev-Dev,
adamchalmers,
franknoirot and
jessfraz
as code owners
August 18, 2026 16:44
This was referenced Aug 18, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
A Zoo Design Studio user spent about three hours asking Zookeeper to cut a pocket into an imported STL. That can never work — but the Import page told them it could:
Both are false. Verified against kcl-lib 0.2.177:
subtract([cube], tools = [tool])requires one or more Solids ([Solid; 1+]), but found an array of ImportedGeometrysubtract([base], tools = [cube])tools requires an array of Solids ([Solid]), but found an array of ImportedGeometryunion,intersect[Solid; 2+]fillet,shell,patternLinear3drequires a value with type Solid, but found an imported geometrystartSketchOn(cube)requires ... Solid or Plane— so no extrude-to-face eitherclone,translate,rotate,scale,appearanceType-level rejection, identical for STEP (BREP) and STL (mesh).
The child STEP Import page already described this correctly. The parent page contradicted it.
What changed
data-management/import.mdx#editing-imported-geometry— Zookeeper cites this URL when it declines the request.kcl-lang/foreign-importsdocuments them; this page listed only STEP, GLB, FBX, and KCL, so an STL user found nothing.import bracket from "./parts/bracket.stp"→import "parts/bracket.stp" as bracket. Foreign files import whole.data-management/import/step.mdx— capability bullets replaced with a link to the parent anchor, so the two pages cannot drift apart again. Experimental banner and units/scale content untouched.zoo-design-studio/zookeeper.mdx— adds What Zookeeper Can't Do Yet, leading with imported CAD files and giving two prompts that do work. Previously the page was capability narrative only, with nowhere to point a blocked user.