A compendium of canonical design research problems
Project description
design-research-problems
[!IMPORTANT] Current monthly release: Monarch Maze - May 2026
Due: May 1, 2026
Tracks: April 2026 work
design-research-problems is a compact library and compendium of design research
problems. It packages canonical research prompts, optimization benchmarks, and
discrete grammar-style problems behind a small, typed Python API.
Overview
- Five problem families: text, decision, optimization, grammar, and MCP, plus a linked ideation metadata catalog.
- Shared model contracts built around
ProblemandComputableProblem, with family-specific subclasses on top. - A seed catalog that includes 126 ideation prompt records plus packaged decision, optimization, grammar, and MCP benchmarks.
- Optional integrations for
trussme,pybamm,mcp, Build123d, and external solver backends. - Typed metadata, a curated public API, runnable examples, and Sphinx docs.
Quickstart
Requires Python 3.12+.
Local workflows target Python 3.12 in .python-version.
Create and activate a virtual environment:
python -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
Install in editable mode for local development:
make dev
make test
Or install from PyPI:
pip install design-research-problems
Optional extras:
pip install "design-research-problems[grammar]"
pip install "design-research-problems[battery]"
pip install "design-research-problems[mcp,cad]"
pip install "design-research-problems[solvers,pandas]"
Then inspect the catalog directly from the installed package:
python3 -c "import design_research_problems as derp; print(derp.list_problems())"
And inspect the ideation corpus:
python3 -c "import design_research_problems as derp; print(len(derp.get_ideation_catalog().list_prompts()))"
Launch the packaged desktop GUIs with:
python3 -m design_research_problems.gui --app iot
python3 -m design_research_problems.gui --app truss
The IoT GUI renders a continuous room-temperature colorbar, and the truss GUI only evaluates structurally when the design is not under-determined.
Run one checked-in example from repository root:
PYTHONPATH=src python examples/catalog/list_and_load.py
Examples
Start with examples/README.md for runnable examples across all problem families.
Docs
See the published documentation for quickstart, problem-family guides, generated catalog pages, and API reference.
Build docs locally with:
make docs
Public API
The supported public surface is whatever is exported from design_research_problems.__all__.
Top-level exports include:
- Shared contracts and family bases:
Problem,ComputableProblem,ProblemKind,ProblemMetadata,ProblemTaxonomy,Citation,ProblemAsset,TextProblem,DecisionProblem,OptimizationProblem,GrammarProblem, andMCPProblem. - Family-specific evaluation contracts:
DecisionEvaluation,OptimizationEvaluation, andGrammarTransition. - Catalog access:
ProblemRegistry,get_problem,get_problem_as, andlist_problems. - Ideation metadata API:
IdeationCatalog,IdeationPromptRecord,IdeationPromptVariant,IdeationPromptFamily,IdeationStudy,EvidenceTier, andget_ideation_catalog. - Public exceptions:
MissingOptionalDependencyErrorandProblemEvaluationError.
Contributing
Contribution workflow and quality gates are documented in CONTRIBUTING.md.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file design_research_problems-0.2.1.tar.gz.
File metadata
- Download URL: design_research_problems-0.2.1.tar.gz
- Upload date:
- Size: 468.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cf52ba5c25334d85c05b7520fcc0ca874e5752aa965e482c182bbeec3a864f94
|
|
| MD5 |
889f84e4e38b40d4a5601339de5828b3
|
|
| BLAKE2b-256 |
f56b63df3f3187626f64e351fc3dd279f0e3a682c209cf6903c13a92fe02d0de
|
Provenance
The following attestation bundles were made for design_research_problems-0.2.1.tar.gz:
Publisher:
workflow.yml on cmudrc/design-research-problems
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
design_research_problems-0.2.1.tar.gz -
Subject digest:
cf52ba5c25334d85c05b7520fcc0ca874e5752aa965e482c182bbeec3a864f94 - Sigstore transparency entry: 1203974251
- Sigstore integration time:
-
Permalink:
cmudrc/design-research-problems@2c4ff62d264881dbb15cc75ebf4188eccdbca9d3 -
Branch / Tag:
refs/tags/v0.2.1 - Owner: https://github.com/cmudrc
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
workflow.yml@2c4ff62d264881dbb15cc75ebf4188eccdbca9d3 -
Trigger Event:
push
-
Statement type:
File details
Details for the file design_research_problems-0.2.1-py3-none-any.whl.
File metadata
- Download URL: design_research_problems-0.2.1-py3-none-any.whl
- Upload date:
- Size: 611.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d1c70d7d086dff51600d24a8b67f05e73b227c826345ad698479e95da3f7a679
|
|
| MD5 |
bab13e4bdbfd4d323ca2faf023362990
|
|
| BLAKE2b-256 |
de120df8d3675a71db00c50ee1c83c8a8a4ad5aa188920d359e4db96d7bf2095
|
Provenance
The following attestation bundles were made for design_research_problems-0.2.1-py3-none-any.whl:
Publisher:
workflow.yml on cmudrc/design-research-problems
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
design_research_problems-0.2.1-py3-none-any.whl -
Subject digest:
d1c70d7d086dff51600d24a8b67f05e73b227c826345ad698479e95da3f7a679 - Sigstore transparency entry: 1203974258
- Sigstore integration time:
-
Permalink:
cmudrc/design-research-problems@2c4ff62d264881dbb15cc75ebf4188eccdbca9d3 -
Branch / Tag:
refs/tags/v0.2.1 - Owner: https://github.com/cmudrc
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
workflow.yml@2c4ff62d264881dbb15cc75ebf4188eccdbca9d3 -
Trigger Event:
push
-
Statement type: