This repository is an agent-first reference for Bambu Lab MakerWorld's OpenSCAD-based Parametric Model Maker (PMM).
Start here for the actual OpenSCAD authoring surface: PMM OpenSCAD API.
Generated docs site: MakerWorld PMM OpenSCAD Reference.
Generated font index: PMM Font Index.
The main use case is practical:
- A user points Codex, Claude Code, or another agent at this repo.
- The agent learns PMM-specific OpenSCAD rules, packaging constraints, source-backed quirks, and common failure modes.
- The agent can then adapt an existing
.scadfile or generate a PMM-ready script and upload plan without digging through scattered forum threads.
This repo intentionally focuses on OpenSCAD. Fusion 360-specific guidance is out of scope unless a later PMM update changed the OpenSCAD workflow or backend itself.
The practical problem is that PMM documentation is scattered across release posts, support threads, UI examples, and community reverse-engineering instead of living in one obvious reference.
As of April 21, 2026, we could not find a single official Bambu wiki or help-center page that serves as a canonical reference for MakerWorld's Parametric Model Maker, even with searches like this Google query.
That pain shows up repeatedly in public discussions:
- Any Documentation on Parametric Model Maker? post 1
- Any Documentation on Parametric Model Maker? post 7
- Any Documentation on Parametric Model Maker? post 8
- Parametric Model Maker V1.1.0 - Major UI Refresh, post 5
- Parametric Model Maker Review and Feedback, post 3
- Documentation on parametric model maker
- Reddit comment link shared by the user
This repository exists to turn that scattered knowledge into one agent-friendly OpenSCAD PMM reference with provenance, examples, and a refreshable evidence archive.
- How do I make this OpenSCAD script work in MakerWorld PMM?
- Which PMM-specific comments and modules exist?
- What file naming conventions are mandatory for uploads?
- What features are employee-confirmed versus inferred?
- Which PMM web assets are directly fetchable without auth, and which require browser context or login?
- What limitations should I rewrite around?
- What backend or library version is PMM using?
- How should I package a file-upload or multi-plate model for MakerWorld?
If you are a coding agent, start here:
AGENTS.mddocs/pmm-openscad-api.mddocs/agent-workflow.mddocs/feature-reference.mddocs/compatibility-rules.mddocs/web-discovery.mddocs/gotchas.mddocs/changelog.mdpatterns/pmm-ready-template.scad
If you want to refresh the evidence-backed data:
python3 scripts/fetch_sources.py
python3 scripts/discover_pmm_web.py
python3 scripts/fetch_pmm_syntax_demo.py
python3 scripts/build_index.py
python3 scripts/build_font_index.py
python3 scripts/build_changelog.py
python3 scripts/build_patterns_index.py
python3 scripts/build_docs.pyOr run the one-shot helper:
python3 scripts/build_all.pyUse a repo-local virtualenv so the preview server does not depend on whichever Python environment Codex or your shell happens to be using:
.venv/bin/python -m pip install -r requirements-docs.txt
python3 scripts/build_font_index.py
.venv/bin/mkdocs serve -a 127.0.0.1:8000If .venv does not exist yet, create it first:
python3 -m venv .venv
.venv/bin/python -m pip install --upgrade pipThen open the local site at http://127.0.0.1:8000/unofficial-makerworld-parametric-model-maker-openscad-docs/. The generated font book is at http://127.0.0.1:8000/unofficial-makerworld-parametric-model-maker-openscad-docs/font-index/.
For a full evidence refresh, run python3 scripts/build_all.py instead of build_font_index.py. That command fetches current public MakerWorld and Discourse sources before rebuilding generated docs, so expect source metadata diffs.
The font index is generated from MakerWorld's public PMM font inventory snapshots. Browser previews are best-effort and provenance-labeled: clean webfont sources may render live previews, while font families with custom, conflicting, or restricted redistribution terms are documented without bundling questionable font files.
AGENTS.md: retrieval-first instructions for coding agents.docs/pmm-openscad-api.md: author-facing PMM OpenSCAD API surface.docs/: curated reference docs and generated summaries.patterns/: PMM-oriented OpenSCAD examples and templates.patterns/pmm-syntax-demo.scad: PMM's extracted default editor source, refreshed from public web chunks.checklists/: migration, packaging, and validation checklists.data/: machine-readable indexes for agent retrieval.data/bundled-library-index.json: normalized bundled-library include methods, source links, and version clues.data/font-index.json: normalized PMM font inventory records.data/font-preview-index.json: font preview and provenance metadata for the generated font index.data/pmm-web-discovery.json: current public-web discovery summary for PMM assets.sources/raw/discourse/: raw public Discourse JSON snapshots from Bambu's forum.sources/raw/makerworld/: raw PMM app endpoints and public web-asset captures.sources/raw/manual/: intentional manual captures from PMM UI or related surfaces.scripts/: refresh and build tooling.
The docs distinguish between:
Official app endpointOfficial releaseEmployee-confirmedManual UI captureCommunity-discoveredInference
The preferred evidence order is:
- Official app endpoints from MakerWorld.
- Official release posts by Bambu staff.
- Employee replies in support or bug threads.
- Intentional manual captures from the PMM UI.
- Community findings.
- Explicitly labeled inference.
Raw MakerWorld endpoint snapshots and Discourse snapshots are stored with sidecar metadata. Manual UI captures are not auto-scraped in v1; they should be added intentionally and labeled with provenance.