printspec docs
Guides, generator notes, and the full API reference, rendered from the repository's own docs.
llms.txt
A dense, agent-oriented summary of the composable_part schema, generators, and known hazards -- follows the llms.txt convention so coding agents can fetch it directly as plain text instead of parsing HTML.
Start here
- 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.
- Composable parts — Composable parts are experimental in v0.1. They provide a constrained assembly of simple primitives and features; they are not a full CAD language.
- Generators — The generators produce source code only. They do not execute OpenSCAD, CadQuery, brepjs, filesystem exports, subprocesses, or CAD runtimes in tests.
- part families — Install and test from a checkout:
Reference
- Validation — printspec v0.2.0 uses JSON Schema as the structural source of truth. The schemas define required fields, known object shapes, numeric ranges, URL formats, allowed enums, and top-level part versus project exclusivity.
- Browser/editor form metadata — Printspec schemas include lightweight JSON Schema extension metadata for browser editors, AI-assisted tools, and developer utilities that want to render parameter forms. This metadata is descriptive only: printspec do...
- Units and coordinates — printspec 0.2.0 supports millimeters (mm) only. X is length, Y is width/depth, and Z is height/thickness. The origin is generally centered in X/Y, and generated CAD generally places the bottom face at Z = 0. Component...
- printspec bundles — A printspec bundle is a deterministic source-file export for a single part spec or a project spec. It is intended for review, handoff, source control, and future automation that consumes printspec metadata.
- projects and assemblies — Project specs can be exported as bundles with the root printspec.json, per-inline-part specs under parts/<part-id>/, generated CAD source where supported, project BOM files, README, manifest, and optional experimental...
- Supplier hardware and BOMs — Hardware items can appear at the top level, on a part, on a project, or inside inline project part specs. BOM helpers extract those items, normalize quantities, and can emit Markdown, CSV, or supplier-grouped order li...
- Browser editors — A browser parameter editor can read the JSON Schema, render fields from titles/descriptions/defaults/minimums/maximums/examples/enums, validate user input locally, display warnings, serialize specs to URLs or saved JS...
- Hosted schemas — printspec publishes browsable, static JSON Schema reference files at https://schemas.invisra.ai.
- PartCAD compatibility — printspec describes parametric geometry intent. PartCAD can package generated CAD source, outputs, supplier files, BOMs, and assembly notes. printspec is not a replacement for PartCAD.
- Safety — Out of scope: weapons, firearm parts, ammunition, explosives, suppressors/silencers, weaponized drones, lockpicking/bypass tools, medical devices/implants, vehicle safety-critical parts, aerospace/flight-critical part...
Project
- design principles
- Roadmap — Source-first package hygiene and CI commands.
- Release process — printspec npm package v0.3.0 and schema/Python v0.2.0 are experimental. The release tracks are intentionally independent. Publishing is manual for now; this document is a checklist for preparing release candidates wit...
- printspec v0.1.0 release checklist — Use this checklist for the final public v0.1.0 release. Items marked “if publishing now” are only required when the release manager is actually publishing to that registry in this release window.
- printspec v0.1.0 release notes draft — printspec v0.1.0 is the first experimental public release of Invisra’s JSON Schema and offline tooling stack for practical parametric 3D-printable parts.
Repository
- printspec — Practical JSON Schemas and offline tooling for parametric 3D-printable parts.
- Changelog — npm package version:
- Contributing — Use focused pull requests. Keep schemas deterministic, explicit, safe, and browser-editor friendly. Suggested labels: schema, part-family, composable, project, generator, typescript, python, docs, examples, safety, bo...
- Code of Conduct — Be respectful, constructive, and inclusive. Harassment or unsafe content is not welcome.
- Security — Report vulnerabilities privately to Invisra maintainers. Do not submit unsafe part-family proposals.