Concept of the BSPPFit project
v0.145.0.349

Table of Contents

1. Introduction

The BSPPFit project explores the world of British Standard Pipe Parallel (BSPP) fittings with two intertwined goals: building a taxonomy that makes the domain intelligible to a non-specialist, and, derived from that taxonomy, a library of 3D models suitable for fabrication via FDM 3D printing.

This document defines the project's goal, scope, and boundaries. It is a living document and will be updated as the project evolves. Decisions that shape the content of this document are recorded with rationale in ResearchJournal.org.

2. Motivation

Choosing the right fitting in a plumbing or pneumatic context is surprisingly difficult for a non-specialist. Hardware-store aisles, manufacturer catalogs, and online vendors are organized for finding a part you already know you want, not for learning the domain. The result is that selection becomes a lottery, and mistakes (especially thread-form mismatches) are common.

Two motivations drive this project:

Domain understanding
produce a taxonomy that supports selection by reasoning about attributes, rather than by pattern matching on a catalog.
3D model library
leverage prior work on parametric modelling to provide printable BSPP fittings, anchored on the taxonomy so that models reflect a coherent classification.

No specialist mentor is available. The project must therefore be self-bootstrapping, drawing on standards, manufacturer documentation, and primary references, with all sources traced in ResearchJournal.org.

3. Goal

Produce a coherent, faceted taxonomy of BSPP-threaded fittings, validated by realistic selection scenarios, and accompanied by a parametric 3D model library covering the BSPP cases that the taxonomy identifies as common or representative.

4. Scope

4.1. Phase 1 — BSPP-centred taxonomy with adjacent classes

Phase 1 is the current focus.

Centre
BSPP fittings are developed at full taxonomic depth. All facets relevant to selection (geometry, gender, size, sealing mechanism, material, pressure rating, application context) are enumerated and described.
Adjacent classes
BSPT (tapered, ISO 7 / R) and NPT (American, ANSI/ASME B1.20.1) are present as confusion-avoidance classes. They are characterised shallowly but accurately — enough to (a) distinguish them from BSPP visually and dimensionally in a realistic selection context, and (b) explain the consequences of mismatching them with BSPP.
3D model library
limited to BSPP. Models for BSPT or NPT fittings are explicitly out of scope for Phase 1.

Phase 1 is considered mature when the taxonomy can guide a non-specialist through a small set of representative selection scenarios and the BSPP model library covers the cases identified as common.

4.2. Phase 2 — Extension to non-threaded fittings (deferred)

Phase 2 is deferred, not abandoned. It extends the taxonomy beyond threaded fittings, with likely candidates including compression fittings and push-fit fittings.

Phase 2 is not opened until Phase 1 is mature in the sense above. It is tracked in FutureResearch.org with its re-opening trigger.

The framework built in Phase 1 is BSPP-shaped. Phase 2 may require refactoring to accommodate connection systems whose attributes differ structurally from threaded ones. This cost is known and accepted and is recorded in [BROKEN LINK: No match for fuzzy expression: *Project scope: BSPP-centred with BSPT and NPT as adjacent classes].

5. In Scope

  • Threaded pipe fittings in the screwed-pipe tradition, with BSPP at the centre and BSPT, NPT as adjacent.
  • Thread-form disambiguation as a first-class concern.
  • Selection guidance grounded in the taxonomy.
  • Parametric 3D models for BSPP fittings (Phase 1 only).
  • Realistic selection scenarios used as validation criteria for the taxonomy.

6. Out of Scope (Phase 1)

  • Non-threaded connection systems — compression, push-fit, cam-and-groove, flange standards, and similar. Deferred to Phase 2.
  • Metric pipe threads (ISO 261, ISO 965) and similar siblings, except where they appear in the same selection problem space as BSPP.
  • 3D models for BSPT or NPT fittings.
  • Application-specific certifications (gas, potable water, food contact, etc.) — referenced where relevant to selection but not enumerated.
  • Materials science of fitting alloys beyond what is needed for selection guidance and 3D-print substitution decisions.

7. Approach

The taxonomy is expected to be faceted rather than strictly hierarchical, because fittings are described by independently varying attributes that resist a single tree. Candidate facets include:

  • Geometry — straight, elbow, tee, cross, reducer, cap, plug, etc.
  • Gender — male, female, mixed.
  • Thread form — BSPP (centre); BSPT, NPT (adjacent).
  • Nominal size — and the BSPP/imperial sizing convention.
  • Sealing mechanism — bonded seal, O-ring, tapered metal-to-metal, PTFE tape with parallel thread, etc.
  • Material — brass, stainless steel, plastics where relevant.
  • Pressure / temperature rating class.

