macrosoft3dpinball/godot/run_probe.sh
m3ultra 2ca67bb28b Add Godot 4.7 physics testbed: Box3D/Jolt/GodotPhysics A/B pinball table
Playable table (hinge-motor flippers, plunger, bumper, drain) plus a headless
probe harness that measured, per engine: tunneling of a fast ball through a
1 cm wall with CCD off/on, and hinge-motor drive. Findings in godot/README.md:
Box3D never tunnels even with CCD off, but its hinge motor sign is inverted
vs Jolt/GodotPhysics, and Jolt blows through angular limits that Box3D holds.
Ships a from-source macOS arm64 libgodot-box3d.dylib (upstream has no
releases). Also gitignore the remaining Microsoft media at repo root.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-06 05:33:07 +10:00

21 lines
728 B
Bash
Executable File

#!/usr/bin/env bash
# A/B/C physics probe: runs probe/probe.tscn headless under each backend by
# switching physics/3d/physics_engine through override.cfg.
set -euo pipefail
cd "$(dirname "$0")"
GODOT="${GODOT_BIN:-/Applications/Godot.app/Contents/MacOS/Godot}"
ENGINES=("GodotPhysics3D" "Jolt Physics" "Box3D Physics (Extension)")
mkdir -p probe/results
"$GODOT" --headless --path . --import > /dev/null 2>&1 || true
for e in "${ENGINES[@]}"; do
printf '[physics]\n3d/physics_engine="%s"\n' "$e" > override.cfg
slug=$(echo "$e" | tr ' ()' '_' | tr -s '_')
echo "=== $e ==="
"$GODOT" --headless --path . res://probe/probe.tscn 2>/dev/null \
| grep '^PROBE' | tee "probe/results/$slug.txt"
done
rm -f override.cfg