Metadata-Version: 2.4
Name: design-research-problems
Version: 0.1.0
Summary: A compendium of canonical design research problems
Author: The Design Research Collective
Maintainer-email: "Christopher C. McComb" <ccm@cmu.edu>
License-Expression: MIT
Project-URL: Homepage, https://cmudrc.github.io/design-research-problems/
Project-URL: Documentation, https://cmudrc.github.io/design-research-problems/
Project-URL: Repository, https://github.com/cmudrc/design-research-problems
Project-URL: Issues, https://github.com/cmudrc/design-research-problems/issues
Keywords: design,research,optimization,benchmark,problems
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Operating System :: OS Independent
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Typing :: Typed
Requires-Python: >=3.12
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy<3,>=1.26
Provides-Extra: grammar
Requires-Dist: trussme>=0.1.0; extra == "grammar"
Provides-Extra: opt
Requires-Dist: scipy<2,>=1.11; extra == "opt"
Provides-Extra: dev
Requires-Dist: build<2,>=1.2; extra == "dev"
Requires-Dist: mypy<2,>=1.10; extra == "dev"
Requires-Dist: pre-commit<5,>=3.7; extra == "dev"
Requires-Dist: pytest<9,>=8.2; extra == "dev"
Requires-Dist: pytest-cov<8,>=7.0; extra == "dev"
Requires-Dist: ruff<1,>=0.6.0; extra == "dev"
Requires-Dist: sphinx<9,>=7.4; extra == "dev"
Requires-Dist: sphinx-rtd-theme<4,>=2.0; extra == "dev"
Requires-Dist: sphinxcontrib-mermaid<2,>=1.0; extra == "dev"
Requires-Dist: twine<7,>=5.1; extra == "dev"
Dynamic: license-file

# design-research-problems
[![CI](https://github.com/cmudrc/design-research-problems/actions/workflows/ci.yml/badge.svg)](https://github.com/cmudrc/design-research-problems/actions/workflows/ci.yml)
[![Coverage](https://raw.githubusercontent.com/cmudrc/design-research-problems/main/.github/badges/coverage.svg)](https://github.com/cmudrc/design-research-problems/actions/workflows/ci.yml)
[![Examples Passing](https://raw.githubusercontent.com/cmudrc/design-research-problems/main/.github/badges/examples-passing.svg)](https://github.com/cmudrc/design-research-problems/actions/workflows/ci.yml)
[![Public API In Examples](https://raw.githubusercontent.com/cmudrc/design-research-problems/main/.github/badges/examples-api-coverage.svg)](https://github.com/cmudrc/design-research-problems/actions/workflows/ci.yml)
[![Docs](https://github.com/cmudrc/design-research-problems/actions/workflows/docs-pages.yml/badge.svg)](https://github.com/cmudrc/design-research-problems/actions/workflows/docs-pages.yml)

`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 three seed problem families:

- Text problems for human-subjects studies and prompt packets
- Optimization problems with typed bounds and lazy SciPy-backed solving
- Grammar problems that describe discrete design actions and optional evaluation adapters

The first catalog includes:

- `peanut_sheller_fu2010` for text-based design research
- `pill_capsule_min_area` for constrained continuous optimization
- `planar_truss_span` for a discrete topology grammar backed by `trussme`

## Quickstart

Requires Python 3.12+.
Install from PyPI with:

```bash
pip install design-research-problems
```

Install the optional optimization solver support with:

```bash
pip install "design-research-problems[opt]"
```

Install the optional `trussme` grammar support with:

```bash
pip install "design-research-problems[grammar]"
```

Then inspect the catalog directly from the installed package:

```bash
python3 -c "from design_research_problems import list_problems; print(list_problems())"
```

For local development, reproducible installs are pinned to Python `3.12.12` in
`.python-version`:

```bash
python3 -m venv .venv
source .venv/bin/activate
make dev
make ci
```

## Docs

See the [published documentation](https://cmudrc.github.io/design-research-problems/)
for the guide and reference layout.
Build them locally with:

```bash
make docs
```

## Contributing

Contribution guidelines live in
[CONTRIBUTING.md](https://github.com/cmudrc/design-research-problems/blob/main/CONTRIBUTING.md).
