At MXT I worked as a programmer on our studies and research projects.
These were often fully immersive (VR + simulation rig). We used a
Unity based simulation with a comprehensive analytics suite,
including eye-tracking to capture participants responses to virtual
situations.
My primary role on these projects was backend support. I built tools, tests
and made critical bug fixes and improvements to existings systems to ensure
stability and increase the scope of simulations we could create.
Examples
I built a vehicle physics tests system to allow us to
ensure true-to-life vehicle handling and that our
vehicle met expectations for performance.
|
I worked to improve the performance and stability
of our (networked) traffic simulation in heavily
congested scenarios.
|
I built UI elements to allow us to configure
variables at runtime, improving iteration times.
|
I wrote tools to populate studies with client provided
datasets - ensuring exact compliance with requirements.
|
Further Details
Import tools
The import tools read data from XML files and populated the Unity scene with
appropriate prefabs. These prefabs are tagged with meta data for the analytics
system and for the import system, so they can be re-imported later if updates
are made to the XML.
The import tool interface takes a road network as an input. This is
used to align imported assets to the road network automatically. Height
and orientation is derived from the road position and tangents.
Alignment
The data was in the form of points, but this did not always produce good
results and manually re-aligning hundreds of objects was not tenable (we had
miles of road and 8 seperate scenarios).
To solve this I allowed artists to specify object types that should try to
align to one another. This
greatly reduced the number of manual interventions artists needed to
make.
Analytics
For these projects we needed to capture analytics. This work used to be
manual, each object that needed analysis would need to be manually tagged.
I expanded the road network with tools that could be used to populate
meta-data on imported assets from the underlying road network.
Greatly speeding up the process of applying analytics to objects.
Data Handling
I wrote an external C++ application for conversions between datasets and
visualising Unity only assets. This allowed us to more easily
communicate with clients and provide them with visual references of
the road network, allowing them to more accurately design their studies.