- By Nicolas Lagoutte
Design Considerations For 3D Applications
So you want to build a 3D application for your business? Great idea! There are increasing amounts of business problems that can be solved with 3D, especially with the advent of virtual reality and augmented reality, collectively known as immersive experiences (or XR). From architecture, to data visualisation, to medical imaging, to training and simulation, it's easy to see the use-cases. But where to begin? The world of 3D development can be a daunting one to step foot in. Let me help you get a good start.
As with any project, an initial phase of requirements gathering is necessary. Think hard about what this application needs to accomplish. In particular, think about the following topics...
Does it need to be an immersive experience?
This might seem like an obvious one, but it's worth re-evaluating your assumptions at this stage. Did you set out to build a Virtual Reality or Augmented Reality application? If so, why? Does it specifically benefit from aspects of VR such as depth perception, the immersive and cinematic experience, and the touch UI? If it was meant for AR - does it benefit from being added on top of the user's vision of the real world? Make sure you're not just building a VR or AR experience because of the buzz - if a bog standard 3D application will fit your use-case, then stick to that.
Conversely, if you've never considered immersive technologies, I would recommend familiarising yourself with them by trying them if you can. For some use-cases they are unparalleled - for instance, training employees on how to use equipment and machinery.
UI & Interaction
Are your users going to interact with your application (or is it just a 360° film)? If the answer is yes, think about all the different input methods that might be relevant:
- Mouse & keyboard
- Game controller
- VR/AR gaze control - meaning the entire experience is controlled by turning your head and looking at objects
- VR touch controllers e.g. Oculus Touch, HTC Vive controllers
- Freeform hand gestures e.g. Leap Motion or HoloLens gestures
- Voice control e.g. Cortana, Alexa
What level of realism is needed in your application? High-end graphics are much more resource-intensive, extend development time, and require specialist skills. Could your use-case be satisfied with more stylised, abstract graphics? Less resource-intensive 3D applications will also open up mobiles and web browsers as possible deployment targets, whereas for high-end graphics you are pretty much restricting yourself to deploying a desktop application on powerful PCs.
Finally, think about how you are going to serve your content to users. Consider all the options:
- Install the software at specific demo centres, requiring users to possibly travel. On the other hand you will be able to create and control very specific demo conditions which may be helpful for your use-case.
- Deploy a desktop binary (e.g. a
.exefile) - it will be much more effort to control access to the software though, requiring some sort of online authentication or old-school cd-key method. In addition, users will possibly need to configure their computers, e.g. installing drivers & codecs.
- Deploy as an iOS/Android application for users to download and run on their phones. Appropriate for some AR applications as well as Cardboard, Daydream & GearVR applications.
- Deploy as a web application - simply type in the correct URL into a browser and the application loads. This is usually convenient for users as they usually do not have to install any prior software, but presents some restrictions and challenges for the development process.
Hopefully with these points in mind you will have a little more clarity on some of the important decisions to make when designing your 3D application. In a future article I will be discussing technology choices: what 3D technology stacks are available, and which one is right for you.