The ambition is as wide as STEP itself: CAD is the entry point, not the boundary. Manufacturing (STEP-NC), electrical/electronics, kinematics and simulation follow through further Application Protocols. V1 starts narrow on purpose: AP242 product structure and metadata.
Interop: FreeCAD reads the product-structure files without errors (0 objects, since no geometry is written), and an OpenCascade reader resolves products, definitions and assembly usages. Other CAD/PLM readers, full schema conformance and a lossless round trip remain open.
Honest status: pre-release. No Maven Central, no Homebrew, no installers. v0.1.0 was source only; v0.1.1 adds a JVM-only CLI zip without native bridges. The API is unstable. The LLM benchmark hasn't been run yet, so no numbers on AI quality here.
Geometry was pulled forward: an OpenCascade bridge (box, extrude, fillet), the PlaneGCS constraint solver, a Compose Desktop viewer. Needs a system-installed OCCT; verified only on Linux x86-64 and macOS arm64 so far.
Plus an MCP server (kstep mcp): entity builders, Part 21 export and model validation as tools for LLM agents, returning structured error feedback instead of stack traces. Headless previews via kstep render (SVG, PNG, GLB), kstep asciidoc for docs.
What works today (v0.1.1): an EXPRESS parser and Kotlin codegen against an excerpt of the real AP242 schema, WHERE, UNIQUE and INVERSE rule checks, STEP Part 21 export and import, *.kstep.kts scripts and the kstep export CLI.
The principle is Typed Domain Grounding (TDG), already proven in its sibling kUML: type system, compiler and structured validation errors with stable KSTEP codes form a feedback loop an LLM can act on directly.
Why a Kotlin DSL? STEP's exchange format, Part 21, is a graph of #123-style references: hostile for humans and LLMs alike to write directly. Kotlin, both handle well. kSTEP keeps the syntax Kotlin and adds only the STEP vocabulary, enforced by the type system.
CAD today splits into two camps: classic suites (GUI-centric, proprietary formats) and code-first CAD such as OpenSCAD or CadQuery (scriptable, Git-friendly). kSTEP takes the second road further: STEP instead of a format of its own, and designed for LLMs from day one.
🧩 Introducing kSTEP: a type-safe Kotlin DSL for the STEP standard (ISO 10303). Code-first, AI-first, STEP-native. Apache 2.0, source on GitHub. Sibling project of kUML. A thread. 🧵