[ {"note": "TOP and BOTTOM keep the nearest square heading, with home ties toward yaw zero. Clicking side faces still selects their standard view."}, {"call": "engine.execute", "params": {"command": "solid.box", "params": {"length": 40, "width": 30, "height": 20}}}, {"call": "ui.view", "params": {"view": "home"}}, {"click": {"handle": "cube:top"}}, {"expect": {"camera": {"yaw_deg": 0, "pitch_deg": 90}}}, {"call": "ui.view", "params": {"view": "home"}}, {"click": {"handle": "cube:top-back-right"}}, {"expect": {"camera": {"yaw_deg": -135, "pitch_deg": 35.26}}}, {"click": {"handle": "cube:top"}}, {"expect": {"camera": {"yaw_deg": -90, "pitch_deg": 90, "back": [0, 0, 1]}}}, {"shot": "minimal-turn-top-z"}, {"camera": {"yaw": 2.9670597283903604, "pitch": -0.6}}, {"click": {"handle": "cube:bottom"}}, {"expect": {"camera": {"yaw_deg": 180, "pitch_deg": -90, "back": [0, 0, -1]}}}, {"camera": {"yaw": 1.3962634015954636, "pitch": 0.6}}, {"click": {"handle": "cube:top"}}, {"expect": {"camera": {"yaw_deg": 90, "pitch_deg": 90}}}, {"call": "ui.view", "params": {"view": "home"}}, {"click": {"handle": "cube:front"}}, {"expect": {"camera": {"yaw_deg": 0, "pitch_deg": 0}}}, {"note": "The same heading choice is measured in the Y-up camera frame."}, {"call": "ui.prefs", "params": {"up_axis": "y"}}, {"camera": {"yaw": -1.3962634015954636, "pitch": 0.6}}, {"click": {"handle": "cube:top"}}, {"expect": {"camera": {"yaw_deg": -90, "pitch_deg": 90, "back": [0, 1, 0]}}}, {"shot": "minimal-turn-top-y"}, {"camera": {"yaw": 1.3962634015954636, "pitch": -0.6}}, {"click": {"handle": "cube:bottom"}}, {"expect": {"camera": {"yaw_deg": 90, "pitch_deg": -90, "back": [0, -1, 0]}}} ]