.. Auto-generated by scripts/generate_problem_catalog_docs.py. Do not edit by hand. Space truss span grammar problem ================================ A bounded 3D space-truss grammar for adding joints and members inside a bridge-like envelope. See :doc:`../grammar` for the grammar family index. Quick Facts ----------- .. list-table:: :header-rows: 1 :widths: 20 80 * - Field - Value * - Problem ID - ``space_truss_span`` * - Problem Family - grammar * - Implementation - ``design_research_problems.problems.grammar._space_truss:SpaceTrussSpanProblem`` * - Capabilities - ``discrete-actions``, ``external-adapter``, ``optional-evaluator``, ``serializable-state``, ``statement-markdown`` * - Study Suitability - none * - Tags - ``grammar``, ``truss``, ``3d``, ``discrete``, ``topology`` Taxonomy -------- Formulation discrete_grammar Convexity not_applicable Design Variable Type discrete Is Dynamic no Orientation engineering_practical Feasibility Ratio Hint 0.1 Objective Mode single Constraint Nature hard Bounds Summary bounded 3D topology over a fixed span, width, and height envelope Tags ``grammar``, ``truss``, ``3d``, ``discrete``, ``topology`` Statement --------- Create a stable, lightweight 3D space truss spanning a fixed distance between four support joints. The grammar begins with a bridge-like support frame and a loaded apex joint. Designers can add interior joints inside a bounded 3D envelope, add members, and remove members. States are evaluated by translating the library-owned grammar state into a fresh ``trussme.Truss``, applying the load, and attempting a structural analysis. Singular or unstable states are treated as infeasible results. Problem Shape ------------- .. list-table:: :header-rows: 1 :widths: 25 75 * - Field - Value * - State Type - SpaceTrussState * - Initial Transition Count - 14 * - Initial Rule Names - ``add_joint``, ``add_member`` Manifest Parameters ------------------- .. list-table:: :header-rows: 1 :widths: 25 75 * - Key - Value * - candidate_point_fractions_3d - [[0.25, -1.0, 0.5], [0.25, 1.0, 0.5], [0.75, -1.0, 0.5], [0.75, 1.0, 0.5]] * - load_magnitude - 1000 * - max_height - 5 * - span - 10 * - width - 4 Initial Transition Summary -------------------------- .. list-table:: :header-rows: 1 :widths: 70 30 * - Rule Name - Transition Count * - add_joint - 4 * - add_member - 10 Library Interface ----------------- - ``initial_state()`` - ``enumerate_transitions(state)`` - ``enumerate_next_states(state)`` - ``evaluate(state)``