SolvScout / SolvTune: Examples
Each example is a verified run of a guided tour script from the shipped python/examples/
bundle (see PROGRESSION.md for the full 01→06 sequence). Run the guided tour
first: it narrates the scenario, explains each metric, and shows when to trust the result. Use
the production one-liner when wiring the same API call into your pipeline.
Examples source: Journey scripts live in the product
python/examples/tree (resonix_prod_solvscout_solvtune). They ship with product release materials — not inside thesolvscoutwheel itself. This page mirrors verified runs of those scripts.
Release note: SolvScout / SolvTune is production (GA) and free for life after registration. Download the release wheel from your Resonix account, activate a machine-locked seat, then run the examples — see Install and Licensing.
Journeys
Example 1: Journey 01 — First contact
Confirm SolvScout imports, see your license state, and run the smallest. Every support ticket starts with the package version. SolvScout's recommender is license-gated.
Walkthrough:
-
What you are doing — Confirm SolvScout imports, see your license state, and run the smallest
-
Version — Every support ticket starts with the package version.
-
License — SolvScout's recommender is license-gated.
-
Simplest call — classify(rhs, y0, t_span) inspects the dynamics and returns a
cd python
# Guided tour — narrated scenario walkthrough (recommended first run):
python examples/journeys/01_first_contact.py
# Production one-liner — same API call you ship:
python -c "import solvscout as s; print(s.__version__, s.license_valid())"Example 2: Journey 02 — Classify an RHS
classify() probes the RHS: it estimates the Jacobian spectrum, runs short. Van der Pol (mu=5) is a mildly stiff limit cycle; Robertson is the classic. The ProblemProfile is a compact, serializable description. Everything.
Walkthrough:
-
How classification works — classify() probes the RHS: it estimates the Jacobian spectrum, runs short
-
Two contrasting systems — Van der Pol (mu=5) is a mildly stiff limit cycle; Robertson is the classic
-
What you got — The ProblemProfile is a compact, serializable description. Everything
cd python
# Guided tour — narrated scenario walkthrough (recommended first run):
python examples/journeys/02_classify_rhs.py
# Production one-liner — same API call you ship:
python -c "import solvscout as s; print(s.classify(lambda t,y:[-y[0]],[1.0],(0.0,1.0)).profile.stiffness)"Example 3: Journey 03 — Recommend a solver
recommend(profile, objective=...) ranks every active solver arm for the. The top pick can change with the objective - a survival-first choice is not. Each ArmRecommendation carries a score, confidence, survival_rate,.
Walkthrough:
-
Classify once, recommend many ways — recommend(profile, objective=...) ranks every active solver arm for the
-
Compare objectives — The top pick can change with the objective - a survival-first choice is not
-
Read the full ranking — Each ArmRecommendation carries a score, confidence, survival_rate,
cd python
# Guided tour — narrated scenario walkthrough (recommended first run):
python examples/journeys/03_recommend.py
# Production one-liner — same API call you ship:
python -c "import solvscout as s; c=s.classify(lambda t,y:[-y[0]],[1.0],(0.0,1.0)); print(s.recommend(c.profile).best.arm)"Example 4: Journey 04 — Compare arms
compare(rhs, y0, t_span) classifies the problem, then looks up all four. Comparison.sections has one payload per objective; each has a recommended. Each RunResult carries status, survived, error (tol units), nfev and wall_s.
Walkthrough:
-
What compare() does — compare(rhs, y0, t_span) classifies the problem, then looks up all four
-
The returned object — Comparison.sections has one payload per objective; each has a recommended
-
Per-arm rows — Each RunResult carries status, survived, error (tol units), nfev and wall_s.
cd python
# Guided tour — narrated scenario walkthrough (recommended first run):
python examples/journeys/04_compare_arms.py
# Production one-liner — same API call you ship:
python -c "import solvscout as s; c=s.compare(lambda t,y:[-y[0]],[1.0],(0.0,1.0)); print(c.recommended, c.corpus_match)"Example 5: Journey 05 — Product pick and SolvJump hint
Multi-arm recommend() is for the lab. recommend_product() returns a single,. A precision-first pick can encode different tuned knobs than a survival-first. If you drive SolvJump, recommend_jump() routes an operator from the profile.
Walkthrough:
-
recommend_product() - the portable path — Multi-arm recommend() is for the lab. recommend_product() returns a single,
-
Objective changes the token — A precision-first pick can encode different tuned knobs than a survival-first
-
recommend_jump() - SolvJump operator hint — If you drive SolvJump, recommend_jump() routes an operator from the profile
cd python
# Guided tour — narrated scenario walkthrough (recommended first run):
python examples/journeys/05_product_and_jump.py
# Production one-liner — same API call you ship:
python -c "import solvscout as s; c=s.classify(lambda t,y:[-y[0]],[1.0],(0.0,1.0)); print(s.recommend_product(c.profile).to_public_dict())"Example 6: Journey 06 — Limits and non-goals
classify() and recommend() analyse and rank. They never step your ODE. To actually integrate, use the execution layer: SolvBench for live. Confidence reflects how close your problem is to benchmarked ones. A 'low'.
Walkthrough:
-
SolvScout advises; it does not integrate — classify() and recommend() analyse and rank. They never step your ODE.
-
Where execution lives — To actually integrate, use the execution layer: SolvBench for live
-
Recommendations are corpus-conditioned — Confidence reflects how close your problem is to benchmarked ones. A 'low'
-
Not a general-purpose classifier — SolvScout characterizes initial-value ODE systems for solver routing. It is
cd python
# Guided tour — narrated scenario walkthrough (recommended first run):
python examples/journeys/06_limits.py
# Production one-liner — same API call you ship:
python -c "import solvscout as s; print('compare() is corpus lookup, not a live run')"Example bundle
Every journey is a domain scenario with narrated acts — run the guided tour first to see what each number means, then copy the production one-liner into your pipeline.
| Resource | Purpose |
|---|---|
PROGRESSION.md | Ordered runbook — journeys 01→06 with dual commands |
COVERAGE.md | Capability matrix — which APIs each journey exercises |
APPLICATIONS.md | Where the product applies in real programs |
run_examples.py | Interactive menu to launch any journey |
Guided journeys
| # | Script | Scenario |
|---|---|---|
| 01 | 01_first_contact.py | First contact |
| 02 | 02_classify_rhs.py | Classify an RHS |
| 03 | 03_recommend.py | Recommend a solver |
| 04 | 04_compare_arms.py | Compare arms |
| 05 | 05_product_and_jump.py | Product pick and SolvJump hint |
| 06 | 06_limits.py | Limits and non-goals |
Run from the python/ directory after install and license activation.
Set SOLVSCOUT_QUIET=1 only when you want silent CLI runs (no narration).