function ARVRLearning({ onNavigate }) {
const [mode, setMode] = React.useState('vr');
const vrModules = [
{ t: 'VR Welding Booth', trade: 'Welder', dur: '20 min', level: 'Immersive', ready: true },
{ t: 'VR Machine Shop Walkthrough', trade: 'Machinist', dur: '15 min', level: 'Immersive', ready: true },
{ t: 'VR Electrical Panel Wiring', trade: 'Electrician', dur: '25 min', level: 'Immersive', ready: true },
{ t: 'VR Engine Overhaul Bay', trade: 'Mechanic Diesel', dur: '30 min', level: 'Advanced', ready: false },
{ t: 'VR Height & Confined-Space Safety', trade: 'All trades', dur: '12 min', level: 'Safety', ready: true },
{ t: 'VR CNC Setup & Operation', trade: 'CNC Operator', dur: '22 min', level: 'Advanced', ready: false },
];
const arModules = [
{ t: 'AR Motor Component Scan', trade: 'Electrician', dur: 'Live', level: 'Mobile AR', ready: true },
{ t: 'AR Lathe Parts Overlay', trade: 'Turner', dur: 'Live', level: 'Mobile AR', ready: true },
{ t: 'AR Tool Recognition', trade: 'Fitter', dur: 'Live', level: 'Mobile AR', ready: true },
{ t: 'AR Hydraulic Circuit', trade: 'Mechatronics', dur: 'Live', level: 'Mobile AR', ready: true },
{ t: 'AR PCB Fault Finder', trade: 'Electronics Mechanic', dur: 'Live', level: 'Mobile AR', ready: false },
{ t: 'AR Safety Signage Trainer', trade: 'All trades', dur: 'Live', level: 'Mobile AR', ready: true },
];
const modules = mode === 'vr' ? vrModules : arModules;
return (
AR & VR Learning
Step inside the machine.
Optional immersive training with VR headsets and mobile augmented reality — for muscle-memory practice and equipment familiarisation.
{/* Immersive hero */}
WEBXR · HEADSET + MOBILE AR
Immersive practice, unlimited repetitions, zero material cost.
Pair any WebXR headset or scan with an Android/iOS phone. Practise dangerous or expensive procedures safely, as many times as you need.
{[
{ k: '24', v: 'VR modules' },
{ k: '40+', v: 'AR overlays' },
{ k: '6', v: 'Headsets supported' },
].map(s => (
))}
{/* Device pairing panel */}
DEVICE STATUS
{[
{ d: 'Meta Quest 3', s: 'Connected', ok: true, ic: window.IconHeadset },
{ d: 'Classroom projector', s: 'Casting', ok: true, ic: window.IconVideo },
{ d: 'Student phone (AR)', s: 'Scan QR to pair', ok: false, ic: window.IconScan },
].map(x => {
const I = x.ic;
return (
{!x.ok &&
}
);
})}
{/* Mode toggle */}
{[{ id: 'vr', l: 'VR Modules', ic: window.IconHeadset }, { id: 'ar', l: 'AR Experiences', ic: window.IconScan }].map(m => {
const I = m.ic;
const active = mode === m.id;
return (
);
})}
{modules.length} experiences available
{modules.map(m => (
{mode === 'vr' ? : }
{m.level}
{!m.ready &&
SOON
}
{m.t}
{m.trade}
{m.dur}
))}
);
}
window.ARVRLearning = ARVRLearning;