The choice between faceted and hierarchical organisation, and the selection of one or two facets to promote as primary navigation, is a design decision recorded with rationale in ResearchJournal.org.

8. Diagrams and Illustrations

The taxonomy and its supporting documents will rely on both diagrams (structural, behavioural) and illustrations (shape, appearance). Tools and conventions are documented in the Development Standard, section Diagrams and Illustrations. In short:

  • PlantUML for sequence and state diagrams.
  • Graphviz for taxonomy trees and dependency graphs.
  • TikZ for dimensioned drawings and thread cross-sections.
  • OpenSCAD-rendered views (cutaway, exploded) for model-derived illustrations.
  • Inkscape SVG and photographs for hand-finished illustrations and real-world reference.

9. Deliverables

  • A taxonomy document describing the classification, its facets, and the BSPP fittings it identifies.
  • A confusion-avoidance section covering BSPT and NPT.
  • A parametric 3D model library (OpenSCAD, per the Development Standard) for BSPP fittings identified by the taxonomy.
  • A selection guide that walks through representative scenarios using the taxonomy.
  • Project documentation per the Development Standard (ResearchJournal.org, FutureResearch.org, ChangeLog, manual pages where applicable).

10. Validation

The taxonomy is considered useful if, given a realistic selection scenario, it guides a non-specialist to the correct fitting class and surfaces the right questions to ask. A small set of such scenarios is defined in Taxonomy.org (Validation Scenarios) and used as evaluation criteria for declaring Phase 1 mature.

11. Related Work — Learning From, and Distinguishing From

Several existing efforts cover ground adjacent to BSPPFit. This section sets out what we can learn from each before noting what distinguishes our project. The framing is deliberate: the primary purpose of surveying related work is to inherit the discipline, vocabulary, and modelling decisions that earlier efforts have already paid for; the secondary purpose is to clarify what we add. Putting differentiation first — as iteration 0.7.1 initially did, see [BROKEN LINK: No match for fuzzy expression: *Related work survey: reframed from "differentiation" to "learning" as primary frame] — read as defensive and inverted the operationally useful conclusions.

The operationally useful conclusions for the next iterations are: which architectural decisions to borrow from ISO 12006-2's faceted-classification discipline; which modelling choices to borrow from existing OpenSCAD libraries before our model library starts; which writing and attribution patterns to borrow from Wikipedia and Machining Doctor for the descriptive material we cannot source from paywalled standards. These are concrete planned pieces of work tracked in FutureResearch.org.

The review was first performed in iteration 0.7.1 and reframed in 0.7.2 (recorded in [BROKEN LINK: No match for fuzzy expression: *Related work survey] under Related work survey). It is currency-stamped; re-review is recurring (see end of this section).

The landscape divides into three families: industry classification standards, open OpenSCAD model libraries, and encyclopaedic and educational sources.

11.1. Industry classification standards (BIM)

The construction-industry BIM ecosystem maintains formal classification standards covering, among other things, pipe fittings:

  • OmniClass (North America), table 23 (Products), under the broader OmniClass framework defined per ISO 12006-2. Includes pipe fittings as taxonomic entries.
  • UniClass 2015 (United Kingdom), faceted classification with 11 tables (Complexes, Entities, Activities, Spaces, Elements, Systems, Products, Tools, Roles, Information, Materials). Pipe fittings live under the Products table (Pr).
  • MasterFormat and UniFormat (CSI, North America), the work-results and elemental classifications now integrated under OmniClass.
  • SfB (Sweden, 1948) and its national descendants CCS (Denmark), Talo 90 (Finland), BSAB (Sweden), JCCS (Japan).

