Mobile applications are a core part of Onshape’s vision – they are instrumental in fulfilling our promise of helping CAD users do their best design work from anywhere, anytime. We made an early commitment and investment to make mobile apps a big part of our portfolio. And the effort has paid off handsomely.
In “The Design Gridlock Manifesto,” a new eBook that chronicles the modern CAD experiences of 15 companies of all sizes, Hirebotics COO Matthew Bush credits Onshape mobile for speeding up their design of cloud-connected “robots for hire.”
“If we’re sitting in the factory trying to figure out how a robot goes together, we can pull up the model on our phone and solve the problem right there,” he says.
“Being able to use Onshape in the field is very unique and very new and it’s really helped us leverage our time and make us faster,” Bush adds. “We don’t have to put big drawings books together and take them with us anymore. We can make changes on the fly to whatever we need without having to go back to a CAD station.”
As we continue to hear from customers about how much they value being able to model on their tablets and phones, it’s worth pausing to remember that this idea was viewed as crazy not so long ago.
Do People Really Want to CAD on Mobile?
Longtime CAD users typically ask a lot of questions about the usefulness and viability of CAD on mobile. Why would anyone want to CAD on mobile? Isn't the screen too small for a CAD application – even if I don’t have fat fingers? How can I give up my mouse and keyboard? I understand the value of viewing CAD models on my phone, but does it really make sense to edit them there?
With the right interface and user experience, CAD modeling on a phone or tablet can be just as fun and productive. From the very beginning, Onshape set out to build full-featured, modern parametric CAD for both iOS and Android. The customer reviews on iTunes and Google Play confirm that our hunches were correct: There’s a huge demand for the convenience and flexibility of mobile CAD.
Let’s take a closer look at the Onshape development team’s journey to build modern CAD on mobile.
Foundation For Building Native Applications
A typical question that comes in mobile development is whether to build a full native app or build a hybrid app to leverage work done on a web client. We decided to build native apps based on the poor WebGL support on mobile browsers, the interactive experience, and performance characteristics we wanted for CAD apps.
Our graphics team went ahead and built a reusable C++ library that works for both iOS and Android. We linked this graphics library with our Objective C code for iOS. On Android, we used SWIG to generate a JNI layer to talk to our graphics library. We tried to move more client logic to C++ libraries and reuse it on both platforms like DropBox Djinni, but decided against it for various reasons. We may revisit both of these decisions in the future based on maturity of metal on iOS and our build infrastructure and other internal resource priorities.
Thanks to our core CAD team, we have a cloud-based messaging architecture to support many different clients. Since our client server communication happens on a messaging protocol over WebSockets, we needed WebSocket libraries for mobile. For iOS, we used the websocket client implementation SocketRocket via Cocoapods and for Android, we went with okhttp3 library.
Are You Serious: CAD Without Mouse and Keyboard?
Once we figured out the infrastructure and technology, we were able to display and view 3D CAD models on mobile. We implemented pan, zoom and rotate operations with standard pinch, pan, and multi-finger gestures. The touch interactions felt way better than the mouse-based browser version. This was really fun and it encouraged us to move forward.
We then moved on to the difficult task of designing a high-velocity touch interface for CAD modeling that works for different size screens. We needed to deal with selections, dimensioning, quick zoom in and zoom out, and 3D rotation vs. zoom issues.
We decided to tackle the selection problem first. We tried several options to handle faster selection on a touch screen, dealing with “fat finger” issues and precision selection in many complex models. We tried different options including offset and second finger click to simulate a mouse. However, none of these interactions felt natural and they performed poorly in our testing.
After exploring the idea of zooming the selection area on long press, we finally decided to go with a precision selector (crosshair with offset) with force touch-based zoom in and out.
Long press brings up the selection cursor, highlights faces, edges and lines precisely and selects them as you move your finger. This mechanism, combined with 3D touch to zoom the area under focus, works beautifully. As soon as the user gets out of 3D touch mode, we restore the view back to the original zoom level so the user can move on to the next operation.
After selection, we ran into the issue of panning and 3D rotation. We use single-finger drag for 3D rotation, two-finger drag for 2D rotation, and pan to move sketches, etc. Single-finger 3D rotation works well when the user’s intention is to rotate, but accidental rotation became a problem, especially during sketching. Trying to pan or dimension a sketch ended up rotating the model. After several experiments, we decided to go with a simple solution of allowing users to lock and unlock 3D rotation with an on-screen lock icon. We auto-lock during certain operations, but the user can easily override this to go out of lock mode.
Apart from interaction and touch issues, we also had to deal with screen real estate issues. We continue to optimize interface for all sizes of mobile devices. Lots of work went into managing the features, parts, and assembly trees, the version graph, measure, and element navigation functionality. We optimized our UI based on user testing, and we will continue to do more of this in coming releases.
Our innovation is not limited to our touch-based CAD interface. We continue to optimize the application to take advantage of new platform features such as the Apple Pencil (Onshape is the First 3D CAD System for iPad Pro & Apple Pencil), split screens, and native notifications.
What About Design Data Collaboration?
In a world where executives are running their whole companies on mobile, we needed our mobile apps to support all users, not just CAD designers. So we extended our mobile app to support data management and Enterprise features.
Our data management allows users to collaborate and manage their release process in real time from their mobile devices. The whole team can work in real time by receiving notifications on the release changes, and changes can be approved from mobile devices.
Our Enterprise real-time activity feed and analytics offer unprecedented visibility into the engineering design process and data.
As always, the Onshape Mobile team is looking for your feedback and suggestions. If you are already using our mobile app, please let us know what you think in the Onshape Forums. If you’re new to Onshape, you can download the apps for free from the Apple App Store or Google Play.