{isPlayground ? '“Apply algorithms. Run the envs. Publish.”' : '“From Rewards to Reality.”'}
{isAdmin ? (
<>
{adminAuthed ? (
<>
internal · signed in
>
) : (
internal · signed out
)}
>
) : isPlayground ? (
<>
session liveoptrl.com / playground
>
) : (
<>
{/* Counted from the live boards, not baked in. */}
live · {
(() => {
const s = window.RLX_STATUS;
return s ? (s.paper + s.proprietary + s.playground) : 0;
})()
} entries indexed
{currentUser ? (
<>
👤 {currentUser.display_name || currentUser.social_handle || (currentUser.email ? currentUser.email.split('@')[0] : 'User')}
>
) : (
)}
>
)}
{!isAdmin && (
)}
>
);
};
// ============================================================
// LEADERBOARDS
//
// One table, three boards. The column set is exactly the RLX CSV
// contract (docs/RLX/rl_benchmarks_comparison-v3.csv) and nothing
// else: Research, OptRL and Playground are field-identical by
// construction because they render the same component.
//
// Every column below maps 1:1 to an API field. Nothing here is
// derived, inferred or computed from another column: if the source
// didn't report it, the cell shows a dash rather than a zero.
// ============================================================
// "not reported": never render a missing measurement as 0.
const Dash = () => -;
const Num = ({ v, digits = 2 }) => (
v === null || v === undefined || Number.isNaN(v)
?
: <>{Number(v).toLocaleString(undefined, { maximumFractionDigits: digits })}>
);
const Pct = ({ v }) => (
v === null || v === undefined ? : <>{Number(v).toFixed(1)}%>
);
// Training Steps keeps its unit: 40M Atari frames is not 1M gradient
// steps, and the board must not imply they are comparable.
const Steps = ({ raw, n, unit }) => {
if (!raw && n === null) return ;
const label = raw || Number(n).toLocaleString();
const suffix = unit && unit !== 'steps' ? unit.replace(/_/g, ' ') : null;
return (
{label}
{suffix && (
{suffix}
)}
);
};
const EmptyBoard = ({ lane }) => {
const copy = {
paper: ['No research benchmarks yet.',
'An admin loads these from a CSV in RLX Admin → Upload Sheet.'],
proprietary: ['No OptRL benchmarks yet.',
'An admin loads these from a CSV in RLX Admin → Upload Sheet.'],
playground: ['No published runs yet.',
'Runs appear here once a Playground session is published and approved.'],
}[lane];
return (
A living record of reinforcement-learning performance across published
research, OptRL proprietary experiments, and community-submitted runs
from the OptRL Playground.
{boards.map(b => (
))}
);
};
const BoardTable = ({
lane, rows, sortKey, setSortKey, sortDir, setSortDir,
fSuite, setFSuite, fType, setFType, fEnv, setFEnv, onPublish,
}) => {
const uniq = (k) => [...new Set(rows.map(r => r[k]).filter(Boolean))].sort();
const suites = useMemo(() => uniq('benchmark_suite'), [rows]);
const types = useMemo(() => uniq('learning_type'), [rows]);
const envs = useMemo(() => uniq('environment'), [rows]);
const filtered = useMemo(() => {
let r = rows.filter(x =>
(fSuite === 'all' || x.benchmark_suite === fSuite) &&
(fType === 'all' || x.learning_type === fType) &&
(fEnv === 'all' || x.environment === fEnv));
const dir = sortDir === 'desc' ? -1 : 1;
r = [...r].sort((a, b) => {
const va = a[sortKey], vb = b[sortKey];
// "Not reported" always sorts last, in both directions: the
// same rule the API applies with NULLS LAST.
const na = va === null || va === undefined;
const nb = vb === null || vb === undefined;
if (na && nb) return 0;
if (na) return 1;
if (nb) return -1;
if (typeof va === 'number' && typeof vb === 'number') return (va - vb) * dir;
return String(va).localeCompare(String(vb)) * dir;
});
return r;
}, [rows, fSuite, fType, fEnv, sortKey, sortDir]);
const toggleSort = (k) => {
if (sortKey === k) setSortDir(sortDir === 'desc' ? 'asc' : 'desc');
else { setSortKey(k); setSortDir('desc'); }
};
const arrow = (k) => sortKey === k
? {sortDir === 'desc' ? '▼' : '▲'} : null;
const th = (k, label, numeric) => (
)}
>
);
}
// The last column is the row's provenance. For uploaded boards
// that's the citation the sheet carried; for Playground it's the
// submitter, which is the same idea: who this result came from.
const provenanceHead = lane === 'playground' ? 'Submitted By' : 'Primary Citation';
return (
<>