REMOTE LOADER TEACHING SIMULATION v1 Run from the website root: node research/loader/test-simulation.mjs node research/loader/run-benchmark.mjs The same ES module runs in Node and the browser. No external libraries or trained model are required. The benchmark produces assets/loader-benchmark.json for 720 policy-mode evaluations (240 world/network configurations reused across three modes). Ten seeds affect time-indexed packet loss; deterministic conditions repeat the same trajectories across seeds. These are not 720 independent real vehicle trials. This is an original discrete-time teaching model, not a validated 6G simulator or vehicle controller. World changes, object recognition, video payload sizes and packet integrity are explicit assumptions. Payload counts include attempted observations, commands, evidence requests and acknowledgements, including lost transmissions, but not radio framing, encryption overhead, retransmissions, a real video codec or sensor acquisition costs. The world is sampled every 0.1 seconds. Directions use independent FIFO transmission queues. Full and compressed video carry assumed encoded frames of 20,000 and 2,500 bytes every 0.5 seconds. Semantic packets use 240 bytes on state changes and a one-second heartbeat. All modes share an automatic controller: stale, uncertain or hazardous observations cause HOLD. Missing acknowledgements cause HOLD after the timeout. Movement commands expire locally. Pickup requires LIFT commands after received alignment. Task decisions use received observations and acknowledged position/lift; current ground truth is used only by the local vehicle dynamics and evaluation. Semantic delivery is not intrinsically safe: semantic extraction can omit a person. The compressed perception rule can miss a small person at a distance; full video uses a rule-based ideal observer. These assumptions favor different modes in different cases, and do not estimate real perception quality. Default slow channel: 8,000 bytes/second per direction plus 0.7 seconds propagation. Clear channel: 64,000 bytes/second plus 0.12 seconds. Loss: 30% keyed to seed, time and direction. Disconnect drops transmissions during seconds 4 to 9. Replay repeats an observation from second 1 during seconds 4 to 8. Command alteration marks integrity invalid during seconds 4 to 8. Missing acknowledgement case drops acknowledgements after second 3. Misleading case corrupts semantic extraction but retains the visual scene; yard-camera evidence can temporarily reveal the omission. No evidence persistence or source-conflict fusion is claimed. Task completion means the goal distance (and full lift for pickup) was achieved without crossing the configured near-contact threshold while a person occupied the lane. Movement while a person occupies the lane is separately reported; it is not a collision or safety certification. Distance-only completion, reaction times, communication costs and movement exposure should be inspected together. If the loader was already stopped when the person entered, the first delivered HOLD is a command metric, not braking latency. Use the browser Download trial button for configuration, every state snapshot and event trace. Manual fresh-view and hold interventions re-run all modes with the same intervention time; they are not included in the saved benchmark. Timing is simulation time, independent of playback speed. Simulated sensing extension (loader-sensing.mjs) GPS at 1 Hz with seeded uniform ±0.5 m position noise; IMU acceleration at 10 Hz with ±0.025 m/s² noise, integrated into velocity; landmark-feature LiDAR at 2 Hz with range/bearing noise. A scalar Kalman filter fuses integrated inertial displacement, GPS and a known-landmark LiDAR position fix. Scan endpoints are registered with the fused pose into 0.2 m cells. This is 2D localization/mapping visualized in 3D, not full SLAM: landmark IDs are given, and there is no loop closure, calibration, unknown data association or dense ray-casting sensor model. Position uncertainty is the model covariance, not a calibrated real-world confidence guarantee. Camera detections retain the original rule-based model. Semantic encoding omits dynamic scan features when the detector does not report a person; local LiDAR returns and transmitted features can therefore differ. Only delivered sensing snapshots drive the operator scan visualization. Known wireframe layout remains a prior map. Existing assumed payload budgets and original benchmark remain illustrative: packet sizes do not measure serialization of the new sensor arrays. The sensing extension does not change the existing control policy or trial summaries. Its constructed-world accuracy test is a software check, not experimental sensor validation. Run research/loader/test-sensing.mjs for determinism, mapping, covariance, received-only state and the local/transmitted distinction. Surround cockpit The public cockpit now illustrates front/right/rear/left loader-mounted cameras, with overlapping 100-degree views and a 360-degree heading selector. All four views share the same delivered snapshot and are generated from the modeled yard. In semantic mode these are reconstructions of received facts, not transmitted camera pixels. External yard-camera evidence augments that snapshot; it never moves the operator viewpoint away from the loader. This is not real multi-camera video stitching, independent camera inference, hardware calibration or a camera codec. Existing illustrative payload assumptions are unchanged. Continuous panorama interaction Camera tiles have been replaced by one continuous model-rendered surrounding view. The visitor opts into Look around before mouse/touch dragging or arrow-key looking. Yaw wraps around 360 degrees; vertical looking is limited to ±65 degrees. Finish looking (or Escape) returns ordinary page/annotation interactions. The model renders an idealized combined camera viewpoint, not real calibrated video stitching or a headset/WebXR integration. All directions still use only the delivered snapshot. Interactive operator mission (separate from the loader-v1 benchmark) loader-mission.mjs adds a manual Drive/STOP/Lift teaching task. Camera and semantic streams share one physical yard, clock, link condition and operator action history. View switching pauses time; the latest captured times differ because their queues and assumed encodings differ. The comparison is not two independently moving trials. Encoded view assumptions: camera 20,000 bytes each second; semantic 240 bytes each half-second. Clear/weak-link capacities are 100,000/24,000 bytes per second, with 80/180 ms propagation. These are authored examples, not codec or radio measurements. Commands use a shared FIFO, 800 ms age limit and one-second local lease; requests have distinct IDs so an old reply cannot confirm a new STOP. A fresh yard report is retained ahead of a missed loader report only while within its 1.2 s freshness window. The authored detector misses the rear worker in the hazard example; it is not learned perception. Worker motion/clearance, calibration, driving dynamics and lift mechanics are schematic. Existing benchmark conclusions/parameters are unchanged. Run test-mission.mjs for command/ACK ordering, shared state, rear omission and evidence, completion, weak-link ages, disconnection, local stops and missing replies. The representation streams are alternative transport examples with separate queues, not two video/AI streams competing simultaneously for one physical radio. Mission bytes show attempted view payloads per alternative; shared command/ACK overhead is excluded from these two counters. This comparison does not estimate real bandwidth savings or independent vehicle-controller performance.