Grammar Problems

Grammar problems describe discrete design actions over a library-owned state. Generic grammar-family tooling should use the shared GrammarProblem contract: initial_state(), enumerate_transitions(), enumerate_next_states(), and evaluate(). Concrete rule methods remain problem-specific conveniences.

See Grammar Problem Catalog for the generated per-problem catalog pages.

The catalog includes planar_truss_span, which translates a serializable planar topology state into a fresh trussme.Truss for evaluation. It also includes space_truss_span, which applies the same evaluation pattern to a bounded 3D space-truss state. It also includes battery_pack_18650_series_parallel, which models a complete rectangular series-parallel battery pack with explicit cell coordinates, whole-stage and whole-branch edits, and an optional evaluation path that uses PyBaMM to extract a fixed-ambient single-cell surrogate while the package owns the pack-level circuit solve. A supported PyBaMM installation is required for that battery evaluation path. The catalog also includes battery_pack_18650_open_ended, which starts from a single 18650 cell and exposes explicit interconnect edits over a full battery graph netlist under that same shared backend. The catalog also includes six planar_roof_truss_* variants that approximate the planar roof truss formulations discussed by Shea and Cagan, including multi-load and symmetry-constrained cases. The catalog also includes iot_home_cooling_system_design, which uses a typed state of IoT products and links over a fixed house geometry and reports total_cost, peak_temp_c, capital_cost, and operation_cost from a deterministic MATLAB-parity thermal and cost simulation. The catalog also includes truss_analysis_program_design, a direct port of the MATLAB Truss Analysis Program mechanics with discrete joint/member/load edits and deterministic mass_kg plus min_fos structural evaluation.

Optional evaluators:

  • It is not required for the base install.

  • trussme is available as the grammar extra.

  • pybamm is available as the battery extra.

  • It is not installed in default CI.

  • It is required for real planar and 3D truss grammar evaluation.