What we can learn.

  • Faceted-classification discipline. UniClass's eleven tables are designed to be independent and combinable: any object can be tagged with codes from multiple tables without contradiction. Our F-01..F-08 are informally faceted; we have not audited them against the orthogonality discipline that UniClass enforces. The audit is real work and may produce one or two new facets, may merge two existing ones, or may expose a facet that is not actually orthogonal to the others. Completed; see Taxonomy.org (Facet Audit).
  • ISO 12006-2 as the meta-framework. The standard underlies the whole BIM family and gives a meta-framework for how to design a faceted classification, not just which codes to use. Reading ISO 12006-2 should precede deeper structural changes to our taxonomy.
  • Hierarchical coding. OmniClass and UniClass use hierarchical numerical codes (e.g. UniClass Pr_65_42_30 for a specific class of fitting). Our G-01..G-09 informal numbering is comparable but not hierarchical. If the facet audit shows benefit, we may adopt hierarchical coding for the geometry catalogue.
  • Activities and Tools as separate facets. UniClass treats Activities (install, maintain, replace) and Tools (which spanner, which sealant, which gauge) as their own tables. Our taxonomy currently scatters this content through F-08 (Application Context) and the validation scenarios. The audit will determine whether promoting them to dedicated facets is structurally justified.

What distinguishes us. These BIM standards are classificatory: they assign codes for interoperability between construction-industry software (specifications, BIM authoring tools, cost estimation, procurement). They classify a pipe fitting as a class but do not, in general, explain to a non-specialist which BSPP fitting to choose for a given problem and why. BSPPFit is explanatory at non-specialist depth for a single thread family. A non-specialist looking up UniClass Pr_65_42 gets a code, not an answer to "should I use BSPP or BSPT for this".

11.2. Open OpenSCAD model libraries

Several open-source OpenSCAD libraries cover parts of the parametric-3D-model deliverable BSPPFit produces:

  • BOSL2 (BelfrySCAD, BSD-2-Clause). Already a dependency of BSPPFit. Provides bspp_threaded_rod(), npt_threaded_rod(), generic and metric threading modules, attachments, rounding, gears, and very many other building blocks.
  • Nicolas45Dev/NPT_Library on GitHub. Parametric NPT pipe fittings for OpenSCAD, focused on gardening and decoration uses. Smaller scope than BSPPFit, NPT only, no taxonomy or selection guide.
  • uwo-fast/pipe-fitting-SCAD on GitHub. Parametric OpenSCAD scripts for pipe-fitting assemblies including gaskets and threaded nuts. Uses adrianschlatter/threadlib for threading. Closer in spirit to BSPPFit's model library deliverable.
  • DimensionPrint on Thingiverse (NPT fittings, parametric) and Makrokaba on Thingiverse (universal threaded adapter generator covering Metric, BSP, PCO-1881, UNC, UNF, UNEF, and several UN variants). Functional generators.
  • doommeister on Thingiverse (round-duct pipe fittings library: pipe, elbow, equal T, N-way T, manifold, blanking cap, reducer, with solvent-weld or clamp ends). The widest geometric coverage in this list and a precedent for parametric-fitting libraries; predates BOSL2 attachments.
  • threadlib (Adrian Schlatter), used by several of the above, provides metric, imperial, BSP, PCO, and RMS threading with built-in spec tables. An alternative to BOSL2 for the threading layer.

What we could learn, and did. This was the most concrete of the three families and the most directly relevant to the Phase 1 model library. Each library embodied modelling choices the model library had to make too, and reading their solutions before writing the first .scad file paid off; the architectural decisions this survey informed are recorded in Modelling Approach for the BSPP Model Library above. The questions this survey answered, by reading their source (not just their READMEs):

  • Parameterisation of nominal size. Do they pass raw OD and pitch, or do they look up dimensions from a table keyed by nominal size (G1/2, 3/8 NPT)? Each approach has trade-offs.
  • Male / female pair handling. One module with a gender parameter, or two modules? How does each library handle the corresponding internal-thread mask?
  • File and namespace organisation. When the library reaches dozens of fittings, is the namespace flat, folder-per-geometry-class, tagged with metadata? uwo-fast/pipe-fitting-SCAD's pfDesigner.json suggests a metadata-schema approach worth examining.
  • Composition. Makrokaba's "any combination of inner thread, outer thread, and nozzle adapter" generator structure suggests a compositional model where one fitting is built from independent thread-end descriptions. Does this map to our taxonomy's facets?
  • Documentation generation. Some of these libraries ship example scripts that double as documentation. Our model library should plan for this from the start.
  • Tolerance handling. BOSL2's $slop variable is the mechanism for FDM tolerance; do other libraries do anything different (e.g. asymmetric male/female adjustment)? Answered (0.79.0) for BOSL2 itself: its $slop is applied to the internal (female) thread only (4*$slop on the bore), so a male rod is independent of $slop; tune a male fit by diameter offset or by slop on the mating female. See [BROKEN LINK: No match for fuzzy expression: *BOSL2 $slop is internal-only; print-tuning log; man-page HTML; Chevalier profil gaz].

The Modelling Approach Audit (reading the source of three libraries — uwo-fast/pipe-fitting-SCAD, doommeister, Makrokaba — and recording the architectural decisions the survey informed) is recorded in ResearchJournal.org.

What distinguishes us. These libraries provide generators. BSPPFit provides a classified set of generators traceable to a selection guide. The classification (the taxonomy) is the spine; the model library's organisation is determined by it. None of the surveyed libraries has this structural integration with a descriptive taxonomy.

11.3. Encyclopaedic and educational written sources

  • Wikipedia, articles British Standard Pipe, Piping and plumbing fitting, Plumbing, JIC fitting, Bonded seal, Hose clamp, O-ring. Authoritative within their scope, license-friendly (CC BY-SA 4.0 or compatible), extensively linked. Comprehensive on what each thing is, less explicit on how to choose between them in a selection problem.
  • Manufacturer technical guides (Adaptall, Ralston, Hy-Lok, RYCO Hydraulics, Parker, etc.). Detailed reference data and dimension charts; commercial in orientation; license-restricted (often All Rights Reserved); biased toward the manufacturer's own product range.
  • Industry standards (ISO 7-1, ISO 228-1, ANSI/ASME B1.20.1, BS EN 10226-1). Authoritative and normative; not free to redistribute (most ISO and BS standards are paywalled); dimensional rather than explanatory.
  • Trade publications and educational sites (Machining Doctor, Bolt Science, fluid-power tutorials). Mix of quality; license status varies.

What we can learn.

  • Wikipedia's coverage map. The Piping and plumbing fitting article is the closest written precedent. We should map our taxonomy section coverage against Wikipedia's section by section, identifying both what they cover that we do not (likely: more compression/PEX/sweat coverage) and what we cover that they do not (likely: BSPP-specific selection reasoning, the BSPP × BSPT confusion analysis, per-size dimension tables down to one decimal place). Completed; see [BROKEN LINK: No match for fuzzy expression: *Wikipedia coverage map landed; iteration 0.8.3 narrative].
  • Machining Doctor's redistribution pattern. The site publishes thread-form formulas (Whitworth at 55°, Sellers at 60°, basic profile equations) derived from first principles, not copied from ISO/BS verbatim. This is the right model for redistributing the geometry that ISO/BS keep paywalled: paraphrase, attribute, derive the math from first principles. BSPPFit already does this in spirit; we should adopt it explicitly as a documented pattern.
  • Wikipedia's vocabulary. For general piping terms not specific to BSPP context (cross, tee, reducer, bushing, nipple at definition level), Wikipedia is authoritative and free to paraphrase. Our glossary should defer to Wikipedia's definitions for these general terms and focus its own depth on BSPP-context-specific usage.

What distinguishes us. Wikipedia covers what each thing is; BSPPFit covers which one to choose and why. Manufacturer guides cover their own product ranges; BSPPFit is vendor-neutral. ISO/BS standards are normative-dimensional; BSPPFit is explanatory and integrates the dimensions with the selection reasoning.

11.4. Combined position

BSPPFit is positioned as the combination of:

  • a faceted descriptive taxonomy in the BIM-classification spirit, but at non-specialist explanatory depth for a single thread family,
  • a selection guide exercising the taxonomy through realistic scenarios, which neither BIM standards nor OpenSCAD libraries provide,
  • a parametric model library traceable to the taxonomy, building on BOSL2 rather than competing with it.

No surveyed project combines all three. The closest coverage is BOSL2 plus Wikipedia plus uwo-fast/pipe-fitting-SCAD used together by an expert reader, but the synthesis step is left to the reader. BSPPFit's contribution is the synthesis — and the synthesis is informed by, not built in isolation from, the sources surveyed above.

11.5. What BSPPFit should reuse, not reinvent

The reuse list operationalises the learning frame at the end of this section.

Threading mechanism
BOSL2 bspp_threaded_rod(), npt_threaded_rod(). Already a dependency.
Faceted-classification discipline
ISO 12006-2 and UniClass 2015's eleven-table structure as the discipline against which we audit our own facets (next iteration).
Generic thread profile equations
Machining Doctor's published formulas (Whitworth and Sellers thread forms) are accurate, public-facing, and consistent with the ISO/BS standards that we cannot freely redistribute. BSPPFit paraphrases these, with attribution.
Glossary entries for general piping terms
Wikipedia's Piping and plumbing fitting article covers terms like cross, tee, reducer, bushing, nipple at a definition level. BSPPFit's glossary stays focused on BSPP-context-specific usage and refers out where appropriate.
Modelling architecture for the model library
Choices made by uwo-fast/pipe-fitting-SCAD, doommeister, Makrokaba informed the architecture described in Modelling Approach for the BSPP Model Library above.

Items that are not reusable and that BSPPFit produces originally:

  • The faceted taxonomy structure itself, tuned for the non-specialist BSPP user. The structure is informed by BIM-classification discipline but the content is ours.
  • The validation scenarios. None of the surveyed projects provides selection reasoning at this grain.
  • The classified model library. The model library is a potential contribution back to the OpenSCAD ecosystem; see Modelling Approach for the BSPP Model Library above for the current state of that goal.

11.6. Currency of this survey

This section was first written in iteration 0.7.1 (2026-05-03) and reframed in 0.7.2 (2026-05-03). The OpenSCAD ecosystem in particular evolves rapidly; if a year passes without re-review, the survey should be redone. Re-review is tracked as a recurring entry in FutureResearch.org.

12. Modelling Approach for the BSPP Model Library

This section describes the current architectural state of the BSPP model library. The history of how each decision was reached — alternatives considered, trade-offs weighed, surveyed-library evidence gathered, rationale recorded — lives in the Research Journal per the Constitution's rule that decisions and their rationale are journal content, while the Concept document describes the project's evolving conceptual structure.

The library implements every fitting family the taxonomy in Taxonomy.org identifies as common or representative: nipple, pipe (nipple-length straight run), elbow, reducer, cap, plug, union, hex bush, hose tail, and manifold (with tee and cross as manifold specialisations), each covering the gender and size combinations the taxonomy's selection scenarios call for. LibraryOverview.org and Catalogue.org give the model library's own structural overview and illustrated gallery respectively; this section stays at the level of the architectural choices behind that library, not an inventory of it.

Every fitting is a single OpenSCAD module, implemented against BOSL2's attachment convention (anchor / spin / orient on every module, so a fitting composes into a larger assembly the same way any other BOSL2 part does) and documented in-source to the openscad-docsgen standard BOSL2 itself uses. The whole library lives in one file rather than one file per fitting, each fitting parameterised by nominal size, gender, and the handful of attributes (thread engagement length, bore, wrench-grip dimensions, and similar) the taxonomy's facets call for, rather than one hand-authored variant per size/gender combination.

12.1. What this section does not contain

  • Alternatives that were considered and rejected. These live in the journal entries the Research Journal records for each architectural decision. Reading the concept document gives you the current architectural state; reading the journal gives you the history of how it got there.
  • Per-library findings from surveyed OpenSCAD libraries, or provenance and credit chains for ideas adopted from them. These are journal content, not concept content.
  • An inventory of what each fitting supports. That is what LibraryOverview.org and Catalogue.org are for.

13. Completion Status

The taxonomy's own coverage and the model library's own fitting inventory are each self-describing: Taxonomy.org states what it covers, and LibraryOverview.org / Catalogue.org state what the library implements. This document defines what Phase 1 maturity is (see Scope above); it does not carry a moving completion figure, since a number recorded here would go stale exactly the way one did before — tracked instead, when the project author wants a fresh assessment, as a Research Journal entry.

14. Project Naming Note

The project is named BSPPFit. The name reflects the centre of gravity (BSPP) and the deliverable (the model library is BSPP-only). The taxonomy itself, in Phase 1, also includes adjacent classes for confusion-avoidance; this is consistent with the project name and does not warrant renaming. Should Phase 2 substantially change the scope, the name will be re-evaluated at that point.

15. Conclusion

This concept fixes the project's centre of gravity (BSPP), the treatment of neighbouring standards (BSPT and NPT as adjacent classes), and the deferral of non-threaded fittings to a Phase 2 whose re-opening trigger is explicit. The document is updated as the project's understanding evolves.

Author: Peter Felecan
assisted by Claude (Anthropic), model Sonnet 5

Created: 2026-10-12 Mon 17:36