Meshly
Simplify low-poly mesh creation in VR
Date
2020
Duration
2 weeks
Project Type
Design, Prototype
Keywords
VR product design and prototyping
Role
Research, Product Audit, Ideation, Prototyping, Evaluation
Overview
Meshly is an intuitive low-poly mesh modeling application in VR. It is developed in response to the steep learning curve of 3D modeling software. Its goal is to be adopted by designers in their workflow as well as hobbyists without training in 3D modeling.
Problem
Imagine that you'd like to model a low-poly version of your cat to be 3D printed later, but you are not trained in 3D modeling software like Blender. You just received your Oculus Quest 2 headset and could not find intuitive VR 3D modeling applications either.
💡
There is a lack of fast, intuitive ways to model low-poly meshes.
Solution
Meshly, an intuitive vertex-based low-poly modeling VR app that offers:
- Low-poly mesh creation (from scratch or by tracing real objects)
- Low-poly mesh manipulation
- Low-poly mesh coloring
- Low-poly mesh import/export
Process
Research Insights
Untrained Users
3D modeling is too time-consuming/difficult.
“
I'd love to 3D print my own creation, but having no training, the complicated interfaces of 3D modeling apps are just intimidating.
Trained Users
Would like to have a quick way of modeling.
“
It's more intuitive to model in VR, but those apps take a while to learn as well, which kind of defeats the purpose.
Product Audit
I performed a product audit to get a better sense of how current VR creation apps approach modeling. I evaluated them based on the fidelity of models and the learning curve. Apps like Quill and Gravity Sketch offer a variety of features (such as animation and collaboration, respectively) that cater towards professionals, suggesting a steep learning curve. While Blocks is low-poly-friendly, its modeling method is based on aggregating primary shapes, thus still requiring prior knowledge of 3D geometry.
💡
There is space for a low-poly modeling app that is intuitive to use.
Ideation
💡
How might we make low-poly modeling intuitive for untrained users?
I was inspired by the small scale sculpting process where one holds and rotates the object in their non-dominant hand and uses their dominant hand to sculpt.
Small scale object sculpting. Image reference: TheCrafsMan SteadyCrafting Youtube Video
Concept Sketch
In Meshly's modeling environment, the user could use the left controller as their “hand” that holds and orients the object. The right controller is then a metaphor for the “tool” that manipulates the object, much like a chisel or any other sculpting tool.
Degrees of Freedom (DoF)
3DoF (Left) and 6DoF (Right)
While Oculus Quest 2 is capable of 6DOF, I decided to maintain 3DOF after testing to stay true to the simplicity of the interaction paradigm that I am referencing. Instead of moving the entire body in virtual space and work on different parts of the mesh, the user could simply rotate the mesh towards them, rendering the extra degrees of freedom redundant. Fixing the user’s position in virtual space means fewer variables for the user to track cognitively, thus making the experience more akin to the small scale sculpting process and hopefully, more intuitive.
Menu Interface
There are 3 modes of interacting with the mesh: create, sculpt, and color. Besides the controller buttons, the two major components of the user interface are the radial menu and the color picker. Their design processes are summarized below.
The tripartite radial menu was chosen for the final menu design based on user testing. Specifically, the radial menu, aside from aesthetic correspondence with the controller ring, uses the least number of steps to perform the task. Compared to the possibly multiple joystick movements of the list menu and the point-and-click operation of the raycast model, the radial menu only needs one joystick motion to finish selection.
Color Picker Interface
For the color picker, a combination of hue ring and value triangle is selected because it offers the most options for fine-tuning while only adding one extra step compared to the other two options.
Create Mode
The user can create, highlight, select, and delete vertices, and make triangle faces through clockwise selection of 3 vertices.
Deleting vertices will in turn delete triangle faces related to those vertices.
This also enables the user to trace real-world objects in virtual space.
Sculpt Mode
It is toggled from the radial menu via the left controller thumbstick.
It allows for selecting and moving vertices. In future iterations, more ways of sculpting the mesh could be added, such as attractor point deformation.
Color Mode
The user could color the vertices. Drag the Hue Ring selector and simply touch the Value triangle to finish color selection.
The user is able to achieve a blended look or a discrete look depending on the number of vertices having the same color.
Face coloring could be implemented in the future in addition to the current vertex coloring method.
Orient the Mesh
Aside from the menu, the left controller rotates and moves the entire mesh by pressing its index button.
File I/O
Finally, there is also a simple file IO functionality with the left controller. The Y button imports an OBJ file from a specified path, while the X button exports the current mesh to the same path.
The application runs via Oculus Link so the path is on the computer, but could be changed to an on device location if deployed as a standalone app.
User Testing
I invited 5 users both with and without 3D modeling background to test the first prototype and their feedback are summarized below:
• All agreed that Meshly looks intuitive to use
• Most would see themselves using this app
• Needs option for face coloring in addition to vertex coloring
• Needs ability to save colors
• Needs ability to scale model
Reflection
I enjoyed prototyping Meshly and learned a lot about designing and developing for virtual reality. I look forward to further exploring the design process mediated by emerging technologies such as VR. The abstract of this project has been submitted to eCAADe.
Things that I liked:
• Exploring different interaction paradigms in VR
• Trying to balance ease of use and functionality
What could be improved:
• More systematic user research and testing
• More iterations
• Better code design
This first prototype was uploaded to SideQuest and you can access it here!
Next Steps
Feature improvements
Based on user feedback, feature improvements for future iterations will include tracing real-world objects, guides for creating volumes, and action history (back button).
Real object vertex tracing via Passthrough
Basic volume creation with guides (eg. Cube)
Preview of changes when sculpting the mesh
Volumetric back button concept
Hand tracking exploration
Tracing a real-world chair with AR passthrough + voice input