SaaS
-
To finish off our look at developing an HTML5-based 3D viewer for our Apollonian web-service, today's post integrates the trackball capability of the Three.js library. Many thanks to Jeff Geer for once again pointing me in the right direction on this. π The trackball capability allows you not to worry about manual implementation of 3D navigation inside your viewer: you simply set up some basic parameters to indicate the size of your model and the speed with which you want navigation to occur β as well as the keys for rotate, zoom and pan β and then you just let…
-
In the last post, we created another, basic 3D viewer for the data from our Apollonian web-service β this time using HTML5 via Three.js. In this post, we'll extend the code to listen for keyboard events and manipulate the model according to user-input, as well as enabling feature detection of WebGL (allowing the same implementation to call into the canvas rendering code when WebGL isn't present). We're introducing keyboard-based commands to enable zoom, rotate (meaning spin, although not continuously) and the change of levels: + Zoom in - Zoom out , or % Rotate left . or / Rotate right…
-
After looking at how to bring data from our Apollonian web-service into Unity3D, Android and iOS over the last few weeks, it seemed natural to extend this series to cover HTML. A big thanks to Jeff Geer for suggesting Three.js, which is the HTML5-based framework I ended up adopting for this project. I like Three.js for a number of reasons: just as jQuery (another library I've used in this project, to good effect) attempts to abstract away the messiness inherent in supporting multiple browsers, Three.js does the same for the world of browser-resident 3D. The other main reason I like…
-
In the last post, we saw some code to implement a simple 3D viewer of data coming from our Apollonian web-service on iOS. In this post, we'll add support for touch gestures, as well as a simple message box announcing when the web-service is unavailable. When compared with Android, iOS provides much higher-level gesture information via its UIKit framework: you basically get callbacks to indicate when the screen has been tapped or swiped, or when pinch or rotate gestures have been performed. This is all very helpful, in the sense that you don't have to do so much low-level running…
-
Last week, it was all about Android. This week, I've started taking the plunge into the world of iOS. I've been using a Mac for some time β mainly to wean myself away from being so Windows-centric, but also with a view to working more with AutoCAD for Mac from a development perspective β but this was the first time I'd actually forced myself to write anything for either OS X or iOS. It all came as a bit of a shock, initially, even though I was generally aware of the strangeness of Objective-C with respect to its message-passing syntax.…
-
I hadn't actually planned a 3rd part to this series, but Dennis Ippel kindly spent some time looking at the code posted in the last post, to see where optimisations might be made to increase the sphere count. Consequently, Dennis made some changes to the Rajawali framework to support batch rendering of objects, as well as suggesting some client-side changes that make use of object cloning to avoid the need for replicated vertex buffers, index buffers, textures, etc. β all properties/dependent objects that the code was previously creating per sphere. The results were stunning: with really a modest change to…
-
In the last post, we took a quick look at some basics around developing application for Android, while today we're going to see the code for our Apollonian Viewer application. Or, as my 5 year-old likes to call it, the "sweetie planet" app :-). Last time, I mentioned Dennis Ippel as the author of the Rajawali framework I've used in this app. What I didn't mention is how helpful he has been with getting this app working: Dennis gave hints that unblocked my efforts on a number of occasions, and even implemented new capabilities in Rajawali to enable several of…
-
In the last post, we looked at an approach for bringing data from our Apollonian web-service into a Unity3D scene. Our next "off piste" look at consuming data from this web-service is on the Android platform. This is my first serious attempt at mobile development (ignoring some fooling around I did with Embedded Visual C++ for Windows Mobile, way back when) although I have spent some time looking at WinRT (which basically means I've now built a Windows Phone 8 app, I suspect :-). So why did I choose Android, rather than iOS? No real reason: I have both iOS…
-
As mentioned in the last post, today we're going to have some fun pulling data from our recently-implemented, cloud-based web-service into the Unity3D game engine. My intention, here, is to reinforce the fact that exposing web-service APIs really does give you broader reach with your technology. In this case, we'll be calling our web-service β implemented using F#, which we could not have included in our Unity3D project β inside a game engine that could be hosted on any one of a wide variety of operating systems. A few words on Unity3D: according to its web-site, Unity3D is "a feature…
-
A quick recap on the series so farβ¦ after introducing the benefits of moving application functionality to the cloud, we spent a couple of posts taking algorithms we'd previously hosted directly inside an AutoCAD and moving them to live behind a locally-hosted web-service. We then took a step back and talked about some issues around architecting applications for the cloud before we went on to make use of our web-service inside AutoCAD. And, most recently, we looked at how to move our web-service from a local system to be hosted in the cloud. And a quick aside, as I watched…