Skip to content

Geometric Design Search

Search CAD models by shape using 3D shape embeddings.

Industry Level Difficulty Recommended mode
Mechanical engineering 4 of 5 Expert hnsw
  • Similar shapes hide behind different names.
  • CAD search is metadata-only.
  • Reuse needs geometry.
  1. A 3D shape embedding model turns models into vectors stored in SrvDB.
  2. Query by an example model.
  3. hnsw scales to large libraries.
  4. Per-programme databases.
Today With Geometric Design Search on SrvDB
Metadata search Shape search
Duplicate geometry Found by similarity
Programme silos Searchable per programme
  1. Export meshes.
  2. Embed with a shape model.
  3. Store.
  4. Query by example.
  5. Review.
  • HNSW graph (hnsw): approximate search that visits a small part of large collections; tune with set_ef_search().
  • Several databases: each database is a directory, so different data types or tenants stay separate.
  • Crash-safe persist(): after it returns, data survives a crash or power loss and reopens exactly as committed.
  • search_batch: runs many queries at once, in parallel inside Rust.
  • Casting reuse
  • Tooling reuse
  • Supplier quoting
  • Duplicate detection
  • Design inspiration
  • Cost estimation

embed() is your embedding model (for example sentence-transformers, or a function that turns your records into feature vectors).

import json
import srvdb
db = srvdb.Database("./geometric-design-search-db", dimension=512, mode="hnsw")
def ingest(items):
"""items: list of (id, text, metadata dict)"""
db.upsert(
ids=[i for i, _, _ in items],
embeddings=[embed(t) for _, t, _ in items],
metadatas=[json.dumps(m) for _, _, m in items],
)
db.persist() # crash-safe checkpoint
def similar_shapes(model_description, k=5):
hits = db.search(embed(model_description), k)
return [(json.loads(db.get(i)), round(score, 3)) for i, score in hits]
  • Needs a suitable 3D shape embedding model (research-grade).
  1. Prototype: load a sample of real data with flat mode and check that searches return what an expert expects.
  2. Measure: if you move to an approximate mode, compare its results with flat on the same queries (recall).
  3. Pipeline: add continuous upsert and decide when to call persist().
  4. Harden: test restarts and crashes, add logging, review every output path with domain experts.
  5. Deploy: ship the database directory with the application or service.
Level Project What it does
1 · Beginner Part Finder Find existing parts by describing what they do.
2 · Intermediate FMEA Assistant Drafts and reviews FMEAs grounded in past FMEAs and failures.
3 · Advanced Vibration Signature Matcher Matches vibration signatures to known fault patterns.
4 · Expert Geometric Design Search (this page) Search CAD models by shape using 3D shape embeddings.
5 · Frontier Simulation Lookup Find the nearest previously simulated cases before running a new simulation.

See also: Use cases · Live examples (coming soon)