PolyBridgeBench: Benchmarking Multimodal LLMs for Physics-Grounded Bridge Design
Organizations: Fudan University · Shanghai Innovation Institute
Abstract
Multimodal large language models, or MLLMs, perform well at visual understanding and structured generation, yet these capabilities do not establish whether an engineering design will work when executed. Existing benchmarks assess spatial reasoning, structural validity, or physics-grounded construction, but they do not determine whether MLLMs can synthesize complete load-bearing structures and repair them after simulator execution exposes a failure. We introduce PolyBridgeBench, an executable benchmark for multimodal bridge design. A model receives a visual scene and structured engineering constraints and generates a complete node--member--material topology. Deterministic legality checks gate execution in a native dynamic physics simulation. Following an execution failure, the benchmark returns temporal visual evidence from the failed rollout and evaluates repair under a fixed interaction budget. Separate measurements of deterministic validity, dynamic functional success, and post-failure recovery identify the stage at which design fails. Experiments with six representative MLLMs across 189 levels expose a substantial gap between deterministic validity and dynamic success, pronounced sensitivity to material budgets, and limited post-failure recovery under the primary strict-budget setting.
Figures & tables
| Model | Level 1 | Level 2 | Overall | ||||||
|---|---|---|---|---|---|---|---|---|---|
| S@1 | S@3 | S@1 | S@3 | V@1 | S@1 | V@3 | S@3 | R@3 | |
| Loose budget | |||||||||
| gemini-3-flash-preview | 80.5 | 92.6 | 40.0 | 55.0 | 84.7 | 72.0 | 96.3 | 84.7 | 33.3 |
| qwen3-vl-plus | 3.4 | 15.4 | 0.0 | 0.0 | 50.8 | 2.6 | 92.1 | 12.2 | 10.8 |
| gemma-4-31b-it | 22.8 | 57.7 | 0.0 | 2.5 | 31.2 | 18.0 | 79.9 | 46.0 | 37.9 |
| kimi-k2.5 | 7.4 | 23.5 | 0.0 | 0.0 | 12.2 | 5.8 | 41.8 | 18.5 | 28.0 |
Appendix figures & tables15 assets
Supplementary material from the paper’s appendix.
Appendix
| Family | Span (m) | Primary structural variation | Material/load variation | Strict budget | |
|---|---|---|---|---|---|
| T1B | 5 | 8–16 | Standard flat span with two bank anchors | One vehicle; two vehicles for longer spans | 17.0k |
| T1C | 4 | 8–14 | Left-asymmetric bank support with three anchors | Full material set; one vehicle | 13.0k |
| T1D | 5 | 8–16 | Symmetric dual bank supports with four anchors | RW only; one vehicle | 17.0k |
| T1E | 15 | 8–16 | One centered bottom anchor at offsets 2, 3, or 4 m | RW at 2 m offset, otherwise full materials | 17.0k |
| T1F | 10 | 10–18 | Two bottom anchors at offsets 2 or 3 m | RW at 2 m offset, otherwise full materials | 17.5k |
| T1G | 16 | 10–16 | One off-center bottom anchor at 0.35 or 0.65 of span | Bottom offsets 2.5 or 3.5 m; one vehicle | 17.0k |
| Family | Span (m) | Primary structural variation | Material/load variation | Strict budget | |
|---|---|---|---|---|---|
| T2A | 8 | 8–14 | Uphill banks with 2 or 4 m elevation change | Two vehicles on the longer spans | 15.0k |
| T2B | 12 | 14–18 | Raised center platform with varied width and height | RW or full materials | 11.0k |
| T2C | 4 | 12–18 | Central rock-clearance constraint | Full materials; one vehicle | 15.0k |
| T2D | 8 | 8–14 | Downhill banks with 2 or 4 m elevation change | Two vehicles on the longer spans | 15.0k |
| T2E | 6 | 10–14 | Uphill banks plus a center-bottom anchor | Elevation change 2 or 4 m | 15.0k |
| T2F | 6 | 10–14 | Downhill banks plus a center-bottom anchor | Elevation change 2 or 4 m | 15.0k |
| Family | Span (m) | Constraint composition | Material/load variation | Strict budget | |
|---|---|---|---|---|---|
| G1 | 8 | 12–18 | Rock clearance combined with increased traffic load | Full materials; two standard or one 3-PG vehicle | 21.0k |
| G2 | 4 | 12–14 | Rock clearance, restricted materials, and increased load | RW only; two standard or one 3-PG vehicle | 12.0k |
| G3 | 6 | 14–18 | Raised center platform and off-center rock clearance | Full materials; rock placed on either side | 13.0k |
| G4 | 6 | 14–18 | Lowered center platform and off-center rock clearance | Full materials; rock placed on either side | 17.0k |
| G5 | 8 | 16–18 | Raised/lowered platform, clearance, and increased load | Two standard or one 3-PG vehicle | 13.0k |
| G6 | 8 | 12–24 | Asymmetric or off-center support combined with clearance | Full materials; one vehicle | 24.0k |
| Scope | Fields | Role |
|---|---|---|
| Model-visible task context | levelName , available_materials , budget_limit , vehicle_count , vehicle_weights_pg , vehicle_weight_pg , material_profile | Defines the admissible materials, load, and cost constraint. |
| Model-visible semantic environment | terrain_affordances , forbidden_regions | Defines drivable center terrain and deterministic clearance polygons. |
| Model-visible save state | Native node IDs, coordinates, and isKinematic values | Defines the immutable structural attachment points and current topology. |
| Analysis only | family_id , generator_tags , generator_params , level_tags | Used for aggregation and diagnostic breakdowns; not appended to the model-facing context. |
| Generation audit only | Raw terrain, scenery, vehicle, target, and resource parameters | Retained to regenerate and inspect a level; not provided as prompt context. |
| Material | Type | Max. length | Cost/m |
|---|---|---|---|
| Road | 1 | 2.0 m | $200 |
| Wood | 2 | 2.0 m | $180 |
| Steel | 3 | 4.0 m | $450 |
| Check | Acceptance condition | Purpose |
|---|---|---|
| Parse and object schema | The response resolves to a modify action with complete node and edge lists that can be converted into an Objects array. | Prevents malformed or non-executable outputs. |
| Native anchors | Every original kinematic node is present with the same ID and coordinates within a tolerance. | Prevents removal or movement of level-provided supports. |
| Kinematic status | A model-created node cannot set isKinematic=true . | Prevents invention of unsupported fixed points. |
| Endpoint references | Both endpoint IDs of every member occur in the node set. | Ensures that every member defines a graph edge. |
| Material availability | Each member type is included in the level’s available_materials . | Enforces level-specific material restrictions. |
| Stored midpoint | The member object’s stored coordinate equals the endpoint midpoint within . | Maintains consistency with the native save representation. |
| Audit code | Meaning |
|---|---|
| MISSING_BASE_NODE | A native kinematic anchor is absent. |
| MOVED_KINEMATIC_NODE | A native anchor coordinate was changed. |
| MATERIAL_NOT_ALLOWED | A member uses a material excluded by the level. |
| ROCK_CLEARANCE_VIOLATION | A node or member intersects a forbidden polygon. |
| EDGE_TOO_LONG | A member exceeds its material-specific length limit. |
| DUPLICATE_EDGE | The same material appears more than once on an endpoint pair. |
| Setting | Primary value |
|---|---|
| Maximum LLM calls | 3 per episode |
| Maximum physics attempts | 3 per episode |
| Simulation window | 12 s |
| Raw capture rate | 4 fps |
| Success pixel | |
| Success condition | green channel |
| Round outcome | Consumes call | Consumes physics | Valid at this call | Success/recovery treatment |
|---|---|---|---|---|
| Unparseable response, wrong action, or missing required output field | Yes | No | No | Cannot contribute to Success or Recovery. |
| Parsed graph rejected by deterministic validation | Yes | No | No | May receive validator feedback on a later call. |
| Valid graph with failure_or_timeout | Yes | Yes | Yes | Not successful; becomes recovery-eligible only when both budgets permit a later execution. |
| Valid graph with confirmed success | Yes | Yes | Yes | Contributes to Success@ for every at or after this call and terminates the episode. |
| No valid graph within three calls | Up to 3 | 0 | No | Counts as failure for Success@3 and is not eligible for Recovery@3. |
| Reported model | API model identifier | Reasoning request | Temperature | Max output | Attempts/read timeout |
|---|---|---|---|---|---|
| Gemini-3-Flash-Preview | gemini-3-flash-preview | Provider default | 0.2 | Provider default | 3 / 300 s |
| Qwen3-VL-Plus | qwen3-vl-plus | Binary control unset | 0.2 | Provider default | 3 / 300 s |
| Gemma-4-31B-IT | gemma-4-31b-it | Unsupported | 0.2 | Provider default | 3 / 300 s |
| Kimi-K2.5 | kimi-k2.5 | Binary control unset | 0.2 | Provider default | 3 / 300 s |
| GPT-5.2 | gpt-5.2 | Provider default | 0.2 | Provider default | 3 / 300 s |
| Claude-Sonnet-5 | claude-sonnet-5 | Provider default | Not sent | 32,768 tokens | 2 / 400 s |
| Anchor/connect. ( ) | Terrain/geometry ( ) | Dynamic load ( ) | Compositional ( ) | |||||
| Model | V@3 | S@3 | V@3 | S@3 | V@3 | S@3 | V@3 | S@3 |
| Gemini | 49.2 | 42.4 | 32.8 | 26.6 | 46.2 | 11.5 | 20.0 | 5.0 |
| Qwen | 62.7 | 5.1 | 40.6 | 0.0 | 73.1 | 0.0 | 85.0 | 0.0 |
| Gemma | 52.5 | 35.6 | 34.4 | 6.2 | 61.5 | 11.5 | 62.5 | 0.0 |
| Kimi | 44.1 | 16.9 | 25.0 | 3.1 | 34.6 | 0.0 | 10.0 | 0.0 |
| GPT | 54.2 | 13.6 | 43.8 | 7.8 | 34.6 | 3.8 | 20.0 | 0.0 |
| Strict condition | Loose condition | |||||
|---|---|---|---|---|---|---|
| Model | Recovered/eligible | Calls all | Cost succ (N$ ) | Recovered/eligible | Calls all | Cost succ (N$ ) |
| Gemini | 1/17 | 2.79 | 9.7 (47) | 10/30 | 1.47 | 16.5 (160) |
| Qwen | 1/63 | 2.97 | 7.0 (3) | 16/148 | 2.87 | 15.8 (23) |
| Gemma | 0/29 | 2.87 | 9.7 (28) | 25/66 | 2.47 | 18.7 (87) |
| Kimi | 1/15 | 2.94 | 6.9 (12) | 7/25 | 2.81 | 13.3 (35) |
| GPT | 0/17 | 2.95 | 8.0 (14) | 7/27 | 2.71 | 21.0 (64) |
| Threat | Protocol control | Residual limitation |
|---|---|---|
| Simplified physics | All candidates are executed in the same native simulator with a common success detector. | Two-dimensional game materials omit continuum behavior, construction sequence, safety factors, and many real failure mechanisms. |
| Finite procedural families | Parameters vary systematically across 27 families and a separate compositional stratum. | The suite does not establish open-world or strict held-out-family generalization. |
| Structured environment input | Every model receives the same anchors, materials, loads, budgets, terrain affordances, and clearance polygons. | Coordinates reduce the need for pure visual localization; multimodal claims apply to the complete image-plus-structure package. |
| Human budget calibration | Limits are fixed before model evaluation and only the scalar budget is exposed. | A manually constructed reference can encode designer bias and need not be the minimum feasible cost. |
| Approximate rock geometry | One deterministic mapping is used for every model and checked by a geometric validator. | The triangle approximates a sprite rather than reading the game’s collision mesh. |
| Validator assistance | Invalid outputs consume calls, and the validator never predicts stability or generates members. | Later performance reflects a model-plus-feedback protocol, not unaided one-shot model ability. |
| Artifact | Contents | Reproducibility role |
|---|---|---|
| generate/main.py | Family generators, semantic environment export, and benchmark serialization. | Regenerates level geometry and metadata. |
| generate/benchmark_levels_v2_money/ | Strict-budget outer, inner, and context JSON triplets for 189 levels. | Frozen primary benchmark inputs. |
| generate/benchmark_levels_v2/ | Geometry-matched triplets with the uniform loose budget. | Diagnostic loose-budget inputs. |
| generate/money.json | Level-to-calibrated-budget mapping. | Rebuilds strict constraints and successful cost ratios. |
| main.py | Prompt, controller loop, validation, resource accounting, and run configuration. | Defines logical calls and episode transitions. |
| tool/encode.py and related save tools | Native save encoding, loading, execution, and feedback-frame processing. | Connects structured graphs to native simulation. |