Minecraft-Console-Client/tools/pathing_data/canonical-live-cases.json
BruceChen 418f17b4a1 pathing: add side-wall theory, full-coverage parkour test suite, and live test fixes
Theory simulator:
- Add 2D side-wall jump physics with yaw sweep for worst-case margin
- Generate sidewall theory cases (flat/ascend/descend, wall_offset 0/1)
- Add momentum-capabilities.json with band compression and max_reach
- Extend models, capabilities, canonical, and renderers for sidewall

Full-coverage parkour test suite (tools/test-parkour.py):
- Derive test matrix from momentum-capabilities.json
- Build linear/neo/ceiling courses via RCON with 7-block clear margin
- Use /goto for pathfinding, parse A* and PathMgr log output
- Stop-at-first-failure per (family, subfamily, dy, ceil, wo) group
- Hierarchical --filter (e.g. linear/flat, ceiling/headhitter/ceil2.5)
- Exclude sidewall from default matrix (identical max_reach to linear)

Pathing execution fixes:
- Align parkour contracts and timing budgets with live test results
- Fix jump-entry yaw snapping for grounded handoffs
- Template helper and sprint jump template refinements

Made-with: Cursor
2026-04-15 17:52:47 +00:00

548 lines
12 KiB
JSON

[
{
"case_id": "ceiling-headhitter-sprint-mm12-gap3-ceil3p0",
"bucket_id": "ceiling:headhitter:sprint:easy",
"family": "ceiling",
"subfamily": "headhitter",
"movement_mode": "sprint",
"momentum_ticks": 12,
"difficulty_band": "easy",
"expected_result": "pass",
"world_recipe_id": "ceiling-headhitter",
"gap_blocks": 3,
"delta_y": 0.0,
"ceiling_height": 3.0,
"wall_width": null,
"wall_offset": null,
"start": {
"x": 100.5,
"y": 80.0,
"z": 100.5
},
"goal": {
"x": 104.0,
"y": 80.0,
"z": 100.0
}
},
{
"case_id": "ceiling-headhitter-sprint-mm12-gap3-ceil2p5",
"bucket_id": "ceiling:headhitter:sprint:boundary",
"family": "ceiling",
"subfamily": "headhitter",
"movement_mode": "sprint",
"momentum_ticks": 12,
"difficulty_band": "boundary",
"expected_result": "pass",
"world_recipe_id": "ceiling-headhitter",
"gap_blocks": 3,
"delta_y": 0.0,
"ceiling_height": 2.5,
"wall_width": null,
"wall_offset": null,
"start": {
"x": 100.5,
"y": 80.0,
"z": 100.5
},
"goal": {
"x": 104.0,
"y": 80.0,
"z": 100.0
}
},
{
"case_id": "ceiling-headhitter-sprint-mm12-gap1-ceil4p0",
"bucket_id": "ceiling:headhitter:sprint:reject",
"family": "ceiling",
"subfamily": "headhitter",
"movement_mode": "sprint",
"momentum_ticks": 12,
"difficulty_band": "reject",
"expected_result": "reject",
"world_recipe_id": "ceiling-headhitter",
"gap_blocks": 1,
"delta_y": 0.0,
"ceiling_height": 4.0,
"wall_width": null,
"wall_offset": null,
"start": {
"x": 100.5,
"y": 80.0,
"z": 100.5
},
"goal": {
"x": 102.0,
"y": 80.0,
"z": 100.0
}
},
{
"case_id": "linear-ascend-sprint-mm12-gap3-dy1p0",
"bucket_id": "linear:ascend:sprint:easy",
"family": "linear",
"subfamily": "ascend",
"movement_mode": "sprint",
"momentum_ticks": 12,
"difficulty_band": "easy",
"expected_result": "pass",
"world_recipe_id": "linear-ascend",
"gap_blocks": 3,
"delta_y": 1.0,
"ceiling_height": null,
"wall_width": null,
"wall_offset": null,
"start": {
"x": 100.5,
"y": 80.0,
"z": 100.5
},
"goal": {
"x": 104.0,
"y": 81.0,
"z": 100.0
}
},
{
"case_id": "linear-ascend-sprint-mm12-gap0-dy1p0",
"bucket_id": "linear:ascend:sprint:reject",
"family": "linear",
"subfamily": "ascend",
"movement_mode": "sprint",
"momentum_ticks": 12,
"difficulty_band": "reject",
"expected_result": "reject",
"world_recipe_id": "linear-ascend",
"gap_blocks": 0,
"delta_y": 1.0,
"ceiling_height": null,
"wall_width": null,
"wall_offset": null,
"start": {
"x": 100.5,
"y": 80.0,
"z": 100.5
},
"goal": {
"x": 101.0,
"y": 81.0,
"z": 100.0
}
},
{
"case_id": "linear-descend-sprint-mm12-gap4-dym1p0",
"bucket_id": "linear:descend:sprint:easy",
"family": "linear",
"subfamily": "descend",
"movement_mode": "sprint",
"momentum_ticks": 12,
"difficulty_band": "easy",
"expected_result": "pass",
"world_recipe_id": "linear-descend",
"gap_blocks": 4,
"delta_y": -1.0,
"ceiling_height": null,
"wall_width": null,
"wall_offset": null,
"start": {
"x": 100.5,
"y": 80.0,
"z": 100.5
},
"goal": {
"x": 105.0,
"y": 79.0,
"z": 100.0
}
},
{
"case_id": "linear-descend-sprint-mm12-gap5-dym1p0",
"bucket_id": "linear:descend:sprint:boundary",
"family": "linear",
"subfamily": "descend",
"movement_mode": "sprint",
"momentum_ticks": 12,
"difficulty_band": "boundary",
"expected_result": "pass",
"world_recipe_id": "linear-descend",
"gap_blocks": 5,
"delta_y": -1.0,
"ceiling_height": null,
"wall_width": null,
"wall_offset": null,
"start": {
"x": 100.5,
"y": 80.0,
"z": 100.5
},
"goal": {
"x": 106.0,
"y": 79.0,
"z": 100.0
}
},
{
"case_id": "linear-descend-sprint-mm12-gap0-dym1p0",
"bucket_id": "linear:descend:sprint:reject",
"family": "linear",
"subfamily": "descend",
"movement_mode": "sprint",
"momentum_ticks": 12,
"difficulty_band": "reject",
"expected_result": "reject",
"world_recipe_id": "linear-descend",
"gap_blocks": 0,
"delta_y": -1.0,
"ceiling_height": null,
"wall_width": null,
"wall_offset": null,
"start": {
"x": 100.5,
"y": 80.0,
"z": 100.5
},
"goal": {
"x": 101.0,
"y": 79.0,
"z": 100.0
}
},
{
"case_id": "linear-flat-sprint-mm12-gap4-dy0p0",
"bucket_id": "linear:flat:sprint:easy",
"family": "linear",
"subfamily": "flat",
"movement_mode": "sprint",
"momentum_ticks": 12,
"difficulty_band": "easy",
"expected_result": "pass",
"world_recipe_id": "linear-flat",
"gap_blocks": 4,
"delta_y": 0.0,
"ceiling_height": null,
"wall_width": null,
"wall_offset": null,
"start": {
"x": 100.5,
"y": 80.0,
"z": 100.5
},
"goal": {
"x": 105.0,
"y": 80.0,
"z": 100.0
}
},
{
"case_id": "linear-flat-sprint-mm12-gap0-dy0p0",
"bucket_id": "linear:flat:sprint:reject",
"family": "linear",
"subfamily": "flat",
"movement_mode": "sprint",
"momentum_ticks": 12,
"difficulty_band": "reject",
"expected_result": "reject",
"world_recipe_id": "linear-flat",
"gap_blocks": 0,
"delta_y": 0.0,
"ceiling_height": null,
"wall_width": null,
"wall_offset": null,
"start": {
"x": 100.5,
"y": 80.0,
"z": 100.5
},
"goal": {
"x": 101.0,
"y": 80.0,
"z": 100.0
}
},
{
"case_id": "neo-neo-sprint-mm12-wall1",
"bucket_id": "neo:neo:sprint:easy",
"family": "neo",
"subfamily": "neo",
"movement_mode": "sprint",
"momentum_ticks": 12,
"difficulty_band": "easy",
"expected_result": "pass",
"world_recipe_id": "neo-wall",
"gap_blocks": null,
"delta_y": 0.0,
"ceiling_height": null,
"wall_width": 1,
"wall_offset": null,
"start": {
"x": 100.5,
"y": 80.0,
"z": 100.5
},
"goal": {
"x": 102.0,
"y": 80.0,
"z": 101.0
}
},
{
"case_id": "neo-neo-sprint-mm12-wall4",
"bucket_id": "neo:neo:sprint:boundary",
"family": "neo",
"subfamily": "neo",
"movement_mode": "sprint",
"momentum_ticks": 12,
"difficulty_band": "boundary",
"expected_result": "pass",
"world_recipe_id": "neo-wall",
"gap_blocks": null,
"delta_y": 0.0,
"ceiling_height": null,
"wall_width": 4,
"wall_offset": null,
"start": {
"x": 100.5,
"y": 80.0,
"z": 100.5
},
"goal": {
"x": 102.0,
"y": 80.0,
"z": 104.0
}
},
{
"case_id": "sidewall-ascend-sprint-mm12-gap3-dy1p0-wo1",
"bucket_id": "sidewall:ascend:sprint:easy",
"family": "sidewall",
"subfamily": "ascend",
"movement_mode": "sprint",
"momentum_ticks": 12,
"difficulty_band": "easy",
"expected_result": "pass",
"world_recipe_id": "sidewall-ascend",
"gap_blocks": 3,
"delta_y": 1.0,
"ceiling_height": null,
"wall_width": null,
"wall_offset": 1,
"start": {
"x": 100.5,
"y": 80.0,
"z": 100.5
},
"goal": {
"x": 104.0,
"y": 81.0,
"z": 100.0
}
},
{
"case_id": "sidewall-ascend-sprint-mm12-gap3-dy1p0-wo0",
"bucket_id": "sidewall:ascend:sprint:boundary",
"family": "sidewall",
"subfamily": "ascend",
"movement_mode": "sprint",
"momentum_ticks": 12,
"difficulty_band": "boundary",
"expected_result": "pass",
"world_recipe_id": "sidewall-ascend",
"gap_blocks": 3,
"delta_y": 1.0,
"ceiling_height": null,
"wall_width": null,
"wall_offset": 0,
"start": {
"x": 100.5,
"y": 80.0,
"z": 100.5
},
"goal": {
"x": 104.0,
"y": 81.0,
"z": 100.0
}
},
{
"case_id": "sidewall-ascend-sprint-mm12-gap0-dy1p0-wo0",
"bucket_id": "sidewall:ascend:sprint:reject",
"family": "sidewall",
"subfamily": "ascend",
"movement_mode": "sprint",
"momentum_ticks": 12,
"difficulty_band": "reject",
"expected_result": "reject",
"world_recipe_id": "sidewall-ascend",
"gap_blocks": 0,
"delta_y": 1.0,
"ceiling_height": null,
"wall_width": null,
"wall_offset": 0,
"start": {
"x": 100.5,
"y": 80.0,
"z": 100.5
},
"goal": {
"x": 101.0,
"y": 81.0,
"z": 100.0
}
},
{
"case_id": "sidewall-descend-sprint-mm12-gap4-dym1p0-wo1",
"bucket_id": "sidewall:descend:sprint:easy",
"family": "sidewall",
"subfamily": "descend",
"movement_mode": "sprint",
"momentum_ticks": 12,
"difficulty_band": "easy",
"expected_result": "pass",
"world_recipe_id": "sidewall-descend",
"gap_blocks": 4,
"delta_y": -1.0,
"ceiling_height": null,
"wall_width": null,
"wall_offset": 1,
"start": {
"x": 100.5,
"y": 80.0,
"z": 100.5
},
"goal": {
"x": 105.0,
"y": 79.0,
"z": 100.0
}
},
{
"case_id": "sidewall-descend-sprint-mm12-gap5-dym1p0-wo0",
"bucket_id": "sidewall:descend:sprint:boundary",
"family": "sidewall",
"subfamily": "descend",
"movement_mode": "sprint",
"momentum_ticks": 12,
"difficulty_band": "boundary",
"expected_result": "pass",
"world_recipe_id": "sidewall-descend",
"gap_blocks": 5,
"delta_y": -1.0,
"ceiling_height": null,
"wall_width": null,
"wall_offset": 0,
"start": {
"x": 100.5,
"y": 80.0,
"z": 100.5
},
"goal": {
"x": 106.0,
"y": 79.0,
"z": 100.0
}
},
{
"case_id": "sidewall-descend-sprint-mm12-gap0-dym1p0-wo0",
"bucket_id": "sidewall:descend:sprint:reject",
"family": "sidewall",
"subfamily": "descend",
"movement_mode": "sprint",
"momentum_ticks": 12,
"difficulty_band": "reject",
"expected_result": "reject",
"world_recipe_id": "sidewall-descend",
"gap_blocks": 0,
"delta_y": -1.0,
"ceiling_height": null,
"wall_width": null,
"wall_offset": 0,
"start": {
"x": 100.5,
"y": 80.0,
"z": 100.5
},
"goal": {
"x": 101.0,
"y": 79.0,
"z": 100.0
}
},
{
"case_id": "sidewall-flat-sprint-mm12-gap4-dy0p0-wo1",
"bucket_id": "sidewall:flat:sprint:easy",
"family": "sidewall",
"subfamily": "flat",
"movement_mode": "sprint",
"momentum_ticks": 12,
"difficulty_band": "easy",
"expected_result": "pass",
"world_recipe_id": "sidewall-flat",
"gap_blocks": 4,
"delta_y": 0.0,
"ceiling_height": null,
"wall_width": null,
"wall_offset": 1,
"start": {
"x": 100.5,
"y": 80.0,
"z": 100.5
},
"goal": {
"x": 105.0,
"y": 80.0,
"z": 100.0
}
},
{
"case_id": "sidewall-flat-sprint-mm12-gap4-dy0p0-wo0",
"bucket_id": "sidewall:flat:sprint:boundary",
"family": "sidewall",
"subfamily": "flat",
"movement_mode": "sprint",
"momentum_ticks": 12,
"difficulty_band": "boundary",
"expected_result": "pass",
"world_recipe_id": "sidewall-flat",
"gap_blocks": 4,
"delta_y": 0.0,
"ceiling_height": null,
"wall_width": null,
"wall_offset": 0,
"start": {
"x": 100.5,
"y": 80.0,
"z": 100.5
},
"goal": {
"x": 105.0,
"y": 80.0,
"z": 100.0
}
},
{
"case_id": "sidewall-flat-sprint-mm12-gap0-dy0p0-wo0",
"bucket_id": "sidewall:flat:sprint:reject",
"family": "sidewall",
"subfamily": "flat",
"movement_mode": "sprint",
"momentum_ticks": 12,
"difficulty_band": "reject",
"expected_result": "reject",
"world_recipe_id": "sidewall-flat",
"gap_blocks": 0,
"delta_y": 0.0,
"ceiling_height": null,
"wall_width": null,
"wall_offset": 0,
"start": {
"x": 100.5,
"y": 80.0,
"z": 100.5
},
"goal": {
"x": 101.0,
"y": 80.0,
"z": 100.0
}
}
]