Over the past month I have have been working on an application which allows a user to take an SOLIDWORKS model that had been exported to OBJ or AMF formats and view it in virtual reality. The application is now available for download here. This application still requires a lot of work and is really just in a beta state.
Why am i working on this?
I want to be able to quickly see my designs in real life for validation purposes. I want to know what it will look like as if I'm actually holding it. But more than that, you can check for interference or safety concerns that you may not see in SOLIDWORKS. For example, say you design safety guards for a machine and want to see if they are adequate to prevent someone from sticking their hand in it. Normally in SOLIDWORKS you would need at minimum a model to represent a hand to try this senario (or you just over design to compensate.) With virtual reality / augmented reality you can actually view your hand and see if you can reach in yourself.
Another application for virtual reality is the ability to "bring" your entire product catalog to a customer, no matter how large your product is. You can quickly showcase the product and explore different use cases with a customer without ever having to bring physical products to the customer or without having to take the customer to show off your product.
Eventually, virtual reality will be a norm. Its just a matter of time. I would rather be an early adopter of this technology and see the direct benefits of it as opposed to trailing behind everyone else in its adoption. I would imagine SOLIDWORKS will have direct virtual reality integration in a couple of years, but why wait?
Right now the application requires an Oculus Rift DK2 and a leap motion controller. I will be working on a google cardboard compatible version soon (Cardboard only costs about $6 for the headset vs. about $400 for the Oculus Rift). I may also work on versions compatible with other VR headsets depending on the interest in the application. The application is windows only right now and is built on the Unity game engine.
Here are some of the current features of this application:
- Head tracking (oculus rift) & Hand tracking (leap motion)
- Load OBJ and AMF files from local directory
- Drag object side to side and up and down with left hand grab
- Rotate object about vertical axis with right hand grab
- Scale object with two hand grab and spread
- Fine adjustment control using a slider menu
Here are the features I'm still working on:
- Asynchronous file loading
- Load FBX Files
- Load & Manipulate Exploded View
- Hide Selected Items
- Browse BOM tree
- Load large (>60000 vertices) OBJ files
What are OBJ and AMF file formats?
OBJ is a standard file type used by 3D programs such as Maya and Blender and is used primarily for assets that are in video games, animations, etc. To export a SOLIDWORKS file in OBJ format, you need to use a community generated macro located here: Free Solidworks OBJ Exporter v2.0.
AMF stands for (Additive Manufacturing Format). This is a relatively new format and is not widely adopted yet and is primarily intended as a replacement to stl. The benefit to AMF is that it is very lightweight in comparison to stl or obj file formats and it still carries all the same information if not more. While SOLIDWORKS does natively export to AMF, it is missing some information in the export: vertex normals (important to rendering nice looking files) and texture mapping. I anticipate that these feature will be supported eventually, but for now it works well as a quick way to export a SOLIDWORKS model and view it in virtual reality.
I would love to get feedback on this application so that I can make it better and a more compelling experience. In time I will add support for more devices.
Attached is a video of me using the application. (No audio)