lab-hardware-cad
Helps your agent create 3D models of lab parts. It exports these models for manufacturing, useful for creating custom equipment.
What it does
This AI agent creates designs for physical lab parts, like holders or adapters, using code. It ensures the parts will fit correctly with existing equipment and exports the designs in formats usable for manufacturing.
When to use it
- ✓When you need a custom physical part for an experiment.
- ✓When designing a holder that needs to fit specific lab equipment.
- ✓To create molds or adapters for lab materials.
Example of what to ask your AI
“Design a holder for a 15ml test tube that fits into a standard microplate.”
Want more? Open the sections below.
How to use
The easiest way: copy the message below and paste it into Claude, ChatGPT, Cursor or any AI. It reads the skill and follows the instructions.
Skill link
Ready-to-paste message
How it works
The agent uses special code (Python) to define the part's dimensions. It checks these dimensions against lab equipment standards to ensure a perfect fit before generating the final file for manufacturing.
Installation
Easiest way: copy the skill link and paste it into Claude, ChatGPT or Cursor asking it to follow the instructions.
In the terminal (Claude Code, Codex, Cursor), in your project folder:
npx skills add K-Dense-AI/scientific-agent-skills --skill lab-hardware-cadOr download just the file:
curl -L https://raw.githubusercontent.com/K-Dense-AI/scientific-agent-skills/main/skills/lab-hardware-cad/SKILL.md -o SKILL.mdTechnical content (original SKILL.md)
Original text by the author, straight from GitHub.
Lab Hardware CAD
Design physical research hardware as parametric Python source, export STEP as the authoritative artifact, and verify the result both numerically and visually before anything is fabricated.
The hard part of lab hardware is almost never the geometry. It is that the part must mate with equipment whose dimensions are fixed by a published standard or a vendor drawing. A holder that is 0.5 mm too wide does not fit the plate reader; a channel with the wrong aspect ratio collapses during bonding; a mount whose bolt pattern is 25.4 mm instead of 25.0 mm will not reach the optical table. This skill exists to keep those numbers correct and checked.
When to use
Use for any request to design, model, or fabricate a physical part for a lab: chip, mold, mount, adapter, holder, rack, bracket, enclosure, jig, fixture, arena, or maze. Also use to inspect or modify an existing STEP file.
Do not use for finite-element analysis, computational fluid dynamics, molecular structure, or scientific plotting. Those are different skills.
Setup
uv venv --python 3.12 .venv-labcad
uv pip install --python .venv-labcad/bin/python "build123d==0.13.0" "matplotlib>=3.8"
build123d 0.13.0 requires Python >=3.11,<3.15 and pulls in the OpenCascade kernel through
cadquery-ocp-novtk. The wheel is large; install once per project and reuse it.
All bundled scripts take --help. check.py standards runs without build123d installed.
Model files are executed, not parsed. gen.py, check.py, and snapshot.py import a
*_model.py and call its build(), which runs arbitrary Python in the current environment. That
is inherent to parametric CAD — the source is the design. Only run model files authored in this
session or supplied by the user from a trusted location. If a model came from the internet, a
shared drive, or an untrusted colleague, read it before running it and say that you did.
Required workflow
Follow these steps in order. Steps 5 and 6 are not optional, and step 6 is not waived by step 5 passing.
1. Route to a device family
Read the request, classify it, and load exactly one family reference. Do not load all four — they are long, and mixing conventions between families is a common source of error.
| If the part is | Load |
|---|---|
| A chip, mold, channel network, flow cell, gasket, or anything with fluid ports | references/microfluidics.md |
| A mount, post, breadboard adapter, cage-system part, filter or sample holder in a beam path | references/optomechanics.md |
| An adapter, insert, rack, or holder for plates, cuvettes, tubes, slides, or dishes | references/labware-adapters.md |
| An arena, maze, head-fixation part, spout, tether, or extrusion-mounted enclosure for animal work | references/behavior-rigs.md |
If the part genuinely spans two families — a microfluidic chip that bolts to an optical table — load the family that owns the critical interface, then read only the interface section of the second. State in your response which family you routed to.
2. Establish the interface dimensions before any geometry
Every part has at least one mating interface. Before writing code, write down for each interface:
- the source of the dimension: a published standard, a vendor drawing, or a user measurement;
- the nominal value and tolerance;
- the clearance or interference you intend, and why.
Look the number up in assets/standards.json or the family reference. Never write an interface
dimension from memory. If the number is not in the standards file or the reference, ask the user
for the vendor drawing or the measurement rather than guessing. A guessed interface dimension is
the single most expensive failure mode in this skill.
A pocket receiving an external component is sized against that component's
maximum material envelope — nominal plus its plus-tolerance — and only then given clearance.
A shaft entering a hole instead uses the hole's minimum diameter; envelope does not model that case.
python scripts/check.py standards --list
python scripts/check.py standards --show slas-microplate-footprint
The bundled standard IDs (exact strings; do not guess variants): slas-microplate-footprint,
slas-microplate-height, slas-microplate-flange, slas-well-positions-96,
slas-well-positions-384, slas-well-positions-1536, cuvette-standard-10mm,
…
FAQ
What does 'parametric' mean?
It means the part's dimensions can be easily changed through variables in the code, allowing for design variations without starting from scratch.
What file formats does it export?
It exports in formats like STEP (for precision), STL (for 3D printing), and DXF (for laser cutting or machining).
Can I use it for any type of part?
It's ideal for physical lab parts that need to interface with standardized equipment. It's not suitable for complex analyses like fluid simulations or molecular structures.
Details
Original description by the author
Designs custom laboratory hardware as parametric build123d models and exports fabrication artifacts as STEP, STL, and DXF files - microfluidic chips and molds, optomechanical mounts and breadboard adapters, cuvette and microplate holders, tube racks, animal-behavior rigs, and 3D-printed instrument fixtures. Use when a research task needs a physical part that must mate with standardized labware, an
Popularity
- GitHub stars
- 51k
- Ranking position
- #1891
- License
- MIT
- Updated
- 10/15/2026
Comments
- …
More skills from this repository
13c-metabolic-flux
Estimates metabolic fluxes using carbon-13 isotope tracing data. It is useful for analyzing cellular metabolism and biochemical pathways.
K-Dense-AI/scientific-agent-skills
adaptyv
Designs protein characterization experiments using the Adaptyv API. It helps estimate costs, submit sequences, and monitor lab results.
K-Dense-AI/scientific-agent-skills
aeon
Performs machine learning tasks on time series data. It is useful for classifying, forecasting, detecting anomalies, and finding patterns in sequential data.
K-Dense-AI/scientific-agent-skills
alphagenome
Looks up precomputed genomic effects for genetic variants. It provides scores and explanations to understand the impact of variants on the genome.
K-Dense-AI/scientific-agent-skills
Similar skills
dashboard-builder
Helps your agent create useful monitoring dashboards. It turns data into charts that answer important system questions.
affaan-m/ECC
dev-team
Simulates a collaborative development team where different roles respond to a problem together. It's useful for getting multiple perspectives without manually switching agents.
affaan-m/ECC
ecc-council
Has your agent convene a four-voice council for difficult decisions. It's useful when there are multiple good options and debate is needed before choosing.
affaan-m/ECC