Skip to main content

A compendium of canonical design research problems

Project description

design-research-problems

CI Coverage Examples Passing Public API In Examples Docs

[!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 Problem and ComputableProblem, 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, and MCPProblem.
  • Family-specific evaluation contracts: DecisionEvaluation, OptimizationEvaluation, and GrammarTransition.
  • Catalog access: ProblemRegistry, get_problem, get_problem_as, and list_problems.
  • Ideation metadata API: IdeationCatalog, IdeationPromptRecord, IdeationPromptVariant, IdeationPromptFamily, IdeationStudy, EvidenceTier, and get_ideation_catalog.
  • Public exceptions: MissingOptionalDependencyError and ProblemEvaluationError.

Contributing

Contribution workflow and quality gates are documented in CONTRIBUTING.md.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

design_research_problems-0.2.1.tar.gz (468.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

design_research_problems-0.2.1-py3-none-any.whl (611.5 kB view details)

Uploaded Python 3

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

Hashes for design_research_problems-0.2.1.tar.gz
Algorithm Hash digest
SHA256 cf52ba5c25334d85c05b7520fcc0ca874e5752aa965e482c182bbeec3a864f94
MD5 889f84e4e38b40d4a5601339de5828b3
BLAKE2b-256 f56b63df3f3187626f64e351fc3dd279f0e3a682c209cf6903c13a92fe02d0de

See more details on using hashes here.

Provenance

The following attestation bundles were made for design_research_problems-0.2.1.tar.gz:

Publisher: workflow.yml on cmudrc/design-research-problems

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file design_research_problems-0.2.1-py3-none-any.whl.

File metadata

File hashes

Hashes for design_research_problems-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d1c70d7d086dff51600d24a8b67f05e73b227c826345ad698479e95da3f7a679
MD5 bab13e4bdbfd4d323ca2faf023362990
BLAKE2b-256 de120df8d3675a71db00c50ee1c83c8a8a4ad5aa188920d359e4db96d7bf2095

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page