Study guide · arXiv 2610.12465 · CoRL 2026
Deriving Success Guided Sampling
- Problem
- Massively parallel simulation plus diverse resets makes hard robot tasks reachable. Uniform sampling then spends a growing fraction of episodes on configurations the policy always solves or never solves, and those episodes carry almost no gradient.
- Fix
- Keep a rolling success rate for every configuration. Sample configurations near a target success rate, using a Beta-shaped weight and a softmax. That is the whole method.
- Result
- At about one million environments: 73% success on 13-terrain quadruped locomotion (PLR 54%) and 70% on Franka nut-and-bolt assembly (uniform 6%, PLR 5%). RGB students distilled from SGS teachers transfer zero-shot to a UR5e on three NIST assembly tasks.
The idea in one table
Suppose that right now 90% of configurations are impossible, 5% succeed half the time, and 5% are mastered. With the paper's own settings, this is the share of episodes each sampler sends to the useful 5%:
| Sampler | Episodes on the useful 5% |
|---|---|
| Uniform | 5% |
| SGS, manipulation settings | 27% |
| SGS, locomotion settings | 98.5% |
Computed from Eq. 1 and 2 with the hyperparameters in §3.4. Try other mixes in the explorer, §3.5.
Short on time: read §2.4, §3, §5.4 and §8.
Notation the paper reuses
| Paper writes | Means | On this page |
|---|---|---|
| \(p_i\) | success-rate estimate of configuration \(i\) | \(p_i\) |
| \(p(i)\) | probability of sampling configuration \(i\) | \(q_i\) |
| \(p\) (App. B.2) | spawn and goal patches per terrain tile | \(n_{\text{patch}}\) |
| \(t\) in the kernel | target success rate (the kernel's peak) | \(t^\star\); plain \(t\) stays the time step |
| \(T\) in \(\rho = (T, L, s_0, g)\) | terrain type | written out; \(T\) stays the temperature |
| \(\tau\) and \(\tau_t\) | a task configuration; joint torques in the work reward | \(\tau\); torques written \(\tau^{\text{jnt}}_t\) |
| \(K\) (Limitations) | number of configurations | \(N\) |
| \(\epsilon\) | the SGS floor | \(\epsilon\); PPO's clip range is \(\epsilon_{\text{clip}}\) |
1Why this paper exists
RL in massively parallel simulators (MuJoCo, Isaac Gym and Isaac Lab, ManiSkill) now produces controllers that work on real robots. The price is per-task engineering. Rewards are shaped and tuned by hand, curricula are ordered by hand, demonstrations are collected to start exploration, and multi-skill controllers are often built by training specialists and distilling them into one policy. Each choice brings new hyperparameters.
Resets are a cheaper lever. If some episodes start with the rod already half inside the hole, the policy can reach success early, learn what success looks like, and then extend the skill back to harder starts. OmniReset (P. Yin et al., 2026, arXiv 2603.15789) generates diverse resets programmatically and pairs them with massively parallel RL. This paper builds on it; P. Yin and I. Dagnino are authors of both.
Resets decide where an episode can start. They do not decide how often each start gets practised. That allocation problem is the subject of the paper.
Intuition
A coach has a million students and one rule: every student practises a random drill. Most drills are already mastered or still impossible for this team, so most practice is wasted. Hiring more students buys more of the same mix. SGS changes the rule: practise the drills you currently pass about half the time.
Paper
The authors say plainly that SGS is not a new curriculum principle. Their claim is empirical: a simple success-based sampler, combined with diverse resets and very large PPO runs, solves locomotion and assembly tasks that uniform sampling and PLR learn poorly or not at all, and beats a hand-designed curriculum and SFL where those were tested.
2Prerequisites
Seven ideas the paper uses without defining them. Each is built here from scratch, once.
2.1The goal-conditioned MDP
A Markov decision process (MDP) is the formal game RL plays. Goal-conditioned means the policy is also told what to achieve, so one policy can serve many goals.
\[\mathcal{M} = (\mathcal{S},\ \mathcal{A},\ \mathcal{G},\ P,\ r,\ \gamma,\ \rho)\]| Symbol | Name | Locomotion (ANYmal-D) | Manipulation (UR5e, Franka) |
|---|---|---|---|
| \(s\in\mathcal{S}\) | state | full physical state: base pose and velocity, joint angles and velocities, terrain | arm joints, gripper, object and board poses |
| \(a\in\mathcal{A}\) | action | 12 joint-position offsets from the nominal pose | 3 translation and 3 rotation increments plus open/close (UR5e; see §8) |
| \(g\in\mathcal{G}\) | goal | a goal pose on the terrain | the assembled pose relative to the receptacle |
| \(P(s'\mid s,a)\) | dynamics | the physics simulator | |
| \(r(s,a,g)\) | reward | one shared reward per domain (§4) | |
| \(\gamma\) | discount | a number below 1; the paper does not report its value | |
| \(\rho\) | start-and-goal distribution | categorical over 104,000 configurations | categorical over 32,768 configurations |
One episode: draw \((s_0,g)\sim\rho\). At every step \(t\) the policy picks \(a_t\sim\pi(\cdot\mid s_t,g)\), physics produces \(s_{t+1}\sim P(\cdot\mid s_t,a_t)\), and the robot receives \(r(s_t,a_t,g)\). The objective is the expected discounted return:
\[J(\pi)=\mathbb{E}_{(s_0,g)\sim\rho,\ a_t\sim\pi}\Big[\sum_{t=0}^{\infty}\gamma^{t}\,r(s_t,a_t,g)\Big]\]Read it from the inside out. Inside the brackets: the rewards of one episode, each multiplied by \(\gamma^t\) so later rewards count less. Outside: the average over many episodes, where the randomness comes from which start and goal \(\rho\) draws and from the policy's random actions.
Paper
RL is trained on "compact Lagrangian states". Lagrangian state means generalized coordinates and their velocities, \((q,\dot q)\): the few numbers that fully describe a mechanism's configuration and motion, as opposed to pixels. Images enter only later, in the distilled student (§7). The observation lists in §4 also include a terrain height scan and a point cloud.
2.2Task configurations
The paper's unit of choice is a task configuration:
\[\tau=(s_0,\ g,\ e)\qquad\text{start state, goal, environment}\]| Locomotion | Manipulation | |
|---|---|---|
| \(s_0\) | the robot's start pose on the terrain | initial robot and object state, from one of three reset families (§5.1) |
| \(g\) | a goal pose to reach | the assembled pose, identical for every configuration in the receptacle's frame |
| \(e\) | terrain type and geometry | which assembly task, plus the receptacle pose |
Before training, \(N\) configurations are drawn once and frozen. SGS only ever chooses among these \(N\).
Check
§3.1 defines \(\rho\) over \((s_0,g)\) and says \(s_0\) already contains all episode-level variation, terrain and objects included. The extra \(e\) in \(\tau\) is a label for that variation, not a new ingredient.
2.3Policy gradients, GAE and PPO
All RL training in the paper uses PPO; the RGB students are distilled with DAgger (§7.3). Four formulas carry the whole algorithm.
Derivation
Advantage: how much better action \(a\) is than what the policy usually does from \(s\).
\[A^{\pi}(s,a)=Q^{\pi}(s,a)-V^{\pi}(s)\]Policy gradient: raise the probability of better-than-usual actions, lower the probability of worse-than-usual ones.
\[\nabla_\theta J=\mathbb{E}\Big[\sum_{t}\nabla_\theta\log\pi_\theta(a_t\mid s_t,g)\;A_t\Big]\]GAE (generalized advantage estimation) estimates \(A_t\) from a learned critic \(V\). The TD error \(\delta_t\) is one step of surprise; GAE adds up future surprises with weight \((\gamma\lambda)^l\).
\[\delta_t=r_t+\gamma V(s_{t+1})-V(s_t),\qquad \hat A_t=\sum_{l=0}^{\infty}(\gamma\lambda)^{l}\,\delta_{t+l}\]\(\lambda=0\) trusts the critic (one step, low variance, biased if \(V\) is wrong). \(\lambda=1\) trusts the actual return (unbiased, high variance).
PPO takes that gradient step but stops pushing an action's probability once it has moved more than \(\pm\epsilon_{\text{clip}}\) relative to the policy that collected the data:
\[r_t(\theta)=\frac{\pi_\theta(a_t\mid s_t,g)}{\pi_{\theta_{\text{old}}}(a_t\mid s_t,g)},\qquad L(\theta)=\mathbb{E}_t\Big[\min\big(r_t(\theta)\hat A_t,\ \operatorname{clip}(r_t(\theta),1-\epsilon_{\text{clip}},1+\epsilon_{\text{clip}})\,\hat A_t\big)\Big]\]Batch bookkeeping. One PPO iteration collects \(E\) environments \(\times\ n\) steps, splits the batch into \(M\) minibatches, and runs \(K\) epochs over them: \(M\times K\) gradient steps per iteration.
Paper
The minibatch count \(M\) is held fixed while \(E\) grows, and every other PPO and optimizer setting is fixed too. So more environments make each minibatch bigger (a less noisy gradient), not the number of gradient steps larger. The paper does not report \(\gamma\), \(\lambda\), \(\epsilon_{\text{clip}}\), \(K\), \(n\), \(M\) or the learning rate.
2.4Why a 0% or 100% configuration teaches nothing
This is the paper's whole argument in one derivation.
Derivation
Fix one configuration. Idealize the reward the way both domains are built (§4): the return is \(R_s\) on success and \(R_f\) otherwise, and the critic knows this configuration's success probability \(p\), so \(V(s_0)=pR_s+(1-p)R_f\). Let \(\Delta R=R_s-R_f\). The advantage of a whole episode is the return minus the baseline:
\[A=R-V(s_0)=\begin{cases}(1-p)\,\Delta R & \text{success, probability } p\\[2pt] -p\,\Delta R & \text{no success, probability } 1-p\end{cases}\]Its mean, mean square and mean absolute value:
\[\begin{aligned} \mathbb{E}[A] &= p(1-p)\Delta R-(1-p)p\,\Delta R=0\\ \mathbb{E}[A^2] &= p(1-p)^2\Delta R^2+(1-p)p^2\Delta R^2=p(1-p)\,\Delta R^2\,\big[(1-p)+p\big]=p(1-p)\,\Delta R^2\\ \mathbb{E}|A| &= p\,(1-p)\Delta R+(1-p)\,p\,\Delta R=2p(1-p)\,\Delta R \end{aligned}\]- At \(p=0\) or \(p=1\) the advantage is zero on every episode, so that configuration adds exactly zero task gradient.
- The signal is largest at \(p=\tfrac12\), where \(\mathbb{E}|A|=\Delta R/2\).
- \(p(1-p)\) is the variance of a coin that lands heads with probability \(p\). A configuration is useful exactly when its outcome is uncertain.
| Method | Score for a configuration | Relation to the derivation |
|---|---|---|
| SFL | \(p(1-p)\) | exactly \(\mathbb{E}[A^2]/\Delta R^2\) |
| PLR | average \(|\hat A_t|\) over the last episode | a critic-based estimate of the same kind of quantity; it inherits the critic's errors |
| SGS | \(p^{\kappa t^\star}(1-p)^{\kappa(1-t^\star)}\) | generalizes \(p(1-p)\): movable peak \(t^\star\), adjustable sharpness \(\kappa\). Equal to \(p(1-p)\) at \(t^\star=0.5,\ \kappa=2\) |
Check
Two small leaks remain at \(p\in\{0,1\}\). With \(\gamma\lt 1\), succeeding sooner earns more discounted return, and the per-step regularizers always vary a little. Neither one teaches the task itself, which is why the paper treats such configurations as wasted.
2.5The Beta distribution, as a weighting curve
The Beta distribution lives on \([0,1]\), the same range as a success rate:
\[f(x;\alpha,\beta)=\frac{x^{\alpha-1}(1-x)^{\beta-1}}{B(\alpha,\beta)},\qquad x\in[0,1],\quad \alpha,\beta>0\]\(B(\alpha,\beta)\) only makes the area equal 1. SGS never needs it, because the softmax in §2.6 normalizes anyway.
Derivation: where is the peak?
Take the log and set the derivative to zero:
\[\frac{d}{dx}\log f=\frac{\alpha-1}{x}-\frac{\beta-1}{1-x}=0\;\Longrightarrow\;(\alpha-1)(1-x)=(\beta-1)\,x\;\Longrightarrow\;x^\star=\frac{\alpha-1}{\alpha+\beta-2}\]This is a maximum when \(\alpha,\beta>1\). Now use the paper's mode–concentration form:
\[\alpha=1+\kappa t^\star,\quad\beta=1+\kappa(1-t^\star)\;\Longrightarrow\;x^\star=\frac{\kappa t^\star}{\kappa}=t^\star,\qquad f\propto x^{\kappa t^\star}(1-x)^{\kappa(1-t^\star)}\]So \(t^\star\) is exactly the peak, and \(\kappa=\alpha+\beta-2\) sets how sharp it is.
| \(\kappa\) | \(t^\star\) | \(\alpha,\ \beta\) | Shape |
|---|---|---|---|
| 0 | any | 1, 1 | flat: every success rate weighted equally, which is uniform sampling |
| 2 | 0.5 | 2, 2 | \(x(1-x)\): SFL's learnability score |
| large | \(t^\star\) | \(\approx\kappa t^\star,\ \kappa(1-t^\star)\) | a narrow spike at \(t^\star\) |
Width, for \(t^\star=0.5\), from the Beta variance \(\alpha\beta/[(\alpha+\beta)^2(\alpha+\beta+1)]\) with \(\alpha=\beta=1+\kappa/2\):
\[\operatorname{Var}=\frac{1}{4(\kappa+3)},\qquad \text{sd}=\frac{1}{2\sqrt{\kappa+3}}\]\(\kappa=0\) gives \(1/\sqrt{12}\approx0.289\), the standard deviation of a uniform variable on \([0,1]\), as it should. \(\kappa=1\) gives 0.250, \(\kappa=5\) gives 0.177, \(\kappa=10\) gives 0.139.
Intuition
Nothing in SGS is ever drawn from a Beta distribution. The Beta curve is used only as a scoring function: feed in a success rate, get back a weight. Statistics texts (Kruschke's form) call \(\alpha+\beta\) the concentration; the paper's \(\kappa\) is that number minus 2.
2.6Softmax with a temperature
A softmax turns scores \(\ell_i\) (logits) into probabilities. The temperature \(T\) flattens it:
\[q_i=\frac{\exp(\ell_i/T)}{\sum_{j=1}^{N}\exp(\ell_j/T)}\]Derivation: what the temperature does here
SGS uses logits \(\ell_i=\log(\tilde w_i+\epsilon)\), where \(\tilde w_i\) is the floored kernel weight (§3.2). Exponentiating undoes the log:
\[\exp(\ell_i/T)=(\tilde w_i+\epsilon)^{1/T}\quad\Longrightarrow\quad q_i=\frac{(\tilde w_i+\epsilon)^{1/T}}{\sum_j(\tilde w_j+\epsilon)^{1/T}}\]Wherever the weight is far above the floor (\(w_i\gg\epsilon\)):
\[q_i\;\propto\;w_i^{1/T}=(p_i+\epsilon)^{\frac{\kappa}{T}t^\star}\,(1-p_i+\epsilon)^{\frac{\kappa}{T}(1-t^\star)}\]That is the same Beta shape with the same peak \(t^\star\) and concentration \(\kappa/T\).
- In the interior, \(\kappa\) and \(T\) are one knob. Only \(\kappa/T\) matters. This is why the authors sweep \(\kappa\) and leave \(T\) at 2; the paper says \(T\) is "tied to" \(\kappa\).
- At the floor, \(T\) matters separately. Floored configurations get \((2\epsilon)^{1/T}\), so the peak-to-floor ratio is \(\big((w_{\text{peak}}+\epsilon)/2\epsilon\big)^{1/T}\). A larger \(T\) flattens the curve and lifts the floor.
- The implementation uses \(T_{\text{eff}}=\max(T,1)\). The softmax can only flatten the raw kernel, never sharpen it.
2.7Estimating a success rate from \(H\) outcomes
Each configuration keeps its last \(H\) outcomes \(o_{i,1},\dots,o_{i,H}\in\{0,1\}\) and estimates
\[p_i=\frac{1}{H}\sum_{k=1}^{H}o_{i,k}\in\Big\{0,\ \tfrac1H,\ \tfrac2H,\ \dots,\ 1\Big\}\]Derivation: how noisy is it?
If the true success probability \(\pi_i\) stayed fixed, \(H\,p_i\) would be Binomial\((H,\pi_i)\), so
\[\mathbb{E}[p_i]=\pi_i,\qquad \operatorname{SE}(p_i)=\sqrt{\frac{\pi_i(1-\pi_i)}{H}}\;\le\;\frac{1}{2\sqrt H}\]Worst-case standard error: 0.10 at \(H=25\), 0.05 at \(H=100\), 0.025 at \(H=400\).
The policy keeps changing, so the window mixes old and new behavior. A long window means less noise but more lag. That trade-off matches the paper's sweep: \(H=25\) scores 0.39, \(H=100\) scores 0.49, \(H=400\) scores 0.47 (two seeds each, §6.1).
Check: scale makes the estimates fresher
Under uniform sampling, one round of episodes (every environment finishes one) gives each configuration \(E/N\) attempts on average. For locomotion (\(N=104{,}000\)) that is 0.04 at 4,096 environments and 10 at \(2^{20}\). Filling a 100-outcome window therefore takes about 2,500 rounds at 4K and about 10 rounds at 1M, so estimates are roughly 256 times fresher at the largest scale. For manipulation (\(N=32{,}768\)) the figures are 0.125 and 32 attempts per round. The paper does not make this point; it follows from the arithmetic. Under SGS itself, configurations near the peak are visited more often (fresher) and floored ones less often (staler).
3SGS, line by line
3.1The loop
before training draw N configurations τ_1 … τ_N from the task distribution (frozen for the run) give each configuration a ring buffer of its last H outcomes whenever an environment finishes an episode on configuration i push 1 (success) or 0 (no success) into buffer i p_i ← mean of buffer i w_i ← (p_i + ε)^(κ·t*) · (1 − p_i + ε)^(κ·(1 − t*)) ℓ_i ← log( max(w_i, ε) + ε ) this environment's next configuration: j ~ softmax( ℓ / max(T, 1) )
What SGS does not use: no value function, no learned model, no extra evaluation rollouts, no difficulty ordering. Its only signal is the success bit each training episode already produces.
Check
The pseudocode shows the conceptual order. The paper does not say how often scores are recomputed in its batched GPU implementation, or what an empty buffer's mean is. Fig. 7 shows that sampling starts out uniform, which is what you get when every \(p_i\) starts equal: if all are 0, every configuration gets the same weight.
3.2Equation 1: the kernel
The paper's Eq. 1, with the target written \(t^\star\):
\[w_i=(p_i+\epsilon)^{\kappa t^\star}\,(1-p_i+\epsilon)^{\kappa(1-t^\star)},\qquad \ell_i=\log(w_i+\epsilon)\]| Piece | Job |
|---|---|
| \((p_i+\epsilon)^{\kappa t^\star}\) | grows with success. Near zero when \(p_i=0\), which pushes impossible configurations down. |
| \((1-p_i+\epsilon)^{\kappa(1-t^\star)}\) | grows with failure. Near zero when \(p_i=1\), which pushes mastered configurations down. |
| the product | peaks at \(p_i=t^\star\) (§2.5) |
| \(\kappa\) | sharpness. \(\kappa=0\) is uniform sampling; large \(\kappa\) samples only near \(t^\star\). |
| \(t^\star\) | where to aim: 0.5 means "succeed half the time"; 0.66 tilts toward configurations the policy mostly solves |
| \(\epsilon\) inside the powers | keeps \(w_i>0\) at \(p_i\in\{0,1\}\), so the log stays finite |
| \(\log\) | turns the weight into a softmax logit |
The implementation (Appendix B.2) adds a floor before the log and a minimum temperature:
\[\tilde w_i=\max(w_i,\epsilon),\qquad \ell_i=\log(\tilde w_i+\epsilon),\qquad T_{\text{eff}}=\max(T,1)\]The floor guarantees every configuration a minimum weight. That keeps impossible and mastered configurations in rotation, so their estimates get refreshed when the policy changes.
Check: when does the floor actually bind?
Locomotion (\(\epsilon=10^{-8}\), \(\kappa=5\), \(t^\star=0.66\)): \(w(0)\approx4\times10^{-27}\) and \(w(1)\approx2.5\times10^{-14}\), both floored. One success in 100 already gives \(w(0.01)\approx2.5\times10^{-7}\), above the floor. So only exactly-0% and exactly-100% configurations sit on it. Manipulation (\(\epsilon=10^{-4}\), \(\kappa=1\), \(t^\star=0.5\)): the smallest weight is \(w(0)=w(1)\approx0.01\), a hundred times the floor, so the floor never binds.
3.3Equation 2: from weights to a draw
At the end of every episode, that environment's next configuration is drawn independently from
\[q_i=\frac{\exp(\ell_i/T_{\text{eff}})}{\sum_{j=1}^{N}\exp(\ell_j/T_{\text{eff}})}\;=\;\frac{(\tilde w_i+\epsilon)^{1/T_{\text{eff}}}}{\sum_{j}(\tilde w_j+\epsilon)^{1/T_{\text{eff}}}}\]With \(T=2\) this is a square root of the floored weight, renormalized. A configuration's probability depends on its own success rate and, through the denominator, on everyone else's.
3.4The numbers the paper uses
| Locomotion | Manipulation | |
|---|---|---|
| configurations \(N\) | 104,000 | 32,768 |
| window \(H\) | 100 | 100 |
| temperature \(T\) | 2 | 2 |
| target \(t^\star\) | 0.66 | 0.5 |
| concentration \(\kappa\) | 5 | 1 |
| floor \(\epsilon\) | \(10^{-8}\) | \(10^{-4}\) |
| effective sharpness \(\kappa/T\) (derived) | 2.5 | 0.5 |
| exponent on \(p\), \(\kappa t^\star/T\) | 1.65 | 0.25 |
| exponent on \(1-p\), \(\kappa(1-t^\star)/T\) | 0.85 | 0.25 |
| equivalent interior shape | Beta(2.65, 1.85) | Beta(1.25, 1.25) |
Relative sampling rate per configuration, with the peak set to 1:
| Success estimate \(p\) | Locomotion | Manipulation |
|---|---|---|
| 0 | 0.0007 (1 in 1,424) | 0.142 (1 in 7.0) |
| 0.01 | 0.0025 (1 in 397) | 0.447 |
| 0.05 | 0.034 (1 in 29.5) | 0.661 |
| 0.10 | 0.102 | 0.775 |
| 0.25 | 0.395 | 0.931 |
| 0.50 | 0.878 | 1 (peak) |
| 0.66 | 1 (peak) | 0.973 |
| 0.75 | 0.951 | 0.931 |
| 0.90 | 0.590 | 0.775 |
| 0.99 | 0.098 | 0.447 |
| 1 | 0.0007 (1 in 1,424) | 0.142 (1 in 7.0) |
Intuition
Locomotion's sampler is greedy and lopsided: a configuration at 5% success gets one-thirtieth of the peak rate, while one at 90% still gets 59%. Manipulation's sampler is gentle and symmetric: even a 0% configuration gets a seventh of the peak rate. Remember that a rate per configuration is not a share of episodes. The share is the rate times how many configurations sit at that success level, which is what the second half of the explorer shows.
3.5Explorer: shape the kernel yourself
- Peak at
- p = 0.66
- κ / T_eff
- 2.5
- 0% config
- 1 in 1,424
- 1% config
- 1 in 397
- 99% config
- 1 in 10
Where the episodes go
Uniform sends 5% of episodes to configurations that can teach something; SGS sends 98.5%.
The curve is \(q(p)\) from Eq. 1 and 2, sampled at the 101 values an \(H=100\) window can take. The dashed line is \(p(1-p)\) and the dotted line is uniform sampling, each scaled to peak at 1.
3.6The two training decisions around the sampler
| Decision | What it means | Why it pairs with SGS |
|---|---|---|
| One reward per domain | one reward for all 13 terrains; one for all assembly tasks. A boolean success term plus small per-step regularizers (§4). | The same success bit that pays the policy also feeds the sampler. No per-task reward design. |
| Scale environments, fix the minibatch count | batch size grows with environment count; update count per iteration stays fixed (§2.3) | The paper argues extra environments only help if they land on configurations with signal; SGS steers them there. |
Paper
SGS is presented as complementary to optimizer-side fixes for PPO at scale: SAPG (Singla, Agarwal and Pathak, ICML 2024), which targets redundant data from a single Gaussian policy, and Beukman et al., Preventing learning stagnation in PPO by scaling to 1 million parallel environments (2026), which targets degraded loss estimates at scale.
4Rewards, term by term
Generic form, Eq. 3 of the paper:
\[r(s_t,a_t,g)=\lambda_{\text{task}}\,r_{\text{task}}(s_t,a_t,g)+\lambda_{\text{reg}}\,r_{\text{reg}}(s_t,a_t)\]| Locomotion policy | Manipulation teacher | |
|---|---|---|
| Observes | base linear and angular velocity, projected gravity, joint positions and velocities, previous action, goal command, local terrain height scan | joint positions, end-effector pose, previous action, point cloud of gripper, held object and board in the gripper frame |
| Acts | 12 joint-position offsets from the nominal pose, tracked by joint controllers | 3 Cartesian translation increments, 3 axis-angle rotation increments, 1 binary open/close, executed by an operational-space controller (UR5e; see §8) |
4.1Locomotion (one reward, all 13 terrains)
| Term | Formula | Weight | What it measures |
|---|---|---|---|
| \(r_{\text{succ}}\) | \(\mathbf{1}[\text{command success at } t]\) | +50 | reached the commanded goal; ends the episode |
| \(r_{\text{fail}}\) | \(\mathbf{1}[\text{drop or base contact}]\) | −50 | fell off the terrain or the body hit the ground; ends the episode |
| \(r_{\text{work}}\) | \(\lVert\tau^{\text{jnt}}_t\odot\dot q_t\rVert_1\) | \(-10^{-3}\) | mechanical power, \(\sum_j|\tau^{\text{jnt}}_j\,\dot q_j|\): wasted effort |
| \(r_{\text{post}}\) | \(\lVert q_t-q_{\text{nom}}\rVert_1\) | \(-5\times10^{-2}\) | how far the joints are from the nominal stance |
| \(r_{\text{td}}\) | \(\sum_{f}\mathbf{1}[\text{TD}_f(t)]\,\lVert v_{f,z}(t)\rVert_2^2\) | \(-2.5\times10^{-1}\) | squared vertical foot speed at touchdown: stomping |
| \(r_{\text{undc}}\) | \(\sum_{i\in\text{non-feet}}\mathbf{1}[\lVert F_i(t)\rVert_2>F_{\min}]\) | \(-5\times10^{-2}\) | count of non-foot bodies (knees, base) in hard contact |
| \(r_{\text{fwd}}\) | \(\max\big(0,\langle\hat v^{(b)}_t,\hat g^{(b)}_t\rangle\big)\) | +0.3 | forward-aligned motion; switched off for the first 500 steps of training |
\(\odot\) is the elementwise product, \(\lVert x\rVert_1=\sum_j|x_j|\), \(\mathbf{1}[\cdot]\) is 1 when the condition holds and 0 otherwise, superscript \((b)\) means "in the body frame". \(F_{\min}\) is not given.
Check
The paper says \(r_{\text{fwd}}\) makes the robot walk forward instead of approaching the goal backwards. As written, it is a dot product of two unit vectors in the same frame, and a dot product does not depend on the frame. So the formula alone measures "moving toward the goal"; to reward facing forward, one of the two vectors must be tied to the body's heading. The paper does not define \(\hat v\) and \(\hat g\) further, and does not say whether the 500 steps are environment steps or PPO iterations.
4.2Manipulation (one reward, every assembly task)
\[r(s_t,a_t)=\underbrace{r_{\text{succ}}}_{r_{\text{task}}}+\underbrace{r_{\text{fail}}+r_{\text{act}}+r_{\Delta a}+r_{\dot q}}_{r_{\text{reg}}},\qquad C(x)=\min(x,10^{4})\]| Term | Formula | Weight | What it measures |
|---|---|---|---|
| \(r_{\text{succ}}\) | \(\lambda_{\text{succ}}\,\mathbf{1}[S(s_t)]\) | 100 | assembly predicate \(S\): orientation, lateral-position and insertion-depth gates, task-specific |
| \(r_{\text{fail}}\) | \(-\lambda_{\text{fail}}\,\mathbf{1}[F(s_t)]\) | 1 | termination: a joint above twice its velocity limit, or the held object leaving the workspace |
| \(r_{\text{act}}\) | \(-\lambda_{\text{act}}\,C(\lVert a_t\rVert_2^2)\) | \(10^{-5}\) | action size |
| \(r_{\Delta a}\) | \(-\lambda_{\Delta a}\,C(\lVert a_t-a_{t-1}\rVert_2^2)\) | \(10^{-4}\) | action change between steps (smoothness) |
| \(r_{\dot q}\) | \(-\lambda_{\dot q}\,C(\lVert\dot q_{t,\text{arm}}\rVert_2^2)\) | \(10^{-4}\) | arm joint speed |
Check: what the clamp implies
Each squared norm is capped at \(10^4\), so the per-step regularizers can never cost more than \(10^{-5}\cdot10^{4}+10^{-4}\cdot10^{4}+10^{-4}\cdot10^{4}=0.1+1+1=2.1\) per step. Failure costs 1 and success pays 100, so a failed attempt is nearly free; the failure term works mainly as a safety stop.
Intuition
Both domains put nearly all of the reward into one boolean outcome. That is what makes "success rate" a meaningful single number for SGS to steer by.
5Experiments
Three questions: does SGS scale better than uniform sampling and PLR as environments grow (Q1), does it unlock tasks the others cannot learn even at small scale (Q2), and do its manipulation policies transfer to real hardware (Q3)?
5.1Tasks and configuration spaces
Locomotion. ANYmal-D with system-identified actuator models. Thirteen terrain types: slopes, pits, gaps and stairs from earlier work; radiating beams, balance beams and stepping stones; harder procedurally generated terrains (navigation mazes, contoured terrain, floating islands joined by narrow stepping stones or jump boxes at different heights); and an inverted slope, which Fig. 3 omits for space. One policy is trained from scratch on all of them, where much prior work trains per-terrain specialists and distills.
Derivation: where 104,000 comes from
\[\underbrace{13}_{\text{terrain types}}\times\underbrace{2}_{\text{seeds each}}\times\underbrace{10}_{\text{levels}}\times\underbrace{20}_{\text{starts}}\times\underbrace{20}_{\text{goals}}=104{,}000\]For the classic terrains, a level is a difficulty (slope angle, step height). For the procedural ones there is no clear ordering, so a level is just another seed.
Manipulation. NIST Assembly Task Board tasks, one policy per task.
| Task | What has to happen |
|---|---|
| Nut-and-bolt | thread an M16 nut onto an upright bolt, about 6.5 turns |
| Gear mesh | seat the medium gear on its shaft, teeth meshing with the small and large gears |
| Waterproof connector | insert the connector until fully seated |
| BNC connector | insert, then rotate to engage the lock |
| Rod-in-hole | insert a 16 mm rod |
| Rectangular peg | insert with both position and rotation aligned |
| UR5e (six tasks) | Franka Panda (nut only) | |
|---|---|---|
| Gripper | Robotiq 2F-85 | parallel jaw |
| Control | operational-space control (Cartesian commands) | joint-position control |
| Policy rate | 10 Hz, 20 physics steps per action | 25 Hz, 8 physics steps per action |
| Physics | 5 ms step (200 Hz) | |
| Nut training time | ≈335 h | ≈128 h |
Franka needs 20/8 = 2.5 times fewer physics steps per policy step, which the paper credits for part of its faster training.
Reset buffer. Each manipulation task pre-collects 32,768 collision-checked configurations, balanced across three reset families from OmniReset (about 10,900 each):
| Reset family | Start | What the policy must still do |
|---|---|---|
| Near-Goal | object partway along its assembly path, gripper placed around the grasp point by inverse kinematics, with randomized pose and aperture. For the rod, depth fraction in \([0,1.1]\): 0 is fully seated, above 1 is slightly disengaged | finish the insertion or threading |
| Stable Grasp | object held above the target, higher than Near-Goal | align, then assemble |
| Reaching | object anywhere in the workspace, gripper aligned to its grasp frame with a random aperture, so the object may fall | fetch, grasp, transport, assemble |
5.2The baselines
| Sampler | How it picks the next configuration | Used on |
|---|---|---|
| Uniform | a fresh draw from \(\rho\) at every reset. Enough for easier manipulation in OmniReset; not effective for multi-task locomotion. | all |
| Linear curriculum | hand-ordered terrain difficulty (for example stair height). Robots start at random levels, are promoted when they get close to the goal and demoted when they make little progress. | locomotion |
| PLR | score each configuration by average absolute GAE, plus a staleness bonus | all |
| SFL | periodically evaluate random levels, keep the most learnable by \(p(1-p)\), train on a mix of kept and random levels | locomotion, 4K and 32K |
Derivation: PLR in full (Jiang, Grefenstette and Rocktäschel, ICML 2021)
Score of level \(i\) from its most recent episode of length \(T_{\text{ep}}\):
\[S_i=\frac{1}{T_{\text{ep}}}\sum_{t=0}^{T_{\text{ep}}}\Big|\sum_{k=t}^{T_{\text{ep}}}(\gamma\lambda)^{k-t}\,\delta_k\Big|\]Rank-based prioritization with temperature \(\beta\), mixed with staleness (\(c\) = episodes so far, \(C_i\) = episode count when level \(i\) was last played):
\[P_S(i)=\frac{h(S_i)^{1/\beta}}{\sum_j h(S_j)^{1/\beta}},\quad h(S_i)=\frac{1}{\operatorname{rank}(S_i)},\qquad P_C(i)=\frac{c-C_i}{\sum_j (c-C_j)},\qquad P(i)=(1-\rho_{\text{st}})P_S(i)+\rho_{\text{st}}P_C(i)\]Formulas from the PLR paper; I write its staleness weight \(\rho\) as \(\rho_{\text{st}}\) to avoid a clash. The SGS paper does not report the \(\beta\) and \(\rho_{\text{st}}\) it used.
Derivation: SFL in full (Rutherford et al., NeurIPS 2024)
Every \(T\) updates: roll out \(N\) random levels for \(L\) steps, compute each one's success rate \(p\) and learnability \(p(1-p)\), keep the top \(K\). Each update then trains on \(\rho N_L\) levels drawn uniformly from the kept set plus \((1-\rho)N_L\) fresh random levels. Published defaults: \(T=50\), \(\rho=0.5\), \(N_L=256\), \(L=2000\), \(N=5000\), \(K=1000\).
From the SFL paper. The SGS paper says it ran SFL with default hyperparameters.
| PLR | SFL | SGS | |
|---|---|---|---|
| Signal | critic surprise (|GAE|) | success rate | success rate |
| Where it comes from | last training episode | extra evaluation rollouts | last \(H\) training episodes |
| Weighting | by rank | hard top-\(K\) cut, then uniform | smooth Beta curve |
| Target | fixed (high score) | fixed at \(p=0.5\) | adjustable \(t^\star\) |
5.3Protocol
| Locomotion | Franka nut | |
|---|---|---|
| Scales | 4K, 32K, 256K, 1M environments (\(2^{12}, 2^{15}, 2^{18}, 2^{20}\)) | |
| Seeds per scale | 3 | |
| PPO iterations | 5,000 | 7,500 |
| Max environments per GPU | 32,768 | 16,384 |
| GPUs needed at \(2^{20}\) (derived) | at least 32 | at least 64 |
| Wall clock (scale not stated) | ≈36 h | ≈128 h |
| Hardware | NVIDIA L40S and H200 | |
| Evaluation | fresh configurations drawn from the training distribution, not the \(N\) training ones | |
5.4Scaling results (Fig. 5)
Mean success over three seeds. Exact values are from the text and Table 1; values marked ≈ I read from the point coordinates in the paper's SVG plot files (about ±0.01).
| Sampler | 4K | 32K | 256K | 1M |
|---|---|---|---|---|
| SGS | 0.456 | 0.494 | ≈0.72 | 0.73 |
| Uniform | ≈0 | ≈0.42 | ≈0 | ≈0 |
| Linear curriculum | ≈0 | ≈0.32 | ≈0 | ≈0 |
| PLR | ≈0 | ≈0.13 | ≈0.55 | 0.54 |
| Sampler | 4K | 32K | 256K | 1M |
|---|---|---|---|---|
| SGS | ≈0.00 | ≈0.06 | ≈0.11 | 0.70 |
| Uniform | 0 | 0 | ≈0.01 | 0.06 |
| PLR | 0 | 0 | ≈0.02 | 0.05 |
UR5e rod-in-hole, Fig. 5c (an easier task): at 32K, SGS succeeds while uniform and PLR score zero; at 256K all methods reach about 98%. The plot image is broken in arXiv's HTML build, so I have only the values the text states.
Reading the tables
- More environments made two baselines worse. On locomotion, uniform and the hand-designed curriculum peak at 32K and fall to about zero at 256K and 1M. This is the collapse the paper mentions. Only SGS never gets worse as environments grow.
- On the Franka nut, SGS and scale work only together. SGS at 256K reaches about 11%; uniform at 1M reaches 6%; SGS at 1M reaches 70%. The jump happens between the last two scales.
- Easy tasks forgive. On the rod, scale alone eventually works; SGS gets there with fewer environments.
Check
The paper attributes the collapse to experience wasted on configurations without signal, but runs no experiment that isolates the cause, and three seeds per point is thin. The SGS band at 1M on the nut is wide: the three seeds sit at roughly 0.62, 0.74 and 0.75.
5.5Against SFL (Table 1)
| Environments | SFL final | SFL best | SGS final |
|---|---|---|---|
| 4K | 0.255 ± 0.051 | 0.289 ± 0.015 | 0.456 ± 0.019 |
| 32K | 0.051 ± 0.142 | 0.421 ± 0.032 | 0.494 ± 0.113 |
Locomotion success, mean ± 95% CI over three seeds.
- 4K: the intervals do not overlap (SGS 0.437 to 0.475; SFL best 0.274 to 0.304). A clear win.
- 32K: SGS spans 0.381 to 0.607 and SFL best spans 0.389 to 0.453. They overlap, so this comparison cannot separate the two.
- SFL decays. Its final score at 32K (0.051) is far below its best (0.421). The paper reports the decline but does not explain it.
- "Best" is the maximum over checkpoints, which flatters SFL. Comparing SGS's final score against it is conservative toward SGS.
Check
The interval 0.051 ± 0.142 dips below zero, which a success rate cannot do. That is typical of a t-interval over three seeds, where the half-width is \(4.30\,s/\sqrt3\approx2.48\,s\) for sample standard deviation \(s\). The paper does not say how its intervals were computed.
5.6What SGS samples over time (Fig. 7)
On a floating-islands terrain, the figure shows where sampling mass sits early, midway and late in training. Early, it is spread uniformly. Midway, it concentrates on jumps between islands at the same height. Late, it moves to configurations that involve the top of the tall central pillar.
Intuition
A curriculum appears without anyone ordering the terrain. Once level jumps are mostly solved they drop toward the low-weight tails, and the next frontier, the pillar, rises into the peak.
5.7Six UR5e tasks (Table 6)
| Task | Envs | Uniform | PLR | SGS |
|---|---|---|---|---|
| Gear mesh | 64K | 94.24 | 95.51 | 96.09 |
| Waterproof | 64K | 95.31 | 95.90 | 95.80 |
| Rectangular peg | 64K | 92.09 | 84.18 | 92.77 |
| Rod-in-hole | 64K | 95.90 | 95.41 | 95.70 |
| BNC | 64K | 83.40 | 81.45 | 84.08 |
| Nut-and-bolt | 256K | 48.83 | 59.77 | 90.04 |
Success (%) from Reaching resets under full gravity. No seeds or intervals are given.
- On the five insertion tasks the three samplers are within about 2.6 points of each other, except PLR on the peg. The paper calls SGS comparable to uniform; without intervals, gaps this small cannot be ranked.
- The nut is the only large gap: 90 versus 49 and 60. The authors' hypothesis is that less forgiving contact and a longer horizon make focused practice matter more.
- UR5e nut (90%) beats Franka nut (70%). The authors credit mostly the control interface: OSC lets the policy command Cartesian motion directly, while joint-position control makes it coordinate seven joints itself. Embodiment, gripper and policy rate also differ.
6Appendix studies
6.1Hyperparameter sensitivity (Table 3)
Locomotion, 32K environments, one knob changed at a time, two seeds per setting. Nominal settings in bold.
| Knob | Setting (success) |
|---|---|
| Target \(t^\star\) | .33 (.50) · .50 (.44) · .66 (.49) · .80 (.42) · .90 (.52) |
| Concentration \(\kappa\) | 1 (.44) · 2 (.47) · 5 (.49) · 10 (.46) |
| Temperature \(T\) | 2 (.49) · 4 (.53) |
| Window \(H\) | 25 (.39) · 100 (.49) · 400 (.47) |
| Floor \(\epsilon\) | \(10^{-8}\) (.49) · \(10^{-4}\) (.46), bolded in the paper · \(10^{-2}\) (.44) |
| Kernel, 4K envs, 3 seeds | Normal (.45) · Beta (.46) |
| Patches \(n_{\text{patch}}\) | 10 (.38) · 20 (.49) · 40 (.48) |
Check: two rows are one axis
By §2.6, \(\kappa\) and \(T\) act through \(\kappa/T\) in the interior. Putting both rows on that axis:
| \(\kappa/T_{\text{eff}}\) | 0.5 | 1.0 | 1.25 | 2.5 | 5.0 |
|---|---|---|---|---|---|
| run | κ = 1 | κ = 2 | T = 4 | nominal | κ = 10 |
| success | .44 | .47 | .53 | .49 | .46 |
The best number in the whole table (.53) sits between two weaker neighbors, which looks like seed noise. \(T=4\) is not a pure \(\kappa/T\) move, though: it also lifts the floor from \((2\epsilon)^{1/2}\) to \((2\epsilon)^{1/4}\), giving more practice to 0% and 100% configurations.
- Noise yardstick. SGS at 32K over three seeds is 0.494 ± 0.113 (Table 1). Most differences in this table (0.05 or less) sit well inside that. The drops that stand out are \(H=25\) (.39), \(n_{\text{patch}}=10\) (.38) and \(t^\star=.80\) (.42); the \(H\) and \(t^\star\) rows have two seeds, and the patch rows' seed count is not stated.
- Kernel shape barely matters. A Normal-shaped kernel scores .45 against the Beta's .46. The paper does not give the Normal kernel's exact form.
- Manipulation sweep. \(\kappa\in\{1,5,10\}\) by \(t^\star\in\{.33,.5,.66\}\), \(T=2\), 32K environments; \(\kappa=1,\ t^\star=0.5\) won "by a small margin". Its numbers are not reported.
Check: two errors in this table's description
The bolded floor is likely wrong. §3.2 says locomotion uses \(\epsilon=10^{-8}\), yet the table bolds \(10^{-4}\). Every other 32K row's nominal entry scores .49, and so does the \(10^{-8}\) entry, so the \(10^{-8}\) run is almost certainly the nominal one. The patch counts don't multiply. The text says each tile uses \(n_{\text{patch}}\) spawn patches times \(n_{\text{patch}}\) goal patches, which gives \(260\times n_{\text{patch}}^2\) = 26,000 / 104,000 / 416,000 configurations. The paper reports 52,000 / 104,000 / 208,000, which is linear in \(n_{\text{patch}}\) (only one of the two counts changing, the other held at 20).
6.2Which resets matter (Table 4)
UR5e rod-in-hole retrained on two of the three reset families, three seeds each. Success (%) on each family:
| Training buffer | Stable Grasp | Reaching | Near-Goal |
|---|---|---|---|
| All three | 99.5 | 96.0 | 100.0 |
| Without Stable Grasp | omitted | 63.8 | 81.3 |
| Without Reaching | 99.4 | omitted | 100.0 |
| Without Near-Goal | 0.0 | 0.0 | omitted |
- Without Near-Goal, nothing is learned. If no configuration ever succeeds, every \(p_i\) stays at 0, every configuration gets the same weight, and SGS degenerates to uniform sampling over hopeless starts.
- Without Stable Grasp, one of three seeds collapsed and two stayed high, which drags the means to 63.8 and 81.3.
- Without Reaching, the other two families are unaffected. No Reaching score is reported for that run.
Intuition
SGS redistributes practice across configurations that sometimes succeed. It cannot create success where none exists. This is close to the paper's second stated limitation: SGS samples from a distribution but does not construct it.
6.3The gravity curriculum (Table 5)
The main manipulation runs, including the Franka scaling study, also used a gravity curriculum: training starts at zero gravity, and gravity steps toward its normal value whenever success exceeds 80% at the current level. Afterwards, one run at 1M environments without it:
| Franka nut, Reaching resets, 1M envs | Success |
|---|---|
| SGS with gravity curriculum | 0.702 ± 0.039 |
| SGS without | 0.694 ± 0.040 |
Check
These intervals are over 512 evaluation episodes, not over training runs. They match the binomial formula \(1.96\sqrt{p(1-p)/512}\approx0.040\) to rounding. So they measure evaluation noise only. The no-curriculum result is one training seed, and the appendix says only that the curriculum appears unnecessary in this setting, though §4.2 of the paper calls it unnecessary outright.
7Sim-to-real
Pipeline: train a point-cloud teacher with SGS in simulation, distill it into an RGB student with DAgger, run the student on a real UR5e with no real-world data or fine-tuning. It builds on OmniReset's transfer pipeline.
7.1Hardware and the board
- UR5e with a Robotiq 2F-85, OmniReset's relative Cartesian operational-space control, one third-person camera and one wrist camera (OmniReset used three cameras).
- The NIST board is polished acrylic. Facing it, the wrist camera saw the robot's own reflection, an image it never saw in training. The board's low friction also broke strategies that push objects against it to reorient them. The fix was covering the board with tape.
- The board is fixed to the table with command strips. Simulation treats the receptacles as static, so a board that shifts on contact causes failures.
7.2Gripper pad friction: the "glue grasp" trap
Derivation: why μ = 100 is a cheat
Coulomb friction caps the sideways force a contact can resist at \(\mu\) times the squeezing force:
\[|F_{\text{tangential}}|\le\mu\,F_{\text{normal}}\]Squeeze with 10 N and \(\mu=100\) resists up to 1,000 N, so nothing ever slips: any touch with some normal force acts like glue. With \(\mu=2\), the same squeeze resists 20 N, and a badly placed grasp can fail as it would on the real robot.
- OmniReset gave the pads \(\mu=100\) with the
maxcombine mode. When two surfaces touch, a simulator needs one coefficient for the pair;maxtakes the larger of the two. Training was easy, and the authors found this a major source of sim-to-real gap. - Lowering friction removed the fake grasps but stopped learning altogether. A rod-in-hole sweep from scratch at \(\mu\in\{0.5,1,1.5,2\}\) (Fig. 9, measuring grasp-in-air success) trained stably only at \(\mu=2\). Every run uses \(\mu=2\).
7.3Teacher, student, and DAgger
| Sees | |
|---|---|
| Teacher actor | arm joint positions, previous action, scene point cloud in the gripper frame |
| Teacher critic | everything the actor sees plus privileged state: joint velocities and the sampled randomization parameters |
| RGB student | side and wrist RGB images, each encoded by its own ResNet-18, plus arm joint positions, end-effector pose and previous action |
The critic only exists during training, so it may see information the deployed robot never will. That is called an asymmetric actor–critic.
Why a point-cloud teacher. A teacher that reads exact object poses can act on information no camera provides. Point clouds are geometry, closer to what a student can infer from images, so the teacher's behavior is easier to imitate.
Derivation: DAgger versus behavioral cloning
Behavioral cloning trains on states the teacher visits. The student's small mistakes take it to states the teacher never visited, where it was never trained, and errors compound. DAgger (Ross, Gordon and Bagnell, 2011) lets the student act, asks the teacher what it would have done in each state the student reached, and trains on those labels. The training states are then the student's own.
The paper's online version: each iteration takes one step in every environment, updates the student toward the teacher's actions, and throws the data away. No dataset is stored, which saves GPU memory while simulation, rendering and training share the card.
- Why hold out environments. In online DAgger, the student was just updated on the teacher's label for almost the same state one step earlier, so training success is inflated. The paper reserves 6.67% of environments (one in 15) that never contribute gradients. On the nut, held-out success lags training success early and catches up later (Fig. 10).
- Distillation takes about two days on four L40S GPUs with 480 environments each: 1,920 environments, so the held-out share is 128 (32 per GPU), assuming the split is per GPU or global.
- Visual randomization and image augmentation follow OmniReset.
7.4Symmetry-aware resets and rewards
Resets randomize each object over its equivalent orientations: discrete symmetries are sampled uniformly, and continuous ones uniformly over \([0^\circ,360^\circ)\). The success test accepts any equivalent goal orientation.
Intuition
If two orientations look identical to a camera but the teacher's reward insists on one of them, the teacher learns to tell them apart and the student cannot copy that. Symmetric resets and rewards remove distinctions the student cannot see.
| OmniReset peg insertion, teacher | RGB student success (sim) |
|---|---|
| Pose-based (OmniReset's result) | 55.45% |
| Point cloud plus eight equivalent orientations | 98% |
Check
The second row changes two things at once, point-cloud observations and symmetry, so the gain cannot be attributed to symmetry alone.
7.5Hardware results (Table 2)
| Task | Teacher (sim) | Student (sim) | Real success | 95% Wilson (mine) | First try | Successes / min |
|---|---|---|---|---|---|---|
| Nut-and-bolt | 90.04 | 89.05 | 37.5% (18/48) | 25–52% | 12.5% (6) | 0.23 |
| Rod-in-hole | 95.70 | 93.36 | 61% (30/49) | 47–74% | 28.57% (14) | 0.71 |
| Gear mesh | 96.09 | 96.42 | 94% (47/50) | 84–98% | 76.0% (38) | 3.08 |
Simulation numbers come from Reaching resets. First-try counts are back-computed from the percentages, and each comes out a whole number.
- The gap grows with difficulty: 2 points on the gear, 32 on the rod, 52 on the nut (student sim minus real).
- Retries do much of the work. First-try successes are 6 of 18 successes on the nut and 14 of 30 on the rod, but 38 of 47 on the gear.
- Throughput. Successes divided by total time, resets included. The runs lasted about 83, 42 and 15 minutes: 18/83 = 0.22, 30/42 = 0.71, 47/15 = 3.13, close to the reported 0.23, 0.71 and 3.08; the nut's 0.23 implies about 78 minutes rather than 83.
- The simulation teachers are the SGS policies of Table 6 (90.04, 95.70, 96.09 match exactly).
- Metrics follow OmniReset, with one change: re-grasps before the first insertion attempt are not counted as retries. Objects start at uniformly random positions on the board.
7.6Transfer lessons
| Observation | Fix |
|---|---|
| Policies that commit to a clean grasp and insert directly transfer better than ones exploiting simulated contact. | general lesson |
| Rod: the student needed to recover from misses. | 1 mm per-step Gaussian noise on the point cloud taught it to re-aim after a miss and wiggle a rod that was not fully seated. |
| Nut: the policy kept dropping the nut on the bolt and flipping it. | The authors suspect the teacher reward, which accepted only one upright orientation of a symmetric nut. Removing that constraint and tuning the action scaling of the 6-DOF end-effector control produced a policy that completes the task. |
8Reading it critically
The paper's three limitations
- Success estimates live on a discrete set of configurations. Continuous or much larger task spaces would need a learned or hierarchical score.
- SGS samples from a distribution; it does not build one. Coverage comes from reset generators like OmniReset, and choosing which configurations to offer is open.
- A sim-to-real gap remains.
Inconsistencies I found
| Where | What |
|---|---|
| Limitations | Says \(K=32{,}768\) cells is sufficient. The method calls this \(N\), and locomotion uses \(N=104{,}000\). |
| Table 3 | Bolds \(\epsilon=10^{-4}\) as nominal for locomotion; §3.2 says \(10^{-8}\) (§6.1). |
| App. B.2 | Patch counts are linear in \(n_{\text{patch}}\) while the text describes a product (§6.1). |
| App. A.3.2 vs C.3 | The teacher's observations include end-effector pose in one and not the other. |
| App. A.3.2 | Describes Cartesian actions executed by OSC without naming a robot, in a subsection whose reward covers both robots, but the Franka uses joint-position control (A.2, B.5). The description fits the UR5e. |
| App. A.3.1 | \(r_{\text{fwd}}\) is underspecified (§4.1). |
| §4.1 | Calls the procedural set "five" terrains, then names a maze, a contoured terrain and four island variants. |
How much the numbers can carry
- Three seeds for the main results, two for the sensitivity table, one for the gravity ablation, and no intervals at all for Table 6.
- Real-robot results rest on about 50 trials each, so their 95% intervals span 14 to 26 points (§7.5).
- SFL is also reported at its best checkpoint, and it ran with its own paper's defaults while SGS had a small grid search.
Not in the paper, so not reproducible from it alone
PPO settings (\(\gamma\), \(\lambda\), \(\epsilon_{\text{clip}}\), epochs, rollout length, minibatch count, learning rate), episode lengths, PLR's \(\beta\) and staleness weight, how an empty buffer is scored, the Normal kernel's form, the gravity step size, the locomotion success tolerance, \(F_{\min}\), and the simulator.
9What it means for Φ
Suggestions, not results. Each ties a paper finding to something the club already has.
| Paper finding | For the club |
|---|---|
| At 4K environments SGS already reaches about 0.46 on locomotion while uniform, the linear curriculum and PLR sit near zero (SFL reaches 0.26, Table 1). | That is our regime: Squint runs 1,024 environments by default. But Squint trains with SAC and every SGS result is PPO, so the carry-over is untested. The sampler costs one ring buffer per configuration plus Eq. 1 and 2. |
| Without Near-Goal resets, nothing learns (Table 4). | For SO-101 lifting or placing, include starts with the cube already in the gripper and starts with the gripper at the cube, so some configurations have \(p>0\) from the first iteration. |
| Pad friction of 100 made fake grasps succeed. | The club's real failure mode is the grasp: in the 2026-08-10 rollout scoring, 37 of 62 rollouts failed at "reached the object". Check grasp physics before trusting simulated success. Our MuJoCo SO-101 scene leaves all 31 geoms at MuJoCo's default sliding friction of 1, and MuJoCo uses the larger coefficient of a contact pair unless priorities are set. |
| Symmetric resets and rewards took a student from 55% to 98% (with a point-cloud teacher). | A plain cube has 24 rotational symmetries. Rewards and resets should treat them as one, so a camera policy is never asked to tell them apart. |
| Real results carry 95% intervals 14 to 26 points wide at n ≈ 50. | The same Wilson arithmetic the club already uses for rollout scoring. |
| A hand-designed terrain curriculum collapsed at scale (Fig. 5a). | If the club trains a quadruped across terrains, SGS can replace hand-ordered terrain levels. |
10Cheat sheet
| Symbol | Meaning | Locomotion | Manipulation |
|---|---|---|---|
| \(\tau=(s_0,g,e)\) | task configuration | terrain, start, goal | task, reset state, receptacle |
| \(N\) | frozen configuration set | 104,000 | 32,768 |
| \(H\) | outcomes kept per configuration | 100 | 100 |
| \(p_i\) | mean of the last \(H\) outcomes | \(\{0, 0.01, \dots, 1\}\) | |
| \(t^\star\) | target success rate, the kernel's peak | 0.66 | 0.5 |
| \(\kappa\) | concentration, peak sharpness | 5 | 1 |
| \(T\) | softmax temperature, at least 1 | 2 | 2 |
| \(\epsilon\) | floor and log guard | \(10^{-8}\) | \(10^{-4}\) |
| \(\kappa/T\) | effective sharpness | 2.5 | 0.5 |
| \(w_i\) | \((p_i+\epsilon)^{\kappa t^\star}(1-p_i+\epsilon)^{\kappa(1-t^\star)}\) | ||
| \(q_i\) | \(\propto(\max(w_i,\epsilon)+\epsilon)^{1/\max(T,1)}\) | ||
| Terminal reward | success and failure | +50 / −50 | +100 / −1 |
| Envs | parallel environments | up to \(2^{20}\) | up to \(2^{20}\) (Franka), at least 32K to 256K (UR5e) |
| Headline | success at 1M envs | 0.73 (PLR 0.54) | 0.70 Franka nut (uniform 0.06) |