function VirtualLab({ onNavigate }) {
const [current, setCurrent] = React.useState(2);
const steps = [
{ n: 1, t: 'PPE check & safety briefing', done: true },
{ n: 2, t: 'Machine setup — voltage, wire, gas', done: false, current: true },
{ n: 3, t: 'Workpiece positioning', done: false },
{ n: 4, t: 'Tack weld both ends', done: false },
{ n: 5, t: 'Root pass', done: false },
{ n: 6, t: 'Filler & capping pass', done: false },
{ n: 7, t: 'Post-weld inspection', done: false },
];
return (
{/* Left — Tool tray */}
{/* Center — Sim viewport */}
● LIVE SIMULATION
ATTEMPT 3 · 00:04:22

{/* Crosshair / target */}
{/* Bottom HUD readouts */}
{[
{ l: 'ARC VOLTAGE', v: '22.4', u: 'V', ok: true },
{ l: 'WIRE FEED', v: '4.8', u: 'm/min', ok: true },
{ l: 'TRAVEL SPEED', v: '285', u: 'mm/min', warn: true },
{ l: 'TORCH ANGLE', v: '72°', u: '', ok: true },
{ l: 'STICK-OUT', v: '14', u: 'mm', ok: true },
].map(r => (
))}
Slow down: travel speed is 12% high
{/* Attempt score bar */}
{[
{ l: 'Bead uniformity', v: 88 },
{ l: 'Penetration', v: 76 },
{ l: 'Speed control', v: 71 },
{ l: 'Safety compliance', v: 100 },
].map(m => (
{m.l}
{m.v}
= 85 ? 'var(--green-600)' : m.v >= 70 ? 'var(--saffron-500)' : 'var(--red-600)', borderRadius: 999 }} />
))}
{/* Right — Exercise steps */}
);
}
window.VirtualLab = VirtualLab;