Materials VR uses virtual reality to help students visualize molecular structures. Molecules can be selected from a list and moved around by the user. The Google Cardboard version includes gaze input which allows the user to gaze at a button for 2 seconds to interact with it.
Please read our Privacy Policy and Terms of Service.
Check out CHANGELOG.md
to see what's changed and our roadmap to see what we're planning to add!
Uses Unity 2019.4.26f1 (LTS) and Joaoborks' Patch to the CardboardXR Plugin.
This code follows Google's C# Style Guide and the Ramen Unity Style Guide.
Current platforms: iOS, Android
Supported VR devices: Google Cardboard
- Click and drag molecules around the space
- Gaze at a button for 2 seconds to activate it
- Set the current platform in Unity's build settings to Android and press build
- Set the current platform in Unity's build settings to iOS and press build
- Open the
.xcodeproj
file in Xcode - Click on the Unity-iPhone project in Xcode and go to Signing & Capabilities
- Set the correct bundle identifier and team
- Clone or download the repository
- Open with the correct Unity version (2019.4.26f1)
- Export Blender file as a
.fbx
- Drag and drop file into the
~MoleculeModels
folder in Unity - Drag and drop model into Unity hierarchy from
~MoleculeModels
folder - Drag and drop from the hierarchy into the
~AssetBundles/Molecules
folder to create a new prefab - Delete object from hierarchy
- Select and, in the inspector window at the bottom, set the Asset Bundle field to
molecules
- Under
Assets
in the menu bar, clickBuild AssetBundles
(it should build to the desktop) - Drag and drop the built
MoleculeBundles
asset bundle folder into wherever you will be hosting the bundle
Add your new build target into the build target sub directories array
Example:
string[] buildTargetSubDirs = { "", "/iOS", "/Android", "/NewPlatform" };
Add a build pipeline line to create the bundles
Example:
BuildPipeline.BuildAssetBundles(assetBundleDirectory + buildTargetSubDirs[3], BuildAssetBundleOptions.None, BuildTarget.NewPlatform);
Add the new platform into the getAssetBundlePlatformFolder method
Example:
if (currentPlatform == RuntimePlatform.NewPlatform) return "NewPlatform";
Author & Maintainer: Emi Brown @EmiCB
We acknowledge contributions by (in alphabetical order) Siddharth Ahuja, Andong Jing, Sean Lin, Qiaoqian Lin, Zhili Luo, Noah Rebei, Sujay Shah, Zekun Wei, Jinlin Xu, Zhongshen Zeng, and Xusheng Zhang and support from the NCSA SPIN program, the NSF REU INCLUSION (grant No. OAC-1659702), and the NSF CAREER grant No. DMR-1555153 for support.