Sandbox
@earthtojake/step.parts

STEP parts directory and API for CAD projects

step.parts is a searchable catalog of open-source STEP models for CAD and hardware work. It pairs canonical STEP files with metadata, preview assets, and API endpoints for searching, filtering, and downloading parts.

348 starsβ€’51 forksβ€’TypeScriptβ€’Updated 3mo ago
Who it's for

Builders who need searchable STEP models for CAD assemblies, robot builds, and electronics layouts.

What it delivers

You can find, inspect, and reuse STEP parts without assembling your own parts library from scratch.

What it does

Searchable parts catalog

Browse parts with metadata, tags, aliases, and categories in `catalog/parts.json` and `catalog/parts.sqlite`.

Canonical STEP files

Store the source models in `catalog/step/` for reuse in CAD workflows.

Preview generation

Generate GLB and PNG previews from parts for quick visual inspection.

Public API

Use `/v1` routes for search, filtering, downloads, and pagination, with OpenAPI and schema docs.

Part ingestion workflow

Add parts with `npm run catalog:add`, which copies the STEP file, updates the catalog, exports previews, and validates the result.

Contribution checks

Verify changes with `npm run catalog:check`, `npm run lint`, and `npx tsc --noEmit` before opening a PR.

How to get it

  1. 1Use the add-part helper to add STEP files to the catalog
    npm run catalog:add
  2. 2Preview the generated record without writing files
    npm run catalog:add -- --dry-run --step /path/to/part.step --name "Example part" --category fastener --family socket-head-cap-screw --tag screw --attr thread=M3
  3. 3Then run the relevant checks
    npm run catalog:check
    npm run lint
    npx tsc --noEmit
  4. 4Use Node.js 22.5 or newer. The repo includes .nvmrc, so nvm use will select the same…
    npm install
    npm run dev

README

step.parts social preview

πŸ”© step.parts πŸ”©

Directory Β· @earthtojake

Next.js React TypeScript License: MIT Catalog Assets

16,000+ open source STEP parts for your next CAD project

🧱 Parts

step.parts is a searchable directory of open-source STEP models for parts you can drop into CAD assemblies, robot builds, electronics layouts, and mechanical prototypes. Each catalog entry pairs a canonical STEP file with human-authored metadata and generated preview assets.

You can find components such as:

  • πŸ”© Fasteners and hardware: screws, nuts, washers, pins, spacers, standoffs, and threaded parts
  • πŸ“ Stock and structural parts: extrusion profiles, plates, brackets, helper geometry, and enclosure pieces
  • βš™οΈ Motion and power transmission parts: bearings, gears, pulleys, shafts, belts, and linear-motion components
  • πŸ”Œ Electronics and thermal parts: development boards, modules, connectors, sensors, heatsinks, and fans
  • πŸ€– Actuators and robotics parts: servos, motors, robot actuators, gear reducers, and related mounting hardware

🧰 Contributions

Contributions must be made with pull requests. Create a branch, make your catalog changes locally, run the relevant checks, and open a PR for review rather than pushing directly to main.

Use the add-part helper to add STEP files to the catalog:

npm run catalog:add

The command prompts for a local STEP file path, part metadata, tags, aliases, optional standard details, and attributes. It generates the part id, copies the STEP file into the catalog, updates the source catalog, refreshes SQLite catalog metadata, exports GLB/PNG previews, and validates everything.

Preview the generated record without writing files:

npm run catalog:add -- --dry-run --step /path/to/part.step --name "Example part" --category fastener --family socket-head-cap-screw --tag screw --attr thread=M3

Before opening the PR, review:

  • the new source entry in catalog/parts.json
  • the canonical STEP file in catalog/step/
  • regenerated SQLite catalog in catalog/parts.sqlite
  • generated preview URLs; local public/glb/ and public/png/ files should not be committed

Then run the relevant checks:

npm run catalog:check
npm run lint
npx tsc --noEmit

See TAGGING.md for tag conventions and DEVELOPMENT.md for catalog schema, asset generation, and deployment details.

πŸ’» Local Development

Use Node.js 22.5 or newer. The repo includes .nvmrc, so nvm use will select the same major version used by CI.

npm install
npm run dev

Open http://localhost:3000.

For catalog generation, preview assets, validation, and deployment notes, see DEVELOPMENT.md.

πŸ§ͺ API

The public API lives under https://api.step.parts/v1. The app also uses the same /v1 routes locally for server-side search, filtering, downloads, and pagination.

Common lookups:

  • https://api.step.parts/v1/parts?pageSize=100
  • https://api.step.parts/v1/parts?q=M3&tag=screw&page=2
  • https://api.step.parts/v1/parts?category=fastener&family=socket-head-cap-screw&standard=ISO%204762
  • https://api.step.parts/v1/parts?q=lengthMm%2012

Machine-readable docs are available at https://api.step.parts/v1/openapi.json, https://api.step.parts/v1/catalog/schema, and https://api.step.parts/v1/catalog/parts.index.json.

🌐 License

This repository is MIT-licensed for original project material.

Some STEP/model files are copied from, modified from, adapted from, or generated using clearly licensed third-party model sources. The MIT License does not relicense third-party-derived STEP/model files. See THIRD_PARTY_NOTICES.md for source, attribution, modification, and license details.

Files in the repo

Repository payloadβ€’26 top-level entries
  • .githooks
  • .github
  • catalog
  • public
  • scripts
  • skills
  • src
  • .env.example
  • .gitattributes
  • .gitignore
  • .nvmrc
  • AGENTS.md
  • CLAUDE.md
  • components.json
  • DEVELOPMENT.md
  • eslint.config.mjs
  • LICENSE
  • next.config.ts
  • package-lock.json
  • package.json
  • postcss.config.mjs
  • README.md
  • TAGGING.md
  • THIRD_PARTY_NOTICES.md
  • tsconfig.json
  • vercel.json

Discussion (0)

Ask about usage, or say what you built with it

Sign in to join the discussion.

No comments yet. Be the first to say what this is good for.

More other

🎨 Best DeepSeek Harness Design Plugin. The open-source Claude Design alternative. πŸ–₯️ Local-first desktop app. πŸ–ΌοΈ Your coding agent becomes the design engine: prototypes, landing pages, dashboards, slides, images & video β€” real files, HTML/PDF/PPTX/MP4 export. πŸ€– Claude Code / Codex / Cursor / DeepSeek Harness / OpenCode & 20+ CLIs via BYOK.

95k
HKUDS/
Vibe-Trading

"Vibe-Trading: Your Personal Trading Agent"

33k

AIPOCH Open-Science is an open-source, local-first, model-agnostic AI research workbench for macOS, Windows, and Linux, with scientific agents, Python/R notebooks, data connectors, and reproducible provenance.

4k

Open-source Claude Design alternative. One-click import your Claude Code / Codex API key. Prompt β†’ prototype / slides / PDF. Multi-model (Claude, GPT, Gemini, Kimi, GLM, Ollama). BYOK, local-first, MIT.

7.9k
tutti-os/
tutti

Where people and agents build in tune.

3.7k