add models to globe without running server

The implementation I am doing of Cesium requires me to not run a server of any kind. I have been able to place map data and even create geometrical models on the map. But when I try to load a 3D model it does not work unless I am running a server. Can someone explain why this is the case and is there a work around?

I’m not sure what you mean by “not running a server” Are you trying to use the local file system with a desktop browser? Or are you embedding it in an application using node-webkit, Qt, or some other toolkit? Please provide some more details.

I am trying to use the local file system with a browser.

Browsers by default do not allow JavaScript or links to access the local file system, it would be a major security problem if they could. Technically you can configure a browser to allow access, but it is not recommended and it would require users of your app to do the same. What browser are you using?

I would advise against this approach. If you provide more details about your goals, perhaps we recommend an alternative that meets your requirement.

Here are a few ideas

If you have a limited set of external data that you need access to (like models) it may be possible to encode them in a data URI and embed them directly in your HTML page. This is no different than your current approach except you are not trying to load data off the file system.

I haven’t tried it with Cesium in a while, but https://github.com/rogerwang/node-webkit may work for you.

The Qt toolkit supports embedding web apps in a C++ shell application, this is probably more complicated than you want to get; but it’s a possibility as well. I haven’t done this personally outside of a simple proof of concept (and that was a long time ago).

Thanks for the response, I think the URI's will probably get me started in the right direction. I am using gecko embedded into a wpf application. I do have a limited set of external data that I will be using for the models. I do have a question though. since the model is created by pointing to a json file that then points to the shader programs and bin and images. Would I need to convert each of those to a URI then put that in the json file and then convert the json file and use the converted json URI in the js?

Ignore my previous post, Using URI's worked for me. So, I encoded each shader and texture and bin and used those encoded paths in the json file. I then encoded the json file itself and used that encoded path in my js and it works beautifully.

Hey I am really interested in using cesium in a wpf or winform application. Can you explain to me the process you went through to get it to work with gecko?

I haven’t worked with embedding Gecko before, but if you are using WPF or Winforms, the WebBrowser control can also be used to embed Cesium (assuming IE 11 is installed on the system). Embedded IE appears to run slower than normal IE, but I haven’t looked into why yet. I’m hopeful that it’s fixable with a configuration option on the control. Gecko might be a better choice, but I wanted to give you another option to try as well.

Yes it does work but it runs extremely slow, any luck on figuring a quick fix?

I think the problem is airspace related (http://msdn.microsoft.com/en-us/library/aa970688.aspx) I’ve been looking around on occasion; but haven’t found a good fix yet. I was hopeful that this would work: http://www.jonathanantoine.com/2011/09/24/wpf-4-5-%E2%80%93-part-8-no-more-airspace-problems-integrating-wpf-with-win32/ but apparently MS removed the feature. I’ll let you know if I figure it out (and would love to hear from anyone who may have done so themself).

Hi David,

You can try CEF (Chromium Embedded Framework). I tested it in Win32 app, Cesium worked fine with my tests. Visually, speed was the same as for stand-alone Chrome. There are CEF + wpf integration frameworks (I didn’t test them myself).

Alexei

I was looking at CEF last night and it looks really promising. I also got fed up trying to figure out why IE 11 was so slow when used via the browser control, so I asked this question on Stack Overflow: http://stackoverflow.com/questions/25051072/ie-11-webgl-performance-slow-when-using-webbrowser-control Hopefully someone in the know will chime in.

I am not sure that it will help. I oftenly use Visual Studio Express for Web + IE11. When I run Cesium from this IDE, it works very slowly sometimes. I mean stand-alone IE. I suppose that in my cases the main reason is not very good work of “built-in” IIS Express server, not IE.

My issue is that 64bit is absolutely necessary from me since I need to access LARGE amounts of data that I cannot access in 32bit… I am really looking for an Alternative to EO.WebBrowser(Expensive c# browser) which is a 32bit browser in a 64bit application… CEFSharp would definitely be my weapon of choice if it worked in 64bit… right now it doesn’t support webgl (or rather its outdated) they have informed me they will update the webgl in the future but don’t have a time planned for it yet.

http://www.essentialobjects.com/products/webbrowser/default.aspx

Hi David, in my previous post, I answered to Matthew Amato about slow IE, but didn’t keep references to this, sorry.

Absence of 64-bit versions looks strange at first thought.