High-fidelity VR simulators for validating luxury vehicle HMI, featuring multiplayer collaboration and eye-tracking analytics to bridge the gap between design and engineering.
Multi
Real-time Collab
35%
Frame Time Reduction
Eye
Tracking Analytics
VR
Platform
// The Challenge
Designing Human-Machine Interfaces (HMI) for luxury vehicles normally requires expensive physical bucks and slow iteration cycles. Aston Martin needed a way to validate HMI concepts and ergonomics rapidly with teams distributed across the UK and Europe.
The challenge was to build a photorealistic VR prototype that allowed multiple engineers to sit in the same virtual car, interact with the dashboard, and analyze driver attention—all in real-time.
// Development Process
Designing dashboard interfaces and interaction flows in Figma
Importing CAD models and setting up the VR interaction rig
Implementing Photon Fusion for state synchronization and voice chat
Integrating eye-tracking SDKs to capture gaze data
Conducting multi-user design reviews and heat-map analysis
// Key Features
Built on Photon Fusion, allowing designers and engineers to inhabit the same virtual vehicle, point at features, and discuss HMI changes in real-time, regardless of physical location.
Integrated hardware eye-tracking to visualize where drivers look during specific tasks. Generated heatmaps and time-to-fixation metrics to validate safety and usability of the UI.
Fully functional virtual dashboard where touchscreens, buttons, and dials trigger actual UI states. Validated menu logic and hierarchy before writing a single line of production vehicle code.
Leveraged HDRP for high-fidelity material rendering of leather, carbon fiber, and glass, ensuring the virtual prototype matched the luxury aesthetic of the final product.
// Technical Stack
// Example: Syncing steering wheel rotation across network
public class NetworkSteering : NetworkBehaviour
{
[Networked] private float _steeringAngle { get; set; }
public override void FixedUpdateNetwork()
{
if (HasStateAuthority)
{
// Capture local input from Logitech G29
_steeringAngle = InputManager.GetSteeringAxis();
}
// Apply synced angle to all clients
transform.localRotation = Quaternion.Euler(0, 0, -_steeringAngle);
}
}