design-research-problems 0.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. design_research_problems-0.1.0/LICENSE +21 -0
  2. design_research_problems-0.1.0/PKG-INFO +118 -0
  3. design_research_problems-0.1.0/README.md +76 -0
  4. design_research_problems-0.1.0/pyproject.toml +118 -0
  5. design_research_problems-0.1.0/setup.cfg +4 -0
  6. design_research_problems-0.1.0/src/design_research_problems/__init__.py +73 -0
  7. design_research_problems-0.1.0/src/design_research_problems/_assets/catalog/peanut_sheller_fu2010/citation.bib +5 -0
  8. design_research_problems-0.1.0/src/design_research_problems/_assets/catalog/peanut_sheller_fu2010/problem.toml +26 -0
  9. design_research_problems-0.1.0/src/design_research_problems/_assets/catalog/peanut_sheller_fu2010/statement.md +18 -0
  10. design_research_problems-0.1.0/src/design_research_problems/_assets/catalog/pill_capsule_min_area/problem.toml +28 -0
  11. design_research_problems-0.1.0/src/design_research_problems/_assets/catalog/pill_capsule_min_area/statement.md +8 -0
  12. design_research_problems-0.1.0/src/design_research_problems/_assets/catalog/planar_truss_span/problem.toml +30 -0
  13. design_research_problems-0.1.0/src/design_research_problems/_assets/catalog/planar_truss_span/statement.md +10 -0
  14. design_research_problems-0.1.0/src/design_research_problems/_catalog/__init__.py +5 -0
  15. design_research_problems-0.1.0/src/design_research_problems/_catalog/_loader.py +220 -0
  16. design_research_problems-0.1.0/src/design_research_problems/_catalog/_manifest.py +22 -0
  17. design_research_problems-0.1.0/src/design_research_problems/_catalog/_registry.py +199 -0
  18. design_research_problems-0.1.0/src/design_research_problems/_exceptions.py +11 -0
  19. design_research_problems-0.1.0/src/design_research_problems/_lazy_exports.py +53 -0
  20. design_research_problems-0.1.0/src/design_research_problems/problems/__init__.py +17 -0
  21. design_research_problems-0.1.0/src/design_research_problems/problems/_assets.py +47 -0
  22. design_research_problems-0.1.0/src/design_research_problems/problems/_grammar.py +63 -0
  23. design_research_problems-0.1.0/src/design_research_problems/problems/_metadata.py +104 -0
  24. design_research_problems-0.1.0/src/design_research_problems/problems/_optimization.py +161 -0
  25. design_research_problems-0.1.0/src/design_research_problems/problems/_text.py +55 -0
  26. design_research_problems-0.1.0/src/design_research_problems/problems/grammar/__init__.py +23 -0
  27. design_research_problems-0.1.0/src/design_research_problems/problems/grammar/_planar_truss.py +418 -0
  28. design_research_problems-0.1.0/src/design_research_problems/problems/optimization/__init__.py +5 -0
  29. design_research_problems-0.1.0/src/design_research_problems/problems/optimization/_pill.py +118 -0
  30. design_research_problems-0.1.0/src/design_research_problems/py.typed +1 -0
  31. design_research_problems-0.1.0/src/design_research_problems.egg-info/PKG-INFO +118 -0
  32. design_research_problems-0.1.0/src/design_research_problems.egg-info/SOURCES.txt +38 -0
  33. design_research_problems-0.1.0/src/design_research_problems.egg-info/dependency_links.txt +1 -0
  34. design_research_problems-0.1.0/src/design_research_problems.egg-info/requires.txt +19 -0
  35. design_research_problems-0.1.0/src/design_research_problems.egg-info/top_level.txt +1 -0
  36. design_research_problems-0.1.0/tests/test_examples.py +53 -0
  37. design_research_problems-0.1.0/tests/test_packaging_resources.py +99 -0
  38. design_research_problems-0.1.0/tests/test_public_api.py +29 -0
  39. design_research_problems-0.1.0/tests/test_registry_and_problems.py +229 -0
  40. design_research_problems-0.1.0/tests/test_trussme_real.py +23 -0
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 The Design Research Collective
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,118 @@
1
+ Metadata-Version: 2.4
2
+ Name: design-research-problems
3
+ Version: 0.1.0
4
+ Summary: A compendium of canonical design research problems
5
+ Author: The Design Research Collective
6
+ Maintainer-email: "Christopher C. McComb" <ccm@cmu.edu>
7
+ License-Expression: MIT
8
+ Project-URL: Homepage, https://cmudrc.github.io/design-research-problems/
9
+ Project-URL: Documentation, https://cmudrc.github.io/design-research-problems/
10
+ Project-URL: Repository, https://github.com/cmudrc/design-research-problems
11
+ Project-URL: Issues, https://github.com/cmudrc/design-research-problems/issues
12
+ Keywords: design,research,optimization,benchmark,problems
13
+ Classifier: Development Status :: 3 - Alpha
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: Programming Language :: Python :: 3 :: Only
16
+ Classifier: Programming Language :: Python :: 3
17
+ Classifier: Programming Language :: Python :: 3.12
18
+ Classifier: Operating System :: OS Independent
19
+ Classifier: Topic :: Scientific/Engineering
20
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
21
+ Classifier: Typing :: Typed
22
+ Requires-Python: >=3.12
23
+ Description-Content-Type: text/markdown
24
+ License-File: LICENSE
25
+ Requires-Dist: numpy<3,>=1.26
26
+ Provides-Extra: grammar
27
+ Requires-Dist: trussme>=0.1.0; extra == "grammar"
28
+ Provides-Extra: opt
29
+ Requires-Dist: scipy<2,>=1.11; extra == "opt"
30
+ Provides-Extra: dev
31
+ Requires-Dist: build<2,>=1.2; extra == "dev"
32
+ Requires-Dist: mypy<2,>=1.10; extra == "dev"
33
+ Requires-Dist: pre-commit<5,>=3.7; extra == "dev"
34
+ Requires-Dist: pytest<9,>=8.2; extra == "dev"
35
+ Requires-Dist: pytest-cov<8,>=7.0; extra == "dev"
36
+ Requires-Dist: ruff<1,>=0.6.0; extra == "dev"
37
+ Requires-Dist: sphinx<9,>=7.4; extra == "dev"
38
+ Requires-Dist: sphinx-rtd-theme<4,>=2.0; extra == "dev"
39
+ Requires-Dist: sphinxcontrib-mermaid<2,>=1.0; extra == "dev"
40
+ Requires-Dist: twine<7,>=5.1; extra == "dev"
41
+ Dynamic: license-file
42
+
43
+ # design-research-problems
44
+ [![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)
45
+ [![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)
46
+ [![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)
47
+ [![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)
48
+ [![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)
49
+
50
+ `design-research-problems` is a compact library and compendium of design research
51
+ problems. It packages canonical research prompts, optimization benchmarks, and
52
+ discrete grammar-style problems behind a small, typed Python API.
53
+
54
+ ## Overview
55
+
56
+ The initial release centers on three seed problem families:
57
+
58
+ - Text problems for human-subjects studies and prompt packets
59
+ - Optimization problems with typed bounds and lazy SciPy-backed solving
60
+ - Grammar problems that describe discrete design actions and optional evaluation adapters
61
+
62
+ The first catalog includes:
63
+
64
+ - `peanut_sheller_fu2010` for text-based design research
65
+ - `pill_capsule_min_area` for constrained continuous optimization
66
+ - `planar_truss_span` for a discrete topology grammar backed by `trussme`
67
+
68
+ ## Quickstart
69
+
70
+ Requires Python 3.12+.
71
+ Install from PyPI with:
72
+
73
+ ```bash
74
+ pip install design-research-problems
75
+ ```
76
+
77
+ Install the optional optimization solver support with:
78
+
79
+ ```bash
80
+ pip install "design-research-problems[opt]"
81
+ ```
82
+
83
+ Install the optional `trussme` grammar support with:
84
+
85
+ ```bash
86
+ pip install "design-research-problems[grammar]"
87
+ ```
88
+
89
+ Then inspect the catalog directly from the installed package:
90
+
91
+ ```bash
92
+ python3 -c "from design_research_problems import list_problems; print(list_problems())"
93
+ ```
94
+
95
+ For local development, reproducible installs are pinned to Python `3.12.12` in
96
+ `.python-version`:
97
+
98
+ ```bash
99
+ python3 -m venv .venv
100
+ source .venv/bin/activate
101
+ make dev
102
+ make ci
103
+ ```
104
+
105
+ ## Docs
106
+
107
+ See the [published documentation](https://cmudrc.github.io/design-research-problems/)
108
+ for the guide and reference layout.
109
+ Build them locally with:
110
+
111
+ ```bash
112
+ make docs
113
+ ```
114
+
115
+ ## Contributing
116
+
117
+ Contribution guidelines live in
118
+ [CONTRIBUTING.md](https://github.com/cmudrc/design-research-problems/blob/main/CONTRIBUTING.md).
@@ -0,0 +1,76 @@
1
+ # design-research-problems
2
+ [![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)
3
+ [![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)
4
+ [![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)
5
+ [![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)
6
+ [![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)
7
+
8
+ `design-research-problems` is a compact library and compendium of design research
9
+ problems. It packages canonical research prompts, optimization benchmarks, and
10
+ discrete grammar-style problems behind a small, typed Python API.
11
+
12
+ ## Overview
13
+
14
+ The initial release centers on three seed problem families:
15
+
16
+ - Text problems for human-subjects studies and prompt packets
17
+ - Optimization problems with typed bounds and lazy SciPy-backed solving
18
+ - Grammar problems that describe discrete design actions and optional evaluation adapters
19
+
20
+ The first catalog includes:
21
+
22
+ - `peanut_sheller_fu2010` for text-based design research
23
+ - `pill_capsule_min_area` for constrained continuous optimization
24
+ - `planar_truss_span` for a discrete topology grammar backed by `trussme`
25
+
26
+ ## Quickstart
27
+
28
+ Requires Python 3.12+.
29
+ Install from PyPI with:
30
+
31
+ ```bash
32
+ pip install design-research-problems
33
+ ```
34
+
35
+ Install the optional optimization solver support with:
36
+
37
+ ```bash
38
+ pip install "design-research-problems[opt]"
39
+ ```
40
+
41
+ Install the optional `trussme` grammar support with:
42
+
43
+ ```bash
44
+ pip install "design-research-problems[grammar]"
45
+ ```
46
+
47
+ Then inspect the catalog directly from the installed package:
48
+
49
+ ```bash
50
+ python3 -c "from design_research_problems import list_problems; print(list_problems())"
51
+ ```
52
+
53
+ For local development, reproducible installs are pinned to Python `3.12.12` in
54
+ `.python-version`:
55
+
56
+ ```bash
57
+ python3 -m venv .venv
58
+ source .venv/bin/activate
59
+ make dev
60
+ make ci
61
+ ```
62
+
63
+ ## Docs
64
+
65
+ See the [published documentation](https://cmudrc.github.io/design-research-problems/)
66
+ for the guide and reference layout.
67
+ Build them locally with:
68
+
69
+ ```bash
70
+ make docs
71
+ ```
72
+
73
+ ## Contributing
74
+
75
+ Contribution guidelines live in
76
+ [CONTRIBUTING.md](https://github.com/cmudrc/design-research-problems/blob/main/CONTRIBUTING.md).
@@ -0,0 +1,118 @@
1
+ [build-system]
2
+ requires = ["setuptools>=77", "wheel"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "design-research-problems"
7
+ version = "0.1.0"
8
+ description = "A compendium of canonical design research problems"
9
+ readme = "README.md"
10
+ requires-python = ">=3.12"
11
+ license = "MIT"
12
+ license-files = ["LICENSE"]
13
+ authors = [{ name = "The Design Research Collective" }]
14
+ maintainers = [{ name = "Christopher C. McComb", email = "ccm@cmu.edu" }]
15
+ keywords = ["design", "research", "optimization", "benchmark", "problems"]
16
+ classifiers = [
17
+ "Development Status :: 3 - Alpha",
18
+ "Intended Audience :: Developers",
19
+ "Programming Language :: Python :: 3 :: Only",
20
+ "Programming Language :: Python :: 3",
21
+ "Programming Language :: Python :: 3.12",
22
+ "Operating System :: OS Independent",
23
+ "Topic :: Scientific/Engineering",
24
+ "Topic :: Software Development :: Libraries :: Python Modules",
25
+ "Typing :: Typed",
26
+ ]
27
+ dependencies = [
28
+ "numpy>=1.26,<3",
29
+ ]
30
+
31
+ [project.urls]
32
+ Homepage = "https://cmudrc.github.io/design-research-problems/"
33
+ Documentation = "https://cmudrc.github.io/design-research-problems/"
34
+ Repository = "https://github.com/cmudrc/design-research-problems"
35
+ Issues = "https://github.com/cmudrc/design-research-problems/issues"
36
+
37
+ [project.optional-dependencies]
38
+ grammar = ["trussme>=0.1.0"]
39
+ opt = ["scipy>=1.11,<2"]
40
+ dev = [
41
+ "build>=1.2,<2",
42
+ "mypy>=1.10,<2",
43
+ "pre-commit>=3.7,<5",
44
+ "pytest>=8.2,<9",
45
+ "pytest-cov>=7.0,<8",
46
+ "ruff>=0.6.0,<1",
47
+ "sphinx>=7.4,<9",
48
+ "sphinx-rtd-theme>=2.0,<4",
49
+ "sphinxcontrib-mermaid>=1.0,<2",
50
+ "twine>=5.1,<7",
51
+ ]
52
+
53
+ [tool.setuptools]
54
+ package-dir = { "" = "src" }
55
+ include-package-data = true
56
+
57
+ [tool.setuptools.packages.find]
58
+ where = ["src"]
59
+
60
+ [tool.setuptools.package-data]
61
+ design_research_problems = [
62
+ "py.typed",
63
+ "_assets/catalog/*/*.toml",
64
+ "_assets/catalog/*/*.md",
65
+ "_assets/catalog/*/*.bib",
66
+ ]
67
+
68
+ [tool.pytest.ini_options]
69
+ addopts = "-q"
70
+ testpaths = ["tests"]
71
+ markers = [
72
+ "examples_full: deterministic example execution suite",
73
+ "examples_smoke: lightweight example smoke checks",
74
+ "trussme_real: tests that require an installed trussme package",
75
+ ]
76
+
77
+ [tool.ruff]
78
+ line-length = 120
79
+ target-version = "py312"
80
+ src = ["src", "tests", "examples", "scripts"]
81
+
82
+ [tool.ruff.format]
83
+ quote-style = "double"
84
+ indent-style = "space"
85
+ skip-magic-trailing-comma = false
86
+ line-ending = "auto"
87
+
88
+ [tool.ruff.lint]
89
+ select = ["E", "F", "I", "UP", "B", "SIM", "RUF", "D"]
90
+
91
+ [tool.ruff.lint.pydocstyle]
92
+ convention = "google"
93
+
94
+ [tool.ruff.lint.per-file-ignores]
95
+ "tests/*.py" = ["D"]
96
+ "examples/**/*.py" = ["D"]
97
+ "scripts/*.py" = ["D"]
98
+
99
+ [tool.mypy]
100
+ packages = ["design_research_problems"]
101
+ python_version = "3.12"
102
+ warn_unused_configs = true
103
+ check_untyped_defs = true
104
+ disallow_untyped_defs = true
105
+ no_implicit_optional = true
106
+ warn_redundant_casts = true
107
+ warn_unused_ignores = true
108
+ warn_return_any = true
109
+ strict_equality = true
110
+
111
+ [[tool.mypy.overrides]]
112
+ module = [
113
+ "scipy",
114
+ "scipy.*",
115
+ "trussme",
116
+ "trussme.*",
117
+ ]
118
+ ignore_missing_imports = true
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,73 @@
1
+ """Curated public package interface with lazily resolved exports."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from importlib.metadata import PackageNotFoundError, version
6
+ from typing import TYPE_CHECKING, Final
7
+
8
+ from design_research_problems._lazy_exports import module_dir, resolve_lazy_export
9
+
10
+ _EXPORTS: Final[dict[str, str]] = {
11
+ "ProblemKind": "design_research_problems.problems:ProblemKind",
12
+ "ProblemMetadata": "design_research_problems.problems:ProblemMetadata",
13
+ "ProblemTaxonomy": "design_research_problems.problems:ProblemTaxonomy",
14
+ "Citation": "design_research_problems.problems:Citation",
15
+ "ProblemAsset": "design_research_problems.problems:ProblemAsset",
16
+ "TextProblem": "design_research_problems.problems:TextProblem",
17
+ "OptimizationProblem": "design_research_problems.problems:OptimizationProblem",
18
+ "GrammarProblem": "design_research_problems.problems:GrammarProblem",
19
+ "ProblemRegistry": "design_research_problems._catalog:ProblemRegistry",
20
+ "MissingOptionalDependencyError": "design_research_problems._exceptions:MissingOptionalDependencyError",
21
+ "ProblemEvaluationError": "design_research_problems._exceptions:ProblemEvaluationError",
22
+ "get_problem": "design_research_problems._catalog:get_problem",
23
+ "list_problems": "design_research_problems._catalog:list_problems",
24
+ }
25
+
26
+ __all__ = ["__version__", *_EXPORTS.keys()]
27
+
28
+ try:
29
+ __version__ = version("design-research-problems")
30
+ except PackageNotFoundError:
31
+ __version__ = "0+unknown"
32
+
33
+
34
+ def __getattr__(name: str) -> object:
35
+ """Resolve and cache one deferred public export.
36
+
37
+ Args:
38
+ name: Public symbol name requested from the package module.
39
+
40
+ Returns:
41
+ Resolved export object.
42
+ """
43
+ return resolve_lazy_export(
44
+ module_name=__name__,
45
+ exports=_EXPORTS,
46
+ export_name=name,
47
+ namespace=globals(),
48
+ )
49
+
50
+
51
+ def __dir__() -> list[str]:
52
+ """Return package attributes, including deferred exports.
53
+
54
+ Returns:
55
+ Sorted attribute list for interactive discovery.
56
+ """
57
+ return module_dir(globals(), __all__)
58
+
59
+
60
+ if TYPE_CHECKING:
61
+ from ._catalog import ProblemRegistry as ProblemRegistry
62
+ from ._catalog import get_problem as get_problem
63
+ from ._catalog import list_problems as list_problems
64
+ from ._exceptions import MissingOptionalDependencyError as MissingOptionalDependencyError
65
+ from ._exceptions import ProblemEvaluationError as ProblemEvaluationError
66
+ from .problems import Citation as Citation
67
+ from .problems import GrammarProblem as GrammarProblem
68
+ from .problems import OptimizationProblem as OptimizationProblem
69
+ from .problems import ProblemAsset as ProblemAsset
70
+ from .problems import ProblemKind as ProblemKind
71
+ from .problems import ProblemMetadata as ProblemMetadata
72
+ from .problems import ProblemTaxonomy as ProblemTaxonomy
73
+ from .problems import TextProblem as TextProblem
@@ -0,0 +1,5 @@
1
+ @article{fu2010design,
2
+ title={Design team convergence: the influence of example solution quality},
3
+ author={Fu, Katherine and Cagan, Jonathan and Kotovsky, Kenneth},
4
+ year={2010}
5
+ }
@@ -0,0 +1,26 @@
1
+ problem_id = "peanut_sheller_fu2010"
2
+ title = "Design Problem - Device to shell peanuts"
3
+ summary = "A text-based design prompt about a low-cost peanut sheller for small-scale farmers."
4
+ kind = "text"
5
+ statement_file = "statement.md"
6
+ citation_file = "citation.bib"
7
+ citation_key = "fu2010design"
8
+ citation_kind = "bibtex"
9
+ feature_flags = [
10
+ "statement-markdown",
11
+ "citation-backed",
12
+ "prompt-packet",
13
+ "human-subjects-ready",
14
+ ]
15
+
16
+ [taxonomy]
17
+ formulation = "textual_prompt"
18
+ convexity = "not_applicable"
19
+ design_variable_type = "not_applicable"
20
+ is_dynamic = false
21
+ orientation = "engineering_practical"
22
+ feasibility_ratio_hint = 1.0
23
+ objective_mode = "qualitative"
24
+ constraint_nature = "informal"
25
+ bounds_summary = "not_applicable"
26
+ tags = ["text", "human-subjects", "agriculture", "mechanical-design"]
@@ -0,0 +1,18 @@
1
+ # Design Problem - Device to shell peanuts
2
+
3
+ In places like Haiti and certain West African countries, peanuts are a
4
+ significant crop. Most peanut farmers shell their peanuts by hand, an
5
+ inefficient and labor-intensive process. Our goal is to build a low-cost,
6
+ easy to manufacture peanut sheller targeted at individuals and small
7
+ cooperatives that will increase the productivity of the peanut farmers.
8
+ Further, this peanut sheller should be manufacturable with materials that are
9
+ readily available in the target communities. Our target throughput is
10
+ approximately 50 kg (110 lbs) per hour.
11
+
12
+ # Customer Needs
13
+
14
+ - Must remove the shell with minimal damage to the peanuts.
15
+ - Electrical outlets are not available as a power source.
16
+ - A large quantity of peanuts must be quickly shelled.
17
+ - Low cost.
18
+ - Easy to manufacture.
@@ -0,0 +1,28 @@
1
+ problem_id = "pill_capsule_min_area"
2
+ title = "Pill capsule minimum-area problem"
3
+ summary = "A two-variable constrained optimization problem that minimizes capsule surface area at fixed volume."
4
+ kind = "optimization"
5
+ statement_file = "statement.md"
6
+ implementation = "design_research_problems.problems.optimization._pill:PillCapsuleMinArea"
7
+ feature_flags = [
8
+ "statement-markdown",
9
+ "bounded-variables",
10
+ "equality-constraint",
11
+ "seeded-data-generation",
12
+ "optional-solver",
13
+ ]
14
+
15
+ [parameters]
16
+ required_volume = 1e-6
17
+
18
+ [taxonomy]
19
+ formulation = "nonlinear_program"
20
+ convexity = "not_guaranteed"
21
+ design_variable_type = "continuous"
22
+ is_dynamic = false
23
+ orientation = "mathematical"
24
+ feasibility_ratio_hint = 0.5
25
+ objective_mode = "single"
26
+ constraint_nature = "hard"
27
+ bounds_summary = "radius and length bounded on [0, 1]"
28
+ tags = ["optimization", "continuous", "nonlinear", "single-objective"]
@@ -0,0 +1,8 @@
1
+ # Pill capsule minimum-area problem
2
+
3
+ Minimize the surface area of a capsule-shaped pill while satisfying a fixed
4
+ volume requirement. The design variables are the capsule radius and cylindrical
5
+ section length. Both variables are bounded on [0, 1].
6
+
7
+ This seed problem is a compact constrained optimization benchmark for design
8
+ research workflows and solver experiments.
@@ -0,0 +1,30 @@
1
+ problem_id = "planar_truss_span"
2
+ title = "Planar truss span grammar problem"
3
+ summary = "A discrete topology grammar for adding and removing joints and members in a planar truss."
4
+ kind = "grammar"
5
+ statement_file = "statement.md"
6
+ implementation = "design_research_problems.problems.grammar._planar_truss:PlanarTrussSpanProblem"
7
+ feature_flags = [
8
+ "statement-markdown",
9
+ "serializable-state",
10
+ "discrete-actions",
11
+ "optional-evaluator",
12
+ "external-adapter",
13
+ ]
14
+
15
+ [parameters]
16
+ span = 10.0
17
+ max_height = 5.0
18
+ load_magnitude = 1000.0
19
+
20
+ [taxonomy]
21
+ formulation = "discrete_grammar"
22
+ convexity = "not_applicable"
23
+ design_variable_type = "discrete"
24
+ is_dynamic = false
25
+ orientation = "engineering_practical"
26
+ feasibility_ratio_hint = 0.25
27
+ objective_mode = "single"
28
+ constraint_nature = "hard"
29
+ bounds_summary = "planar topology over a fixed span and height envelope"
30
+ tags = ["grammar", "truss", "discrete", "topology"]
@@ -0,0 +1,10 @@
1
+ # Planar truss span grammar problem
2
+
3
+ Create a stable, lightweight planar truss spanning a fixed distance between a
4
+ left pinned support and a right roller support. The grammar begins with the
5
+ supports and one loaded free joint. Designers can add interior joints, add
6
+ members, and remove members.
7
+
8
+ States are evaluated by translating the library-owned grammar state into a
9
+ fresh `trussme.Truss`, applying the load, and attempting a structural
10
+ analysis. Singular or unstable states are treated as infeasible results.
@@ -0,0 +1,5 @@
1
+ """Catalog loading and registry exports."""
2
+
3
+ from ._registry import ProblemRegistry, get_problem, list_problems
4
+
5
+ __all__ = ["ProblemRegistry", "get_problem", "list_problems"]