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>
21 lines
728 B
Bash
Executable File
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
|