function VirtualWorkshop({ onNavigate }) { const [spot, setSpot] = React.useState('lathe'); const stations = { lathe: { label: 'Centre Lathe', x: '30%', y: '38%', trade: 'Turner', status: 'Guided tour ready' }, bench: { label: 'Fitting Bench', x: '62%', y: '30%', trade: 'Fitter', status: 'In use' }, drill: { label: 'Pillar Drill', x: '78%', y: '55%', trade: 'Fitter', status: 'Available' }, weld: { label: 'Welding Booth', x: '20%', y: '68%', trade: 'Welder', status: 'PPE required' }, grind: { label: 'Grinder', x: '48%', y: '72%', trade: 'Machinist', status: 'Available' }, store: { label: 'Tool Store', x: '86%', y: '22%', trade: 'All', status: 'Open' }, }; const cur = stations[spot]; const tools = [ { n: 'Vernier Caliper', use: 'Precision measurement (0.02mm)', tag: 'Measuring' }, { n: 'Try Square', use: 'Checking 90° squareness', tag: 'Marking' }, { n: 'Flat File — 2nd cut', use: 'Material removal & finishing', tag: 'Cutting' }, { n: 'Ball-peen Hammer', use: 'Riveting, punch striking', tag: 'Striking' }, { n: 'Scriber', use: 'Marking lines on metal', tag: 'Marking' }, ]; const safety = [ { t: 'Wear safety goggles & apron', done: true }, { t: 'Tie back loose clothing / hair', done: true }, { t: 'Check machine guards in place', done: true }, { t: 'Clear swarf from work area', done: false }, { t: 'Confirm emergency stop location', done: false }, ]; const sequence = [ { t: 'Isolate & inspect power supply', phase: 'startup' }, { t: 'Check lubrication & coolant levels', phase: 'startup' }, { t: 'Set spindle speed & feed', phase: 'startup' }, { t: 'Engage guard, start spindle', phase: 'startup' }, { t: 'Stop spindle, retract tool', phase: 'shutdown' }, { t: 'Clean machine & isolate power', phase: 'shutdown' }, ]; return (
Virtual Workshop

Walk the shop floor before you enter it.

Familiarise yourself with layout, tools, safety zones and machine start-up sequences — all before your first physical practical.

{/* Interactive floor map */}
Fitting & Machining Shop — Bay 2
Click a station to explore · 6 workstations
INTERACTIVE 3D
{/* layout zones */}
SHOP LAYOUT · 18m × 12m
{Object.entries(stations).map(([id, s]) => { const active = spot === id; return ( ); })}
{/* Selected station detail */}
{cur.label}
{cur.trade} trade · {cur.status}

The centre lathe is the most versatile machine in the shop — used for turning, facing, boring, threading and knurling. Master its controls and safe operation here.

{[ { k: '8', v: 'Controls to learn' }, { k: '12', v: 'Operations' }, { k: '4.6★', v: 'Familiarity score' }, { k: '18 min', v: 'Guided tour' }, ].map(x => (
{x.k}
{x.v}
))}
{/* Three utility cards */}
{/* Tool identification */}
Tool identification
{tools.map(t => (
{t.n} {t.tag}
{t.use}
))}
{/* Safety walkthrough */}
Safety walkthrough
3/5
{safety.map(s => (
{s.done ? : }
{s.t}
))}
Complete all 5 checks to unlock the welding booth simulation.
{/* Machine start/stop sequence */}
Start-up & shutdown
{['startup', 'shutdown'].map(phase => (
{phase === 'startup' ? '▲ Start-up' : '▼ Shutdown'}
{sequence.filter(s => s.phase === phase).map((s, i) => (
{i + 1}
{s.t}
))}
))}
); } window.VirtualWorkshop = VirtualWorkshop;