Embed interactive 3d in Website - html

I have to develop a website of a residential building project. The client asked me to embed an interactive 3D view of the model project into the website. The model must be interactive and all available flats color different from the already booked flats. And on hovering the mouse on it, the details will be fetched from the database and will be displayed outside the 3D view.
Thats the whole scenario. Now I need some guidance or an starting point that which 3d library should I use. Because it must be compatible with all major desktop and mobile browsers and no external plugin required.
I have searched on Google and found some libraries:
WebGL
three.js
But I don't know which one will be suitable for the project. If any other most supportable library exists, please inform me. Or just give me a way to start.

WebGL itself is not a library, its the technology that is used by libraries like three.js etc.
Without any knowledge on 3D programming you should take a library like three.js or microsofts babylon.
it must be compatible with all major desktop and mobile browsers
WebGL is not supported by IE < 11 and also the only mobile browser that supports webgl is chrome on android that just recently became the standard browser on android >= 4.4 (KitKat) so has a rather low coverage.
Also (stock)iOS has no app supporting webgl.

Related

OpenGL usage on mobile HTML5 games

I have an HTML5 game running in desktop web browsers using WebGL. Obviously HTML5 and jscript can be built out to the mobile platform, but then what happens to the WebGL code?
I assume WebGL doesn't work very well in mobile apps.
Then how do you use OpenGL in mobile HTML5? Is there a jscript binding to OpenGL ES?
Thanks
EDIT: Just to be clear I am talking about native installed mobile apps not browsers. As in using something like PhoneGap
Nicol,
appMobi has integrated WebGL into its iOS and Android native wrappers, giving roughly 10x performance boost for HTML5 canvas drawing. appMobi is similar to PhoneGap, in building a native "wrapper" that your HTML5 lives inside, with a JS API that lets your game access all of the operating system functions. Here's a page describing the acceleration, which we call directCanvas. http://www.appmobi.com/index.php?q=content/directcanvas-accelerates-html5-game-performance
Hope this is helpful!
Roy
I assume WebGL doesn't work very well in mobile apps.
What does you make think this? WebGL has been based on OpenGL-ES 2.0, which is the OpenGL-ES profile supported by most mobile devices out there. So WebGL maps nicely to mobile devices' GPU capabilities. It's more a question of browser suppport, than performance.

how to do splash page or index.html first page animation in HTML5

is there any way to do a flash-like animation for the splash screen for iPad app in HTML5.
i have searched a lot for javascript but did not get anything.
The usual alternatives to Flash animation are canvas (which has its own API) and SVG (which is subject to standard DOM manipulation), both of which are supported by iOS Mobile Safari.
Adobe is developing an HTML/Javascript/CSS based alternative to Flash Builder called Adobe Edge, you can download it for free for a limited time for Adobe Labs. It doesn't have nearly as many features as Flash(at least not yet), but it provides enough basic functionality to accomplish what you are asking.

jQuery Mobile video website, convert to PhoneGap app with videos on SD card instead of streamed

