KInemATICTrainer
VR/MR Training for physical therapy students.
Primary vision
Our primary vision for this mixed reality project was to create a physical therapy training aid for those entering the field of physical therapy. In our project, physical therapy students will engage with a virtual dummy. The virtual dummy, acting as a stand in for a physical therapy patient, will allow students and trainees to practice techniques that would otherwise be practiced on expensive medical manikins. Upon starting the program, trainees will be presented with the option of choosing which physical therapy techniques they’d like to practice. These could include a variety of different exercises such as shoulder rotations, scaptions (the elevation of the scapular plane), shoulder extensions, and possibly more. From here, users will be placed into a physical therapy room where they will see a manikin in which they can manipulate and another manikin which will be demoing the movement and techniques for each specific scenario. Our current model allows for an internal shoulder rotation exercise used for strengthening and shoulder injury prevention.
When the trainee approaches the manikin they will be prompted through the use of visual cues where to place their hands on the dummy. As the trainee manipulates the manikin and follows the training exercise they will be informed of techniques to remember (such as reminding the trainee to keep the patients elbow close to their body). Upon successfully completing the training exercise the user will be notified with an auditory cue and returned to the starting screen.
The use of a virtual manikin and a virtual environment come with many affordances not found in traditional training methods. The virtual mannequins will help alleviate the exorbitant costs of a providing medical manikins (ranging from $1500-$3000 per manikin) for students. Further, costs found in hiring trainers and providing training locations can be cut through the affordances of distance based and virtual learning.
Process
MODELING
RIGGING
All modeling was first completed in Maya 2018 prior to importing the models into Unity.
SCRIPTING
WORLD BUILDING
THE Team
Andrew Pham
Lead Programmer/Researcher/Version Control
Email: Andrew.Pham(at)wsu.edu
Linkedin: https://www.linkedin.com/in/andrew-pham-27515612a
The primary content that I contributed to this project was the programming of the game logic, ui elements, audio triggers, etc. The game logic included unity elements such as raycasts, modifying gamecomponents, transform values, and more. The goal was to create a multitude of exercises based off the framework of one exercise, but due to time constraints it could not be implemented in the given window.
John Alexander (Team Leader)
Conceptual Design/3D Modeling /Programming/Researcher
Email: JohnAlexanderDesigns(at)gmail.com
Over the course of this project, I wore many different hats. From the conceptual design of the project and user interaction, 3D modeling the environment and assets, to scripting and creating the game logic I learned an incredible amount about Mixed reality development and human centered design.
Royner Mendoza
UX/UI/Concept/Webpage Designer/Researcher
Email: Mendor92(at)gmail.com
Linkedin: https://www.linkedin.com/in/royner-mendoza
This project I provided the conceptual scope and the UX/UI interface for the menu interface and text placement. My intent with the next version is to implement a tutorial with a fade in fade out effect (effective transition).
David Schneider
3D Modeler/Content Creation
Email: D.Schneider.wsu(at)gmail.com
A Washington State University Graduate, Vancouver Wa local, David is emmersed in 3d modeling and texturing, with a focus in Virtual Reality.
"For this project I provided 3d modeling ,content creation and verification."
Keaton Burnett
UX/UI Designer/Researcher
Email: BurnettKeaton@yahoo.com
"For this project, I worked on the start, tutorial and menu interface. While it wasn't implemented in the final version, I hope to tweak it further to create a usable interface for users that also keeps them immersed in the environment that my other teammates created."
Video
Preview
Resource Links
Physical Therapy Resources -
https://www.physiospot.com/2016/06/22/what-is-mixed-reality-and-how-can-it-transform-physiotherapy/
https://www.physiospot.com/opinion/virtual-reality-applications-in-physiotherapy/
http://journals.sagepub.com/doi/pdf/10.1177/0269215516640320
Reference Images -
http://www.vintagecraftpatterns.info/templates/19388-19389
https://www.pinterest.com/pin/88735055138261129/
http://lgrotationsjournal.blogspot.com/2014/05/physical-therapy-rotation.html
http://www.pediatricadvancedtherapy.com/clinic.php
https://briahs.com/location/palos-hills-strive-center-for-rehabilitation/
Scripting Resources -
UI:
https://answers.unity.com/questions/940565/movietexture-in-ui-panel.html
Positioning:
https://answers.unity.com/questions/1162889/how-do-i-freeze-an-objects-position.html
https://answers.unity.com/questions/515640/freeze-objects-position-and-rotation.html
https://docs.unity3d.com/ScriptReference/Transform-forward.html
https://answers.unity.com/questions/156989/how-get-position-from-a-game-object.html
https://answers.unity.com/questions/444484/freezing-transforms.html
https://docs.unity3d.com/ScriptReference/Transform-position.html
https://docs.unity3d.com/ScriptReference/Transform.LookAt.html
https://docs.unity3d.com/540/Documentation/ScriptReference/Transform.Rotate.html
https://answers.unity.com/questions/60332/raycast-positioning.html
https://answers.unity.com/questions/1042223/finding-vector3-position-of-gameobject.html
https://answers.unity.com/questions/1259770/raycast-transform-position.html
https://docs.unity3d.com/ScriptReference/Vector3-ctor.html
Object Interaction:
https://docs.unity3d.com/ScriptReference/GameObject-rigidbody.html
https://forum.unity.com/threads/vive-object-interaction.437359/
https://answers.unity.com/questions/51401/any-way-to-lock-an-object-from-changes-in-the-edit.html
https://answers.unity.com/questions/467399/make-object-react-to-certain-triggers-only.html
https://docs.unity3d.com/Manual/OpenVRControllers.html
https://www.youtube.com/watch?v=vhRKKAngvAA
Mesh:
https://docs.unity3d.com/455/Documentation/ScriptReference/MeshFilter-mesh.html
https://docs.unity3d.com/ScriptReference/MeshFilter-mesh.html
https://docs.unity3d.com/560/Documentation/Manual/class-State.html
Collision:
https://docs.unity3d.com/ScriptReference/Collider.OnTriggerEnter.html
https://answers.unity.com/questions/528831/collision-with-specific-object.html
https://docs.unity3d.com/455/Documentation/ScriptReference/MeshFilter-mesh.html
https://docs.unity3d.com/ScriptReference/MeshFilter-mesh.html
https://docs.unity3d.com/560/Documentation/Manual/class-State.html
Maya -
https://answers.unity.com/questions/616916/root-node-bone-turns-character-sideways.htm
https://forum.unity.com/threads/guide-exporting-complex-rigs-from-maya-to-unity.83159/l