I want to export Navisworks 3D navigation models to my IPhone device , Is there any API available to achieve this. I want to create my Own App to read models into IOS - similar to Navisworks Freedom viewer for IOS.
I have lots searched on internet but couldn't find any useful.
There is no Navisworks viewer for iOS, but there is a WebGL viewer that can be embedded on mobile apps (or web or desktop too).
There is a live sample at https://360.autodesk.com/viewer
See the API at http://developer.autodesk.com
iOS sample at https://github.com/Developer-Autodesk/workflow-ios-view.and.data.api
I recommend developing your own native or web app to build a mobile 3d model viewer.
Web App - you could use Unity3d or Three.js. These communities are strong and there are plenty of resources available. The benefit here is that it would work on desktop too.
Native app - You could make a model viewer in Swift using Apple's Metal library. I am not familiar with Android 3d shader libraries.
Both of these endeavours are huge amounts of works. I hope you would keep any eye out for code you can copyright (or open source), perhaps even patent if you develop a new, complex algorithm for converting/displaying 3d data.
Related
I have an idea to develop a website that would help people to model 3D worlds, use 3D models and so on.
For example, based on my reseach, I could use Unity Framework to create this type of application for PC/MAC.
I am wondering if there are similar frameworks available for pure WEB?
This is my first time looking into this and I do not have any expertize in this topic. Please advise if you have any opinions or expertise in it.
Unity indeed has support for 3d on web, but it requires from user that it has installed Unity player. Users might not like that.
However, with webGL, you would have absolute control over the look and capabilities of your product, users wouldn't have to install anything new, it would all be pure web and only IE users would be damaged, because IE still doesn't have full support for webGL.
To develop with webGL you can do it from scratch, or you could use some of the existing libraries/3D engines that would speed up your work and give results much faster.
Here's a list of webGL engines: http://ffwd.typepad.com/blog/2011/04/webgl-what-flavor-is-your-engine.html, it seems that most used are Three.js, Scene.js and there is also Goo Engine (http://www.gooengine.com/).
Hope this helps.
Check out 3DTin, it does seem to deliver a part of what you want to build, using WebGL:
http://www.3dtin.com/
I am planning to develop a HTML5 with Three.js pages, so that i can achieve 3D screens using that and support for Mobile platforms easily in Cross platform method. I read Three.js uses WebGL, but iOS and Android browsers doesn't support it, so i cannot develop such combination apps.
Could someone please advise, whether i can develop HTML5 with Three.js pages to achieve 3D interactions on iOS and Android apps or not as web app? If not, please give me the official links where it is mentioned that it is not supported.
Thank you.
Three.js will work fine without WebGL. You can use the Canvas renderer -- it's described in the Three.js documentation, I'm sure you can find it on github using google or even Bing. It's not as fast as using WebGL, but one doesn't race Monte Carlo in a Nissan Sentra.
You should not expect high performance 3D on any mobile platform -- mostly becasue javascript performance can be numbingly slow. Try accessing some of the various Three.js examples using mobile devices (both with and without webgl) to get some idea of performance.
I tried to run Three.js Canvas demos on my iPad Air and it was awful. Usually Safari crashes and even if render works it performs 2-3 fps. So seems it's very raw on iOS devices right now
iOS Safari and Android Chrome have supported WebGL for several years now.
The issue you might be referring to is Android's WebView or iOS's UIWebView (the control you can put in a native app to display a webpage) may or may not support WebGL. WebGL is supported in WebViews as of Android 5.0 apparently although people have run into issues
Another option is to use something like CocoonJS. They apparently provide custom webview implementations for Android 4.0+ and iOS 8+.
As for performance, three.js will perform just fine on simple scenes with mobile. There are plenty of examples. 3D on mobile in general though requires optimized assets (lower polygon models, smaller textures, simpler shaders, less lights, etc...) relative to desktop and particularly with three.js
iOS and Android browser support webgl not as well as Web browser, sometimes you can reduce the render effects to make it work. This usually do. For app, android webview render ability is low. Ios have a better one.
And you can plugin some render engine into you app, such as XWalkView, Here is a post of mine how to use it to render the 3D models with three.js in my android4.2.0 App. For IOS there is also relevance solutions.
The chosen answer to this question recommends using the Three.js CanvasRenderer, but as shown here in the Three.js documentation, CanvasRenderer has been deprecated:
NOTE: The Canvas renderer has been deprecated and is no longer part of the Three.js core.
It is important to note that it can still be used for simple 3d scenes and can be found on Github here
WebGL is supported in Androids WebView v36 and above, as seen here.
Alternatively with older Android Chrome browsers WebGL can be enabled by typing: chrome://flags into the browser and selecting the Enable link that appears under the Enable WebGL header in the browser window, or by updating webview from the Android Google Play Store.
WebGL has been supported on Mobile Safari since iOS 8.0b.
At mobilehtml5.org you can see what mobile device versions support specific HTML5 features:
Sony Xperia Android 2.3 also supports WebGL.
I am developing an AIR app targeting iPhone and Android devices and looking for a good framework that will help streamline development and performance, provide a good set of mobile optimised UI components and allow freedom to import and use Flash classes.
I've looked at Starling and Feathers which looks great for creating screens and UI components but there seems to be some limitations to this namely the inability to use the flash.display.MovieClip and flash.media.Video classes. The starling movieclip seems a little simplistic and I cannot add video to the stage.
What other frameworks are out there that would help me to structure my code and the app and also give me easy access to mobile ready UI components? I am developing on a macbook pro with Flash Pro CS6 targeting Air 3.2 for iOs
cheers
You can add MovieClips to the classic stage while Starling renders underneath, this method is not advised though because when mixing the two, there are performance concerns on mobile. This is due to the software vector rendering engine running to display the MovieClips.
What people are doing these days is using Dynamic Texture Atlas or MovieClip Converter to convert the MovieClips to Starling movieclips. Check this one out:
https://github.com/zenrobin/FlashMovieClipConverter
As for video, please check out StageVideo, as it is the hardware accelerated version of Video and is available in AIR.
http://www.overdigital.com/2012/01/09/the-ultimate-guide-to-understanding-advanced-video-delivery-with-air-for-mobile/
I've been working with software that generates textured 3D models of Roman archaeological artefacts (see map interface mockup here - click icons for models). The software (3DSom Pro) uses Flash or Java to show the models via a browser.
I need a non-flash/Java solution for web viewing iOS, but WebGL is only supported in Safari's nightly build (or - I understand - for adverts), which excludes the average user.
Has anyone successfully shown textured 3D models in a web browser on iOS? I know Pages (I think) supports native SketchUp files and iOS devices can display 3D, but in a browser...?
While three.js,( a great library for doing in-browser 3D with javascript) also supports canvas rendering instead of just webGL rendering, unfortunately mobilesafari is still fairly unstable in conjunction with three.js' canvasrenderer (what i gather from mrdoob's github discussions, this has been an issue since IOS5)
You could try to find a css3 DOM renderer, but it seems there isn't one available in conjunction with a framework that offers the ability to load textured models for you, which might be a lot of work to realise yourself.
Anyone know any open source framework for augmented reality in BlackBerry or a good tutorials for creating an augmented reality application from scratch?
Here is an interface prototype for the free LayarPlayer for third party BlackBerry7 apps: https://gist.github.com/1219438. Not sure if Wikitude will have a lib or not.
If you wanna roll your own AR lib (not recommended, unless you have tons of time and energy) OpenGL ES is platform independent, just use ComponentCanvas for overlaying it on top of the camera view.
BlackBerry OS 7 SDK apparently includes APIs to assist in developing augmented reality applications.
I am working on an OpenGL application for BlackBerry and I too have realised there are not many OpenGL tutorials for it. But you can always use Android ones. They are not really very different.
And I think we should profit from the new BlackBerry graphics card and CPU to create some exciting 3D application for the patform.
You can find OpenGL basic samples on the BlackBerry website and in the BlackBerry SDK.
Notice: All BlackBerry devices that run on Os 7 have a dedicated graphics card and 1.2ghz of CPU frequency.