Fractal is a Rust harness for mutation-based learning experiments.
This workspace currently implements a seven-species fractal primitive tournament.
ENGINEERING.mddocs/harness-doctrine.mdSPEC_v3_1.md
cargo build --release
cargo test
cargo run --example tournament
cargo run --example tournament -- --preset fast-test
cargo run --release --example tournament -- --preset research-medium
cargo run --release --example tournament -- --sequence first-run
cargo run --release --features cuda --example tournament -- --backend cuda --preset research-medium
scripts/runpod-tournament.sh --gpu-id "NVIDIA GeForce RTX 4090" -- --preset research-mediumscripts/runpod-tournament.sh creates or reuses a Runpod pod, syncs the current worktree snapshot, bootstraps the Rust toolchain if needed, and runs the CUDA tournament remotely.
Example:
scripts/runpod-tournament.sh \
--gpu-id "NVIDIA GeForce RTX 4090" \
-- --preset research-mediumBehavior:
- Uses
runpodctland your registered SSH key to reach the pod over exposed TCP port22. - Defaults to the official
runpod-torch-v240template and syncs a clean copy of the repo without.gitortarget. - Persists remote build artifacts under
<volumeMountPath>/.fractal-runpod/targetso repeated runs avoid full rebuilds. - Stops pods it created after the run by default; use
--keep-podto leave them running.
Keep the harness small, deterministic, extensible, and useful for comparative experiments.
cargo run --example tournamentnow defaults to sequential Burn Metal execution on Apple Silicon.- Fast tests use CPU Candle execution for deterministic, low-overhead validation.
research-mediumis the first meaningful single-GPU leaderboard preset for Apple Silicon.first-runsequencesfast-test -> research-medium -> pressure-testas the staged initial tournament path.- Parallel execution remains available through
TournamentConfig::with_execution_mode(ExecutionMode::Parallel). - The heavier spec-aligned configuration is available as
TournamentConfig::pressure_test(). - All recurrent state transitions in the model go through
rule.apply(...).