I have a jQuery Mobile website I created for a friend/client of mine. It only has 6 pages or so (2 of them are dialog windows). The site has HTML5 video with fallback for flash support via the videojs library. All videos are encoded properly in mp4, ogv (theora), and webm and so far play on every device I have used.
My problem lies bandwidth, the purpose of the program really needs to be an application because these are informational videos that may need to be viewed at any time, even with no web access (web access is required for first login to verify credentials).
I was left with 3 solutions, try writing native apps for all the platforms myself in their native languages, use Sencha Touch (which I am comfortable enough with extJS to do), or taking my existing jquery mobile app that is 100% functional including log-in and some backend package management to assign users a package of videos (there are multiple packages each with between 8-20 videos), and follow the jQuery Mobile tutorial for getting your app ready for PhoneGap, I believe its only enabling two settings, and both are to enable "cross-domain" requests, since my current web app would be running as localhost, it would see the scripts as external pages.
My main question/problem is for one, I have never used PhoneGap; aside from their Hello World android tutorial, and I know there are other all-in-one frameworks out there now: PhoneGap, Titanium, Corona, Adobe Flex (which I am installing while writing this tutorial, to see what it has to offer. If it has features like encoding videos automatically for the target device (video resolution changing), or even has local video playback features at all that may work.
Does anyone know which of the current frameworks have the ability to install a set of videos to the sdcard, (totaling around 6mb per install), and play them natively (by that i mean, in the devices native player, not inline inside of a webview). Which on android phones anyways, my current videojs based player plays the files natively in everything I have tried it on.
I just need a push in the right direction, if there is a PhoneGap plugin that I don't know about that allows videos to be played from the sd card, that would be terrific. Although I am not very happy with the speed of the android and blackberry webview controls. So something that uses 100% native controls would be great. I hope you guys can come up with some ideas, you can see the current app in action at m.yourvideobenefits.com email:abc#tool.com password: demo
You should view it from your phone if you want to see it properly, but if you do not have a smart phone; keep in mind that when viewing this page certain desktop browsers, the videos become their actual size after they are through loading. This is because i have autoload="true" in the video tag (which is ignored on most phones, but believe it or not, setting autoload="true" is what actually allowed the videos to not play inline on certain devices. A bug on the device, I am sure...but without this tag the videos played inline on iPhone 4 with the latest iOS version.
You could do it very easily with phonegap; you already have your web page, so it would be much less work, probably.
You could get the videos from inside your apps bundle in ios, and then it wouldn't be hard to select the one with the best resolution for the device being used. You could also download the videos at the perfect format and resolution the first time your app plays from your server using the file api. That convined with the storage api is nice for actualizations.
There's a plugin I use for android, because video tag is sometimes bugged or doesn't work at all in older versions, https://github.com/phonegap/phonegap-plugins/tree/master/Android/VideoPlayer.
It only plays from web or sdcard, but that's rarely too bad.
I can't help you with black berry, but I'm pretty sure there must be a way of doing it. And, anyway, appcelerator doesn't support it yet, so you would probably had to do it natively. Even if there isn't a plugin for black berry, you'd probably have to chose between native developement and html5 player inside phonegap. I won't give you my opinion about it here, for I'm not the one to give it and Stack Overflow says I shouln'd give it anyway.

Extending HTML5 mobile app for more file storage

My team is writing an HTML5 app that uses the appcache and localstorage heavily. Our target platform is ipad and android tablets (and design time we work extensively in desktop browsers, though that's not necessarily a must-have).
Now we want to add some offline-available features that will be beyond what the browser-based storage can support-- namely a library of video & binary content that will be bigger than the appcache can handle.
Without the major mobile browsers implementing the html5 filesystem api, it seems very much like some kind of native app approach will be required (PLEASE correct me if I'm wrong here... I'd love to be wrong on this!). So, I'd love to hear opinions/experiences folks have had. We're noodling around with a few different ideas involving one or more of the following:
Compiling in phonegap + using their file apis
Using the Dropbox sdk (which would also require some kind of native support, not sure if phonegap would work)
writing per-platform custom native apps that host webkit controls, then providing the majority of functionality with our existing, cross-platform html5 app (basically we'd be writing a per-platform custom browser using the standard webkit controls).
Note that I'm a fan of #3 because I feel like we could release a relatively stable shell but then preserve the html5 cross-platform goodness & ease of distribution of our app. However, I don't know if this approach works (and/or if Apple frowns upon this type of approach-- seems like a bit of an App Store loophole).
Very interested to hear what you've tried and/or heard about.
This might be a completely stupid idea but, if you're looking for a cheap way to get extra storage, why not just use an html or js file to contain the data? You could even, for whatever reason, store it as a 64-bit data uri and run the media natively. I think you could even save data to it by just manipulating the manifest to be reflective. It'd take a bit of tom foolery, but it should work.
If you use approach 1 you will be well positioned to move to a web app once the major browsers support the File API. You see the File API in PhoneGap is based on the W3C spec that the browsers will implement.
2, I started working on a Dropbox plugin for PhoneGap Android but I need some "spare time" to finish it.
3, Apple will probably reject your app if it is just a wrapper around your web site. They've done that in the past.
Simon

Capture image from camera into form or html5 canvas

I need to capture an image from a webcam (tethered camera, etc.) into a form or html5 canvas so that I can save the image to the server. Also, I would like to be able to preview the image live in the page.
For example, I have a browser running at a registration check in station. I would like to take a picture of the attendee currently standing in front of the table, and submit that image into the database. Then I can use that image to print the attendee's badge with their picture on it.
I'm using rails and paperclip, though I doubt that matters.
Anyone done this before, or have some ideas how to do it?
There is a plugin for jQuery entitled 'jQuery Webcam Plugin' that provides a friendly and easy way to interact with a webcam. It actually relies on a small flash component (unfortunately), but it does a great job of making the interaction easy - as well as providing functionality to copy imagery direct into an HTML5 canvas.
Again, it's unfortunate that it relies on Flash, but I think any reliable solution is going to need flash at this point in time.
The plugin is available here: http://www.xarg.org/project/jquery-webcam-plugin/
At present, if you want to interact with a web cam from a web page you need to look at using a plug in. Flash has a mature interface to web cams, so it would be my first choice of tool.
There used to be a spec for native web cam support in HTML 5, but it has been spun out into its own, independent, specification. Currently there is no browser support for it outside of experimental Opera builds.
Android >=3.0 (on plenty of tablets and one phone soon) is supposed to support this. Searching for "html media capture" and "device api" will get you a lot more information.
On the not-even-alpha bleeding edge side, there are things like webrtc and the mozilla rainbow plugin.