Problem
There is no way to share or reproduce a specific experiment. "I trained Ridge, SVR-RBF and Gradient Boosting on Airfoil with 10-fold CV and Ridge won" today requires a screenshot or a verbal walkthrough.
Proposal
Encode the experiment state in the URL so a peer can open the link and land on the same setup:
```
https://scikit-learner.app/?dataset=airfoil&target=scaled_sound&features=freq,angle,velocity&models=ridge,svr_rbf,gb&cv=10
```
When the page loads with these params:
- Auto-load the dataset.
- Pre-select target and features.
- Pre-select the model checkboxes.
- (Optional) Auto-train on load if a `?run=1` flag is present.
Scope
- v1: built-in datasets only (8 keys already enumerated in `load_sample()`).
- v2: custom CSV via content-hash + in-browser localStorage cache (no server). Out of scope here.
Implementation notes
- `URLSearchParams` on page load in `frontend/js/app.js`.
- Add helpers `encodeExperiment(state)` / `decodeExperiment(params)` to keep parsing in one place.
- A "Share" button next to "Export" that copies the current URL via `navigator.clipboard`.
Acceptance criteria
Strategic rationale
Unlocks teaching, blog content, benchmark cases on the landing page, and team collaboration without any backend.
Problem
There is no way to share or reproduce a specific experiment. "I trained Ridge, SVR-RBF and Gradient Boosting on Airfoil with 10-fold CV and Ridge won" today requires a screenshot or a verbal walkthrough.
Proposal
Encode the experiment state in the URL so a peer can open the link and land on the same setup:
```
https://scikit-learner.app/?dataset=airfoil&target=scaled_sound&features=freq,angle,velocity&models=ridge,svr_rbf,gb&cv=10
```
When the page loads with these params:
Scope
Implementation notes
Acceptance criteria
Strategic rationale
Unlocks teaching, blog content, benchmark cases on the landing page, and team collaboration without any backend.