I’ve been doing several little adjustments to the interface, check out a video of how it was before. Here you can see some of the changes:
This week we’re finally starting some serious usability tests. Until now we’ve had a few participants from different backgrounds navigating around the scene, inserting, translating and rotating objects and telling us their impressions. It’s amazing by how much insight you can get from the participants! I’ll have more detailed results soon, but just to give you a taste, we’ve found some bugs, things like:
- The app crashes at random times for some devices
- The camera sometimes moves while translating an object
Some things which are not so clear for users, like:
- It’s hard to control zoom + pan, both with 2 fingers
- Users tend to tap on insert menu instead of dragging models into the scene
And plenty of desired features, like:
- A button to delete objects
- An undo button
I’ve also been looking into ways to optimize performance by simplifying 3D models. We’re exploring two main approaches. The first one is having two model databases, one with high quality models (to be used on powerful devices) and one containing models with lower polygon count (to be used on more limited devices).
The second possibility is of using progressive meshes. Progressive mesh formats are composed of a base mesh, which has very low polygon count, and a series of refinements, which little by little improve the mesh’s quality. Check out this video:
Progressive meshes are interesting for our mobile simulator for two reasons. First, because mobile devices often have bad network connection so it might be useful to load the mesh little by little. Second, because instead of loading all refinements and ending up with a very detailed heavy mesh, whenever the client thinks the model is as complex as it can handle, it can tell the server to stop sending refinements.
In comparison to the first option (having a couple of versions for each model), this option offers more adaptability to a variety of devices. The challenge, of course, is in the implementation. Converting the whole database to a progressive format and then having a loader on the client side asking for refinements can be a lot of work.