A compendium of canonical design research problems
Project description
design-research-problems
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
The initial release centers on five problem families plus a linked ideation metadata catalog:
- Text problems for human-subjects studies and prompt packets
- Decision problems with typed discrete or empirical evaluation interfaces
- Optimization problems with typed bounds and representative built-in baselines
- Grammar problems that describe discrete design actions and optional evaluation adapters
- MCP problems that ingest upstream MCP tool servers for agent-style workflows
- An ideation catalog with prompt records, variants, families, and study summaries
The public problem model now centers on a shared Problem documentation base
and a ComputableProblem evaluation layer, with family-specific subclasses on
top. Problem-family interchangeability is defined by those family base classes,
not by matching catalog capability flags across different kinds.
The first catalog includes:
- 40 ideation-focused text prompts
battery_pack_18650_open_ended_capacity_maxfor explicit 18650 layout-and-wiring capacity maximization under the shared battery backendgmpb_default_dynamic_minfor a stateful dynamic minimization wrapper around the Generalized Moving Peaks Benchmarkpill_capsule_min_areafor constrained continuous optimizationbattery_pack_18650_series_parallel_cost_minfor fixed-topology rectangular 18650 pack sizing under the shared battery backendplanar_truss_span_mass_min,planar_truss_span_deflection_min, andplanar_truss_span_fos_maxfor fixed-joint planar truss structural optimization under realtrussmeevaluationspace_truss_span_mass_minfor fixed-joint 3D space-truss structural optimization under the same shared truss backendplanar_truss_spanfor the original seed planar truss grammar backed bytrussmespace_truss_spanfor a bounded 3D space-truss grammar backed bytrussmebattery_pack_18650_open_endedfor explicit 18650 cell-by-cell graph-netlist co-design backed by an optional PyBaMM-shaped single-cell surrogate plus a library-owned pack solverbattery_pack_18650_series_parallelfor explicit 18650 series-parallel pack co-design backed by the same optional PyBaMM-shaped single-cell surrogate plus a library-owned pack solver- six
planar_roof_truss_*variants that approximate the roof-truss formulations reported by Shea and Cagan moneymaker_hip_pump_cost_minfor a citation-backed scalarized pump benchmarktreadle_pump_ide_material_minfor a citation-backed scalarized treadle-pump benchmarkmcp_build123d_parametric_mounting_bracketfor MCP-ingested CAD workflows where agents author and evaluate Build123d scripts through a package-owned backend
Quickstart
Requires Python 3.12+. Install from PyPI with:
pip install design-research-problems
Install the optional trussme truss support with:
pip install "design-research-problems[grammar]"
The representative optimization baselines are included in the base install.
Install the optional external optimization backends with:
pip install "design-research-problems[solvers]"
The smooth continuous benchmarks continue to use SciPy baselines, while the
open-ended battery co-design optimizer will automatically prefer pymoo, then
nevergrad, and finally fall back to the built-in deterministic local search.
The GMPB wrapper instead uses a simple random-search baseline because each
evaluation advances a dynamic benchmark state.
Then inspect the catalog directly from the installed package:
python3 -c "from design_research_problems import list_problems; print(list_problems())"
And inspect the ideation corpus:
python3 -c "from design_research_problems import get_ideation_catalog; print(len(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.
For local development, reproducible installs are pinned to Python 3.12.12 in
.python-version:
python3 -m venv .venv
source .venv/bin/activate
make dev
make ci
Docs
See the published documentation for the guide and reference layout. Build them locally with:
make docs
Contributing
Contribution guidelines live 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.0.tar.gz.
File metadata
- Download URL: design_research_problems-0.2.0.tar.gz
- Upload date:
- Size: 242.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c94960390940f521156d5ee5f090f8e7062ec92d0bff8c420538820310db160b
|
|
| MD5 |
11fa1b0075e41610758b84176dfec720
|
|
| BLAKE2b-256 |
57f458c5164ae41ff977e063efdbbdda848ca1aa158eab3c70b699ad66c07132
|
Provenance
The following attestation bundles were made for design_research_problems-0.2.0.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.0.tar.gz -
Subject digest:
c94960390940f521156d5ee5f090f8e7062ec92d0bff8c420538820310db160b - Sigstore transparency entry: 1052377096
- Sigstore integration time:
-
Permalink:
cmudrc/design-research-problems@3b889dc40d88ca5ba47b1ce0984473d164921527 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/cmudrc
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
workflow.yml@3b889dc40d88ca5ba47b1ce0984473d164921527 -
Trigger Event:
push
-
Statement type:
File details
Details for the file design_research_problems-0.2.0-py3-none-any.whl.
File metadata
- Download URL: design_research_problems-0.2.0-py3-none-any.whl
- Upload date:
- Size: 342.0 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 |
4d4f3cfa9a68b241dd812bf3b94ae970e25a8b8285750f6b4481a627611ebf8b
|
|
| MD5 |
89fdc8cdb794cf4f36d222c848c815b3
|
|
| BLAKE2b-256 |
2c80cfd9d33a2e6f5477b12b900f9bbabd790d86f7c750b3ee6fd2649a98ad0d
|
Provenance
The following attestation bundles were made for design_research_problems-0.2.0-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.0-py3-none-any.whl -
Subject digest:
4d4f3cfa9a68b241dd812bf3b94ae970e25a8b8285750f6b4481a627611ebf8b - Sigstore transparency entry: 1052377326
- Sigstore integration time:
-
Permalink:
cmudrc/design-research-problems@3b889dc40d88ca5ba47b1ce0984473d164921527 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/cmudrc
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
workflow.yml@3b889dc40d88ca5ba47b1ce0984473d164921527 -
Trigger Event:
push
-
Statement type: