Skip to content

Correct what imported geometry can and cannot do - #991

Open
r-barton wants to merge 1 commit into
mainfrom
3969-imported-geometry-cannot-be-edited
Open

Correct what imported geometry can and cannot do#991
r-barton wants to merge 1 commit into
mainfrom
3969-imported-geometry-cannot-be-edited

Conversation

@r-barton

@r-barton r-barton commented Aug 18, 2026

Copy link
Copy Markdown
Contributor

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:

  • Can be used as boolean tools (subtract imported geometry from KCL-created solids)
  • Can serve as extrusion targets ("extrude to face" with imported surfaces)

Both are false. Verified against kcl-lib 0.2.177:

Attempt Result
subtract([cube], tools = [tool]) requires one or more Solids ([Solid; 1+]), but found an array of ImportedGeometry
subtract([base], tools = [cube]) tools requires an array of Solids ([Solid]), but found an array of ImportedGeometry
union, intersect same, [Solid; 2+]
fillet, shell, patternLinear3d requires a value with type Solid, but found an imported geometry
startSketchOn(cube) requires ... Solid or Plane — so no extrude-to-face either
clone, translate, rotate, scale, appearance work

Type-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

  • Replaces the two false bullets with a format-agnostic Editing imported geometry section, promoted from the STEP page's accurate wording, plus the type-system reason and the real error text. Stable anchor #editing-imported-geometry — Zookeeper cites this URL when it declines the request.
  • Adds STL, OBJ, PLY, and SLDPRT. The product accepts them and kcl-lang/foreign-imports documents them; this page listed only STEP, GLB, FBX, and KCL, so an STL user found nothing.
  • Fixes import bracket from "./parts/bracket.stp"import "parts/bracket.stp" as bracket. Foreign files import whole.
  • Corrects Unit Handling, which claimed Zoo interprets STEP unit metadata. The STEP page says it does not, and the STEP page is right.

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.

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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant