omdl  v1.0
OpenSCAD Mechanical Design Library
Architecture Overview

Design Goals

The OpenSCAD Mechanical Design Library (omdl) is structured as a layered parametric design framework rather than a flat collection of modules. The architecture is intended to:

  • Separate mechanical intent and properties from geometric implementation
  • Promote reuse through parametric primitives
  • Enable automated documentation generation
  • Support both end-users (designers) and contributors (developers)

omdl emphasizes predictable behavior, explicit parameters, and attempts consistent naming so that models remain maintainable as assemblies grow.

Architectural Layers

The omdl library is organized into a set of logical layers, where each successive layer builds upon the capabilities provided by the previous one. The development and documentation workflow relies on a dedicated toolchain composed of custom utilities together with freely available open-source software, including openscad-amu, Doxygen, GNU Make, GNU Bash, and their prerequisites.

Library Tools, Components, and Layers

Module Design Philosophy

When adding or modifying modules, follow these architectural guidelines:

  • Prefer composition over duplication: reuse existing building blocks (primitives, features, utilities) by composing them together, rather than rewriting geometry or functionality from scratch.
  • Separate intent from implementation: Modules should express what the design is supposed to do independently from how the geometry is actually created.
  • Thoughtful Parameter Contracts: Modules should define and enforce their inputs to ensure predictable, safe, and reusable designs.