{"id":15160616,"url":"https://github.com/mapluisch/hololens-questionnaire-toolkit","last_synced_at":"2026-01-19T23:06:30.129Z","repository":{"id":226019044,"uuid":"766494206","full_name":"mapluisch/HoloLens-Questionnaire-Toolkit","owner":"mapluisch","description":"Easily collect subjective measures in AR environments optimized for HoloLens.","archived":false,"fork":false,"pushed_at":"2024-03-05T11:39:03.000Z","size":87351,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-07T20:12:58.359Z","etag":null,"topics":["augmented-reality","augmented-reality-applications","augmentedreality","framework","hololens","hololens-applications","hololens2","mixed-reality","mixed-reality-toolkit","mrtk","questionnaire","questionnaire-generator","questionnaires","toolkit","unity3d","unity3d-plugin"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mapluisch.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2024-03-03T12:29:23.000Z","updated_at":"2024-03-05T11:41:30.000Z","dependencies_parsed_at":"2024-03-05T14:03:36.304Z","dependency_job_id":null,"html_url":"https://github.com/mapluisch/HoloLens-Questionnaire-Toolkit","commit_stats":null,"previous_names":["mapluisch/hololens-questionnaire-toolkit"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mapluisch%2FHoloLens-Questionnaire-Toolkit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mapluisch%2FHoloLens-Questionnaire-Toolkit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mapluisch%2FHoloLens-Questionnaire-Toolkit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mapluisch%2FHoloLens-Questionnaire-Toolkit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mapluisch","download_url":"https://codeload.github.com/mapluisch/HoloLens-Questionnaire-Toolkit/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247721899,"owners_count":20985084,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["augmented-reality","augmented-reality-applications","augmentedreality","framework","hololens","hololens-applications","hololens2","mixed-reality","mixed-reality-toolkit","mrtk","questionnaire","questionnaire-generator","questionnaires","toolkit","unity3d","unity3d-plugin"],"created_at":"2024-09-26T23:04:04.646Z","updated_at":"2026-01-19T23:06:30.093Z","avatar_url":"https://github.com/mapluisch.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003eHoloLens Questionnaire Toolkit\u003c/h1\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/mapluisch/HoloLens-Questionnaire-Toolkit/assets/31780571/f34f26b9-77d4-4a6a-8cbf-e0d375d21d2c\" alt=\"banner\" style=\"width:75%\"\u003e\n  \u003cp\u003eQuestionnaire Toolkit optimized for HoloLens using standard MRTK components. Easily administer questionnaires in HoloLens-related studies.\u003c/p\u003e\n\u003c/div\u003e\n\u003chr\u003e\n\nThis repo is based on [VRQuestionnaireToolkit by MartinFk](https://github.com/MartinFk/VRQuestionnaireToolkit) and features the same toolkit, just optimized for Microsoft HoloLens. I've replaced the toolkit's components with MRTK-specific replacements and optimized the setup for HoloLens.\n\nCode-wise, it includes some minor QOL additions and, first and foremost, fixes and specific additions for UWP builds. I've tried to mostly leave the existing code from the original VRQuestionnaireToolkit *as is*, so that existing support- and Wiki-docs remain valid.\n\n## What's changed?\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"https://github.com/mapluisch/HoloLens-Questionnaire-Toolkit/assets/31780571/b5192b73-0241-48da-a800-11e2d0dd6835\" style=\"width: 100%;\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://github.com/mapluisch/HoloLens-Questionnaire-Toolkit/assets/31780571/e42d803f-b881-4c6a-8b7c-a521c245d621\" style=\"width: 100%;\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://github.com/mapluisch/HoloLens-Questionnaire-Toolkit/assets/31780571/6514e274-4438-4332-bd21-e360e6e2d04d\" style=\"width: 100%;\"\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\u003cem\u003eMovable, resizable, and rotatable view\u003c/em\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003cem\u003eNear and far MRTK interactions\u003c/em\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003cem\u003eSwapped native interaction components\u003c/em\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n### Interactable Components\n- Replaced all `UnityEngine.UI` components with their MRTK counterparts. If there's no one-to-one replacement (e.g. `LinearGrid`), I've combined multiple components into one.\n- Wrapped the questionnaire container into a standard MRTK slate with 6-DOF, variable user-defined scaling at runtime, and \"Follow Me\" functionality.\n- Added helper scripts to sync values between MRTK components and the underlying UI components, so that the [VRQuestionnaireToolkit](https://github.com/MartinFk/VRQuestionnaireToolkit) source code stays untouched (for the most part); e.g.:\n  - MRTK's slider is only defined for a fixed value range of 0..1. My `SliderSyncer.cs` script takes the MRTK slider's value and syncs it to a base `UnityEngine.UI.Slider` (i.e. maps the value range and updates both accordingly).\n- All components are both near (\"touch\") and far (ray + \"air tap\") interactable.\n\n### Design\n- Added a small `ThemeSwitcher` component which simply toggles between the original [VRQuestionnaireToolkit by MartinFk](https://github.com/MartinFk/VRQuestionnaireToolkit) color scheme and a more HoloLens-native one.\n- If you don't want to use either of them, feel free to specify your own color theme within the `ThemeSwitcher` component (split into header, main, footer, and text color attributes).\n\n\u003cdiv align=\"center\"\u003e\n  \u003ctable\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\u003cimg src=\"https://github.com/mapluisch/HoloLens-Questionnaire-Toolkit/assets/31780571/90d6dae3-6a25-49e5-9272-1d7199afa8bf\" alt=\"Base theme\" style=\"width:250px;\"\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003cimg src=\"https://github.com/mapluisch/HoloLens-Questionnaire-Toolkit/assets/31780571/64d6ca36-1b32-4b9e-b567-1e9a08afd988\" alt=\"MRTK theme\" style=\"width:250px;\"\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\"\u003e\u003cem\u003eBase theme\u003c/em\u003e\u003c/td\u003e\n      \u003ctd align=\"center\"\u003e\u003cem\u003eMRTK theme\u003c/em\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/table\u003e\n\u003c/div\u003e\n\n### QOL\n- Added new subscribable events:\n  -  `GenerateQuestionnaire.OnQuestionnaireGenerated` - invoked when the JSON files have been parsed and the questionnaire container has been filled.\n  -  `ExportToCSV.OnQuestionnaireDataSaved` - invoked once the .CSV answers have been stored locally.\n  -  `ExportToCSV.OnQuestionnaireDataSentToServer` - invoked once the answers have been successfully sent to the server.\n- Customizable themes.\n- Movable, resizable questionnaire container for easier user-directed interactions.\n- Removed hardcoded positioning of questionnaire container.\n\n### Misc\n- Had to remove tactile feedback and the `FeedbackManager` for obvious reasons.\n- Audio feedback is still present and gets automatically generated within the MRTK components.\n\n## Setup\n### Dependencies\nAll MRTK dependencies refer to **v2.8.3**. I have not tested alternative MRTK versions (yet).\n- MRTK Foundation\n- MRTK Standard Assets \n- MRTK Examples\n\nIf you want to use this repo as is, as standalone, or as a base for a fresh Unity project:\n\n0. Clone this repo.\n1. Include the dependencies mentioned above via Microsoft's `MixedRealityFeatureTool` and make sure to use OpenXR when asked by MRTK.\n2. Open the project within Unity and load the `SampleScene` in `Assets \u003e Scenes \u003e SampleScene`.\n3. Run the sample scene via Holographic Remoting or build the project and install the `.appx`.\n\nAlternatively, if you want to use this in your existing project:\n\n0. Download the latest release `.unitypackage` and make sure that your project meets the dependency requirements.\n1. Import the package via `Assets \u003e Import Package`.\n2. Include the `Questionnaire Container` prefab from `Assets \u003e Prefabs \u003e Questionnaire Container` into your own MRTK-enabled scene.\n\nWithin the `Questionnaire Container`, you will find the `ThemeSwitcher` class, but more importantly, the `HoloLensQuestionnaireToolkit` (= `VRQuestionnaireToolkit`) in which you can specify your questionnaire data.\n\nFor setting up the questionnaire itself, please refer to the [VRQuestionnaireToolkit-Wiki.](https://github.com/MartinFk/VRQuestionnaireToolkit/wiki)\n\n## Build \u0026 Run\nWhere to store your questionnaires' .JSON files:\n\n- HoloLens build:\n  - If you want to administer your questionnaires in a UWP build **running on HoloLens**, include your .JSON files within the `Resources` folder. Specify *the same subdirectory* minus \"Assets/Resources/\" as path in the `GenerateQuestionnaire` component.\n  - Example:\n      -  Your questionnaire `questionnaire.json` is stored in `Assets/Resources/questionnaire.json` \u0026rArr; specify `questionnaire.json` as input path within `GenerateQuestionnaire`.\n      -  Your questionnaire `questionnaire.json` is stored in `Assets/Resources/some/subdirectories/questionnaire.json` \u0026rArr; specify `some/subdirectories/questionnaire.json` as input path within `GenerateQuestionnaire`.\n- Holographic Remoting:\n   - If you conduct your study via remoting, simply include your .JSON files somewhere within your Assets folder and specify **the path as is** in the `GenerateQuestionnaire` component.\n   - Example:\n      -  Your questionnaire `questionnaire.json` is stored in `Assets/questionnaire.json` \u0026rArr; specify `Assets/questionnaire.json` as input path within `GenerateQuestionnaire`.\n      -  Your questionnaire `questionnaire.json` is stored in `Assets/again/some/subdirectories/questionnaire.json` \u0026rArr; specify `Assets/again/some/subdirectories/questionnaire.json` as input path within `GenerateQuestionnaire`.\n\n## Output\nOnce again there's a discrepancy between running the questionnaire on-device opposed to via remoting. \n\n- HoloLens build:\n  - Once the questionnaire has been submitted, the `.csv` can be found in `LocalAppData/\u003cyour app ID\u003e/LocalState/`. Access via the file manager within the device portal, for example. The subdirectory cannot be changed.\n- Holographic Remoting:\n  - Since the toolkit runs on your PC in this case, the `.csv` can be found in `Assets/Questionnaires/Data/Answers` within Unity. You can edit this path to your liking within the `ExportToCSV` component.\n\n## Disclaimer\nThis project is mostly an extension to the original [VRQuestionnaireToolkit by MartinFk](https://github.com/MartinFk/VRQuestionnaireToolkit), so special thanks to them for their work and efforts!\n\nI made sure that all base functions work as expected (tested with Unity v2022.3.19f1), but you still have to extensively test this toolkit *with your own setup* **before** conducting a study. Test your integration, the workflow, whether your input .JSONs are correctly read, and the output .CSVs are accessible and readable. Neither I nor the original authors of the VRQuestionnaireToolkit are responsible if you lose questionnaire responses, so please ensure everything is working as expected on your end. 😊\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmapluisch%2Fhololens-questionnaire-toolkit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmapluisch%2Fhololens-questionnaire-toolkit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmapluisch%2Fhololens-questionnaire-toolkit/lists"}