Getting started

printspec v0.2.0 is an experimental toolkit for validating practical parametric 3D-printable part specifications and generating starter CAD source for a small set of supported families.

Install

npm install @invisra/printspec
python -m pip install printspec

If packages are not published yet, install from a checkout:

npm install
python -m pip install -e "packages/python[test]"

Validate a spec

printspec validate examples/part-families/rounded-rectangular-plate.basic.json
python -m printspec.cli validate examples/part-families/rounded-rectangular-plate.basic.json

Programmatic TypeScript validation:

import { validatePrintSpec } from "@invisra/printspec";
const result = validatePrintSpec(spec);

Programmatic Python validation:

from printspec import validate_printspec
result = validate_printspec(spec)

Generate starter CAD source

Supported starter generator families are rounded_rectangular_plate, spacer_block, round_spacer, electronics_standoff, cable_comb, cable_clip, wall_mount_bracket, l_bracket, drawer_divider, and project_enclosure_tray (see docs/generators.md for the full list and language parity notes).

printspec to-openscad examples/part-families/round-spacer.basic.json --output round-spacer.scad
printspec to-cadquery examples/part-families/electronics-standoff.m3.json --output standoff.py

Generated source is intentionally simple and should be reviewed before printing or downstream CAD export. printspec does not execute OpenSCAD, CadQuery, or FreeCAD.

Schemas

Schemas are bundled in both packages for offline validation. Hosted copies are available for reference at https://schemas.invisra.ai/printspec/0.2.0/.

Safety

Do not rely on generated designs for safety-critical, regulated, medical, electrical, or load-bearing use without qualified review. See safety.

Export a bundle

Use printspec bundle <file> --output <directory> to create a deterministic source bundle containing the original JSON, README, manifest, supported CAD source, and BOM files when hardware exists. Add --partcad for the experimental PartCAD stub. See bundles.