chatCAD
FeaturesPricingBlogDocs
chatCAD

AI-powered CAD modeling. Text to STEP in seconds.

Product

  • Features
  • Pricing
  • Changelog
  • Showcase

Resources

  • Documentation
  • Blog
  • API Reference

Company

  • About
  • Contact

Legal

  • Privacy Policy
  • Terms of Service
  • DPA
  • Cookie Policy

© 2026 chatCAD. All rights reserved.

GitHubTwitter / XStatus
All posts
Engineering
#engineering#AI

Inside the Skill Library: How chatCAD Achieves 90%+ Accuracy

A deep dive into the domain-specific knowledge files that power chatCAD's high accuracy on standard mechanical parts — and why LLMs alone aren't enough.

chatCAD TeamApr 18, 20262 min read
When we first built chatCAD using a raw GPT-4 call, accuracy on standard parts was around 60%. The model knew about hex bolts but didn't reliably produce the right ISO tolerances, thread pitches, or chamfer conventions. Every second or third model needed manual correction.

The Skill Library fixed that.

What is a Skill?

A Skill is a structured Markdown document that teaches the agent a specific CAD domain. Each skill contains:

  • Geometry conventions — exact formulas for derived dimensions (e.g., hex nut height = 0.8 × pitch diameter)
  • Standard tables — DIN/ISO/ANSI values for every common size variant
  • FreeCAD-specific pitfalls — e.g., how to correctly set ScaleType = "Custom" before modifying a TechDraw view scale
  • build() function template — a parametric Python skeleton the agent fills in
  • Here's a simplified excerpt from the hex-fasteners skill:

    def build(params):
        """
        params = {
            "nominal_diameter": 8,   # M8
            "pitch": 1.25,           # mm
            "length": 30,            # mm
            "standard": "DIN_933",   # full thread
        }
        """
        d = params["nominal_diameter"]
        s = 1.5 * d          # wrench size (across flats)
        e = s / cos(30°)     # circumscribed circle
        k = 0.63 * d         # head height
        # ... FreeCAD Part API calls

    How the agent uses Skills

    At inference time the LangGraph skill_loader node:

    1. Embeds the user's description

    2. Finds the top-3 most relevant skills by cosine similarity 3. Appends the full skill text to the system prompt

    This gives the LLM exact domain knowledge without fine-tuning. Because the knowledge lives in plain Markdown, updating a tolerance table or adding a new standard takes minutes, not a retraining run.

    Results

    After adding 24 skills covering the most common part categories:

    CategoryBefore SkillsAfter Skills --------- Standard fasteners58%96% Rotational parts61%91% Sheet metal44%78% Assemblies30%72%

    The remaining errors are almost all edge cases at the boundary of standard ranges (very large diameters, non-standard materials, exotic thread forms).

    What we're building next

    We're expanding the Skill Library to cover springs, O-ring grooves, keyways, and press-fit tolerances in the next release. If you have a part category where accuracy is lower than you'd expect, tell us — we'll add a skill for it.

    ← PreviousWhy We Priced chatCAD the Way We DidNext →Introducing chatCAD: From Text to STEP in Seconds

    Ready to try chatCAD?

    Free tier: 50 models/month · No credit card required

    Get started free