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

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_max for explicit 18650 layout-and-wiring capacity maximization under the shared battery backend
  • gmpb_default_dynamic_min for a stateful dynamic minimization wrapper around the Generalized Moving Peaks Benchmark
  • pill_capsule_min_area for constrained continuous optimization
  • battery_pack_18650_series_parallel_cost_min for fixed-topology rectangular 18650 pack sizing under the shared battery backend
  • planar_truss_span_mass_min, planar_truss_span_deflection_min, and planar_truss_span_fos_max for fixed-joint planar truss structural optimization under real trussme evaluation
  • space_truss_span_mass_min for fixed-joint 3D space-truss structural optimization under the same shared truss backend
  • planar_truss_span for the original seed planar truss grammar backed by trussme
  • space_truss_span for a bounded 3D space-truss grammar backed by trussme
  • battery_pack_18650_open_ended for explicit 18650 cell-by-cell graph-netlist co-design backed by an optional PyBaMM-shaped single-cell surrogate plus a library-owned pack solver
  • battery_pack_18650_series_parallel for 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_min for a citation-backed scalarized pump benchmark
  • treadle_pump_ide_material_min for a citation-backed scalarized treadle-pump benchmark
  • mcp_build123d_parametric_mounting_bracket for 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


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.0.tar.gz (242.8 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.0-py3-none-any.whl (342.0 kB view details)

Uploaded Python 3

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

Hashes for design_research_problems-0.2.0.tar.gz
Algorithm Hash digest
SHA256 c94960390940f521156d5ee5f090f8e7062ec92d0bff8c420538820310db160b
MD5 11fa1b0075e41610758b84176dfec720
BLAKE2b-256 57f458c5164ae41ff977e063efdbbdda848ca1aa158eab3c70b699ad66c07132

See more details on using hashes here.

Provenance

The following attestation bundles were made for design_research_problems-0.2.0.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.0-py3-none-any.whl.

File metadata

File hashes

Hashes for design_research_problems-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4d4f3cfa9a68b241dd812bf3b94ae970e25a8b8285750f6b4481a627611ebf8b
MD5 89fdc8cdb794cf4f36d222c848c815b3
BLAKE2b-256 2c80cfd9d33a2e6f5477b12b900f9bbabd790d86f7c750b3ee6fd2649a98ad0d

See more details on using hashes here.

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

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