-
Notifications
You must be signed in to change notification settings - Fork 48
UXF 2.0
UXF has been constantly updated with many features since first release, but now we are preparing an update larger in scale compared to the others. This update would introduce breaking changes, and so if you update your project you may encounter problems. The update will bring several features, and so warrants the 2.0 tag.
The dependencies of UXF have been altered to allow the code to run on other platforms. This includes WebGL (experiments in the web browser), WebXR (VR experiments in a VR web browser on any VR headset), Oculus Quest (native APK), Android and iOS (in theory), as well as your traditional PC based experiments, including with a VR headset.
UXF experiment running in a web browser
Video on twitter of Corsi experiment in browser.
Before this update, UXF saves all data to files on your PC. You could get these files to be uploaded elsewhere, but this would not be supported on platforms where file saving is not an option (e.g on the web). Now, a generic Data Handler system allows you to configure where your data goes. Of course, one of those options allows the data to be stored in files in the traditional manner. However, this system allows this to be replaced with (or used in conjunction with) any other data output system, which are represented by "Data Handler" classes. Users can create these Data Handler classes to output their data to some custom location (e.g web server). The new system also makes it really easy to write your own custom data files, where you require output in a format that differs from the ones UXF creates. The data files you tell UXF to handle will automatically be handled by the data handler system, so benefit from the new flexible data output system. The data handler system creates mixed compatibility across platforms and data output systems. See the compatibility article.
Custom inspector for UXF 2.0 Data Handlers
One of the data handlers provided in this update allows UXF to upload the data to a DynamoDB database provided by Amazon Web Services. These allow cheap and simple hosting of data. This only works with WebGL builds - but is perfect for web based data collection, where in-person data collection has become difficult in recent times. Without any coding from you, your experiment can automatically upload all data to the database.
Now the UI is much easier to configure for different purposes. Perhaps you want to use the UI to display lots of settings and information to the researcher and participant, or perhaps you want a simple experiment with just some instructions and basic demographic information, or maybe you want no user interface and want to jump straight into the session, or you might even want to create your own user interface and startup system. All of these are now super easy to setup. The UI also generates on-the-fly in the editor as you configure it, so there is no need to start and stop the application to see the changes.
UXF 2.0 UI
The examples have been updated with flashier graphics, and a new example of the Corsi Block Span Task is included.
The new UXF has several features to hold your hand as you build your experiment. First, the inspectors of the UXF Session and UXF UI have been re-written with custom UI elements, making them easier to navigate, and giving you info and tips right there in the inspector. Secondly, UXF will check your configuration and preemptively warn you when you try to do something that will not work. For example, UXF will prevent you from building your application if you enable local file saving when you are building a web-based experiment, since this is not supported.
Custom inspector for UXF 2.0 Session
Custom inspector for UXF 2.0 UI Controller
You can download the 2.0 package here, but there may still be some small issues. It supports Unity 2018 LTS and above. Some features are not yet available (notes, info bar). If you are importing into a project that already uses an older version of UXF, you should delete the UXF
& Plugins
folders from your Assets
before importing.
The Wiki needs to be updated to reflect the changes made in this update.
๐ง Core topics
- ๐ Background
- โจ UXF 2.0
- โ๏ธ Compatibility
- ๐ถ๏ธ Oculus Quest Setup
- ๐ญ Concepts
- ๐ ๏ธ Get started
- ๐ Examples
- ๐ฅ๏ธ Built-in UI
- ๐ Session generation
- โฐ Events
- ๐ Data collection
- โ๏ธ Collect custom data
- ๐ Custom Data Handler
- ๐ Remote Data Collection
- ๐๏ธ WebGL DynamoDB setup
- ๐ Processing DynamoDB CSVs
- ๐ซ HTTP Post Setup
- ๐ง Settings system
- ๐๐ฝ Tracker system
- ๐ Logging system
โ ๏ธ Common issues- ๐ผ๏ธ Multi-scene experiments
- ๐บ Videos
- ๐จโ๐ Full written tutorial
- ๐ฆ Asset links
- ๐จโ๐ซ Unity tutorial links
- ๐ Useful code snippets
- ๐ก Programming ideas
- ๐งฎ Example R processing