View Full Version : OSX / Linux Port discussion
cmaxwell
09-26-2004, 08:52 PM
Hey future developers, contributers. I think it's up to me for the time being to try and get the OSX/Linux effort started on the right foot by trying to get the preferred specifications drawn up. I want to choose a language and such for the efforts such that it appeals to as many developers as possible. Let's first start by listing the technologies that are available.
I'm not too much of a Linux person, but at least for OSX, there's the Cocoa, OpenGL approach. Possibly the use of GLUT. What else is there that people would like to use?
peter svensson
09-26-2004, 09:34 PM
The quickest route would probably be to use the Tao .net OpenGL under mono
http://www.taoframework.com/
It _should_ work on both OSX and Linux.
Peter
Originally posted by cmaxwell@Sep 26 2004, 11:52 AM
Hey future developers, contributers. I think it's up to me for the time being to try and get the OSX/Linux effort started on the right foot by trying to get the preferred specifications drawn up. I want to choose a language and such for the efforts such that it appeals to as many developers as possible. Let's first start by listing the technologies that are available.
I'm not too much of a Linux person, but at least for OSX, there's the Cocoa, OpenGL approach. Possibly the use of GLUT. What else is there that people would like to use?
Quoted post
chorns
09-26-2004, 09:53 PM
Originally posted by cmaxwell@Sep 26 2004, 08:52 PM
Hey future developers, contributers. I think it's up to me for the time being to try and get the OSX/Linux effort started on the right foot by trying to get the preferred specifications drawn up. I want to choose a language and such for the efforts such that it appeals to as many developers as possible. Let's first start by listing the technologies that are available.
I'm not too much of a Linux person, but at least for OSX, there's the Cocoa, OpenGL approach. Possibly the use of GLUT. What else is there that people would like to use?
Quoted post
It may not be the quickest route, but a Managed DirectX implementation (possibly based on OpenGL) for Mono (http://www.mono-project.com) is an option. Depending on how much unmanaged code and non-ECMA code is used in World Wind this would require none or only small changes in the existing code. A Managed DirectX implementation for Mono would also be generally useful and I could imagine that you would create similar projects in the future at which point such an implementation would speed up development a lot. Mono already supports Mac OS X and Linux.
Casper
cmaxwell
09-27-2004, 04:44 AM
After doing some poking around on the MONO website, I get the feeling that it's not quite mature enough for this type of application. Maybe in a year when the System.Windows.Forms functionality is fully in swing, but at this time, I have some doubts.
We do have a small requirement in the functionality of World Wind and it's that it has to be installable by a non-technical person. I don't expect students to be using Linux (well, there are exceptions), but a 10-year old should be able to download and install World Wind. Choosing a development platform should coincide with this goal, because I know there are quite a few "portable" platforms that even to me, are a nightmare to setup correctly, and I also see that MONO on OS X is one of them at this point in time.
Henk Poley
09-27-2004, 07:20 AM
Originally posted by cmaxwell+Sep 27 2004, 05:44 AM--><div class='quotetop'>QUOTE(cmaxwell @ Sep 27 2004, 05:44 AM)</div><div class='quotemain'>After doing some poking around on the MONO website, I get the feeling that it's not quite mature enough for this type of application. Maybe in a year when the System.Windows.Forms functionality is fully in swing, but at this time, I have some doubts.
Quoted post[/b]
May I inform you that System.Windows.Forms is the single most disputed part of mono (to my knowledge): They wanted to do an implementation with wine, or one on top of GTK, or one on top of both X and Cocoa (with separate backends), you get the picture. And there is lots of behavior in System.Windows.Forms that is 'just there' already in Windows which would need to be implemented by the mono folks.
I think of one were use mono now that one needs to use one of the existing graphical libraries, yes.
Originally posted by cmaxwell@Sep 27 2004, 05:44 AM
We do have a small requirement in the functionality of World Wind and it's that it has to be installable by a non-technical person. I don't expect students to be using Linux (well, there are exceptions), but a 10-year old should be able to download and install World Wind.
Quoted post
I have installed mono applications by using my distro's package management, for Windows I see you need to distribute all the requirements in one file. (I always tease people with that)
Installing under Linux usually isn't that much of a problem once someone has made a package for your distribution.
<!--QuoteBegin-cmaxwell@Sep 27 2004, 05:44 AM
Choosing a development platform should coincide with this goal, because I know there are quite a few "portable" platforms that even to me, are a nightmare to setup correctly, and I also see that MONO on OS X is one of them at this point in time.
Quoted post
[/quote]
I just looked at the OS X mono installation page, and yes, it does seem rather convoluted.
But you could ask on the mono mailing list if any progress has been made. I mean, several big companies are going to use mono to distribute their .NET app. to there should be something 'in the pipe' for this ;-).
Llynix
09-27-2004, 12:11 PM
Originally posted by cmaxwell@Sep 26 2004, 01:52 PM
Hey future developers, contributers. I think it's up to me for the time being to try and get the OSX/Linux effort started on the right foot by trying to get the preferred specifications drawn up. I want to choose a language and such for the efforts such that it appeals to as many developers as possible. Let's first start by listing the technologies that are available.
I'm not too much of a Linux person, but at least for OSX, there's the Cocoa, OpenGL approach. Possibly the use of GLUT. What else is there that people would like to use?
Quoted post
See this topic - http://learn.arc.nasa.gov/worldwind/forums...=findpost&p=541 (http://learn.arc.nasa.gov/worldwind/forums/index.php?showtopic=40&view=findpost&p=541)
C++/DX/OpenGL migrated to a SDL/OpenGL/WxWindows
Llynix
cmaxwell
09-27-2004, 06:17 PM
I don't really have a good gauge on the JOGL approach to the project, but that might be a strong approach to consider. I do recognize an enormous JAVA community and the similar OO nature of it to c# really helps in porting it over and keeping it current.
FireRabbit
09-28-2004, 10:26 PM
Originally posted by cmaxwell@Sep 26 2004, 07:44 PM
After doing some poking around on the MONO website, I get the feeling that it's not quite mature enough for this type of application. Maybe in a year when the System.Windows.Forms functionality is fully in swing, but at this time, I have some doubts.
We do have a small requirement in the functionality of World Wind and it's that it has to be installable by a non-technical person. I don't expect students to be using Linux (well, there are exceptions), but a 10-year old should be able to download and install World Wind. Choosing a development platform should coincide with this goal, because I know there are quite a few "portable" platforms that even to me, are a nightmare to setup correctly, and I also see that MONO on OS X is one of them at this point in time.
Quoted post
Assuming you were able to get the 3d engine working with mono (which at this point would require an opengl backend) you could use a Gtk# GUI rather than trying to use mono's currently just-recently-restarted-for-the-second-time SWF implemention. Using Gtk# (and Cocoa# for OSX) would also be the best solution from a "functionality" viewpoint because SWF widgets would not have the same look or "feel" as gtk or cocoa.
I havent dug too deep through the sourcecode yet, but I would be suprised if it would take less time to rewrite everything using java/c than writing an opengl backend.
Froody
09-30-2004, 04:53 PM
I highly recommend using the same source for all platforms you plan to support. If you don't you'll end up with multiple completely separate products to support and improve. Inevitably bugfixes will be made in one but not the other. Features will be implemented differently, meaning that if you want to add a feature on top of that it'll be easy on one platform and require a big rewrite for the other (which means it won't happen). You may as well be working on 3 separate products, and that doesn't seem like a good use of your time.
Given that, it's going to hurt but you'll have to move off of .net/DirectX since it's just not portable. (At least I don't think so. I'm not really up on the Mono stuff so maybe I'm wrong.)
What's left now is to decide what to move to. A few things come to mind:
1. SDL (http://www.libsdl.org/) is a mature C library for platform-independent graphics, sound, threads, etc. It's main downside is that it won't use a platform's native widget set for the GUI, which may confuse some users.
2. Qt (http://www.trolltech.com/products/qt/index.html) is a great C++ library which provides a lot of convenience classes in addition to all the standard GUI features you need. Apps will look exactly like native apps. Qt has an OpenGL widget that can be placed in a window for the main view. Qt's downside is that it's not completely free. I believe it's freely available to develop open source apps for Linux, but you need to pay to develop for Windows/Mac. I may have missed something though.
3. Java (http://www.java.com/) is the cross-platform poster-child. I don't have much experience with its 3D. Widgets will be Java widgets. It's free, but it's not as cross-platform as just having a binary compiled.
If it weren't for licensing issues, I'd recommend Qt. It is the best library of the three, and makes for professional-looking apps. If you can live with the licensing issues (you can probably get away with doing all your development on Linux, and having one guy with a Qt developer license make the binaries for Win32/Mac) then I'd prefer that. I think SDL will make for a better user experience than Java, because users won't have to worry about installing jvm's, the right version of the jvm, etc. But whatever you do, use the same codebase for every platform.
Tim
Joe Bolte
09-30-2004, 07:48 PM
Hi Everyone,
Congtratulations on Worldwind. It's amazing!
If I could add my two cents...
Since the windows version of Worldwind relies on DirectX, moving to a cross-platform code-base will be a huge change. However, re-implementing the rendering engine may not really be necessary.
An open-source, cross-platform (win, mac, linux) OpenGL program called Celestia (http://celestia.sf.net/) already exists, which includes much of the same functionality as Worldwind. The main advantage that worldwind has over Celestia is the ability to dynamically download the data that the viewer requires. (Currently any additional data for Celestia must be pre-downloaded and installed.) So, it may be much easier to simply implement the dynamic downloading protocol into Celestia, and call that the Linux/OSX version, rather than re-implement lots of rendering code that relies on windows features which will be close to something that already exists and does what we want. Most of the development planning for Celestia take place on the sourceforge Celestia dev list (http://sourceforge.net/mailarchive/forum.php?forum_id=9864)
Thoughts?
Joe
cmaxwell
09-30-2004, 11:53 PM
Originally posted by Joe Bolte@Sep 30 2004, 10:48 AM
Hi Everyone,
Congtratulations on Worldwind.Â* It's amazing!
If I could add my two cents...
Since the windows version of Worldwind relies on DirectX, moving to a cross-platform code-base will be a huge change.Â* However, re-implementing the rendering engine may not really be necessary.Â*
An open-source, cross-platform (win, mac, linux) OpenGL program called Celestia (http://celestia.sf.net/) already exists, which includes much of the same functionality as Worldwind.Â* The main advantage that worldwind has over Celestia is the ability to dynamically download the data that the viewer requires.Â* (Currently any additional data for Celestia must be pre-downloaded and installed.) So, it may be much easier to simply implement the dynamic downloading protocol into Celestia, and call that the Linux/OSX version, rather than re-implement lots of rendering code that relies on windows features which will be close to something that already exists and does what we want. Most of the development planning for Celestia take place on the sourceforge Celestia dev list (http://sourceforge.net/mailarchive/forum.php?forum_id=9864)
Thoughts?
Joe
Quoted post
We are intimately familiar with Celestia and I did look at the code on several occasions, but I couldn't figure out what end was up on it. Granted I didn't spend too long on it, but there was a definite lack of documentation and it wasn't exactly as readable as I needed it to be. But, I'm not a C++ guru with years of 3D graphics experience, I think I looked at it when I was just starting to work on World Wind and had almost no real programming experience, and knew almost nothing about programming 3D graphics. I think I still don't quite have the skills to really be able to work effectively on the Celestia engine.
We've talked to the developer on several occasions and I get the feeling that the Celestia code would benefit from dynamic data, but wasn't really meant to handle many of the things we are currently and planning on implementing.
It really is a true balance between being cross-platform while being efficient in both code development and performance. C# and DirectX do MANY things automatically which makes it both easy to code and easy to debug compared to many software packages. I don't see a shift from this platform for Windows. This combination satisfies too many requirements to switch to something else. However, Mac/Linux development needs to happen. I've started playing with JOGL in my spare time to see what I can do quickly with it. It might have potential, plus, JAVA is a fairly straightforward language to code with and would attract more developers (I think anyways) than some more "hard-core" languages. But, I'm not sure if it'll perform so I really need to do some more testing...
J. Javier Maestro
10-11-2004, 08:49 AM
Originally posted by Froody@Sep 30 2004, 07:53 AM
(...)
1. SDL
2. Qt
3. Java
(..)
Oh, how right you are!! When I saw this project, I was jumping up and down until I saw it was written in .Net, etc... that would be crazy to try and install/run in anything but Windows (no matter how good the Mono project gets in the next 5 months...).
So I GREATLY recommend going with 1 and 2, and perhaps, instead of 3 (Java), I would go C++. Once you are using 1 and 2, there is not much need for portability in the code itself! The libraries exist for a lot of platforms, so you just recompile and go! :)
Just my two cents here...
J. Javier Maestro
kfarmer
10-21-2004, 01:04 AM
There's also http://wxnet.sourceforge.net/
ukenuke
11-05-2004, 11:58 PM
From what I have seen in industrial application tools, Java 3D should work very well for World Wind.
Ross Campbell
11-06-2004, 12:07 AM
Since Celestia is already portable - (Windows, any UNIX, MacOS), and since it can already use datafiles from blueplanet, and technically, any of the WorldWinds data files should work with Celestia (still need to validate personally), I see a *HUGE* benefit to using the celestia engine and enhancing it. WorldWinds is earth-centric. Celestia is universe centric.
I imagine a mode where I could switch from planet navigation (worldwind-style) to universe navigation, and go out to ... say mars, switch to planet navigation mode again, and cruise around mars and zoom in to different layers.
If you take this discussion to the Celestia boards, I think you'll find a lot of people interested in helping.
PLEASE PLEASE don't use C#/DirectX and lockout all platforms but windows. I want to run this on Linux. I could imagine very widespread deployment if this could be included in linux distributions.
Originally posted by cmaxwell@Sep 30 2004, 02:53 PM
We are intimately familiar with Celestia and I did look at the code on several occasions, but I couldn't figure out what end was up on it. Granted I didn't spend too long on it, but there was a definite lack of documentation and it wasn't exactly as readable as I needed it to be. But, I'm not a C++ guru with years of 3D graphics experience, I think I looked at it when I was just starting to work on World Wind and had almost no real programming experience, and knew almost nothing about programming 3D graphics. I think I still don't quite have the skills to really be able to work effectively on the Celestia engine.
We've talked to the developer on several occasions and I get the feeling that the Celestia code would benefit from dynamic data, but wasn't really meant to handle many of the things we are currently and planning on implementing.
It really is a true balance between being cross-platform while being efficient in both code development and performance. C# and DirectX do MANY things automatically which makes it both easy to code and easy to debug compared to many software packages. I don't see a shift from this platform for Windows. This combination satisfies too many requirements to switch to something else. However, Mac/Linux development needs to happen. I've started playing with JOGL in my spare time to see what I can do quickly with it. It might have potential, plus, JAVA is a fairly straightforward language to code with and would attract more developers (I think anyways) than some more "hard-core" languages. But, I'm not sure if it'll perform so I really need to do some more testing...
Quoted post
Patrick Hogan
11-21-2004, 11:31 PM
I am not sure how readily applicable this might be to an OSX/Linux effort, but there has been some headway made with an Linux/OSG planetary visualization tool by Don Burns of Andes Engingeering called the Blue Marble Viewer Blue Marble Viewer (http://www.andesengineering.com/BlueMarbleViewer/index.html) :)
william
11-22-2004, 06:24 AM
Possably port it out for an ebuild (portage) for gentoo linux? They have a ton of developers and support over there, and im sure they would love to help out nasa!
http://www.gentoo.org
Steve McLellan
11-24-2004, 12:14 PM
Hi,
I would strongly advise going with Cocoa for an OS X port. We're porting a C++.NET app into Cocoa at the moment and it's not giving us too much grief - certainly less painful than Carbon was. It also has the advantage that IF there's the decision to switch to C++, you'll be able to share code but ithout the hassle that pure native C++ code can give, esp with regards to UIs (both Objective C++ and C++.NET can compile and use native C++ code without too many issues).
However, there's no DirectX support anywhere except Windows, so OpenGL seems a good choice.
Well done on a nice piece of software! :-)
Steve
trooper
11-27-2004, 01:22 PM
Originally posted by Patrick Hogan@Nov 22 2004, 10:31 AM
I am not sure how readily applicable this might be to an OSX/Linux effort, but there has been some headway made with an Linux/OSG planetary visualization tool by Don Burns of Andes Engingeering called the Blue Marble Viewer Blue Marble Viewer (http://www.andesengineering.com/BlueMarbleViewer/index.html) :)
Quoted post
The VTP project looks to have done some significant work in this area:
http://www.vterrain.org/Implementation/index.html
http://www.vterrain.org/Screenshots/index.html
Originally posted by Patrick Hogan@Nov 21 2004, 07:31 PM
I am not sure how readily applicable this might be to an OSX/Linux effort, but there has been some headway made with an Linux/OSG planetary visualization tool by Don Burns of Andes Engingeering called the Blue Marble Viewer Blue Marble Viewer (http://www.andesengineering.com/BlueMarbleViewer/index.html) :)
Quoted post
Following for C++ hackers only <_<
http://cooa.whoi.edu/~nhv/files/osgPlanet/globe_small.gif
osgPlanet an interactive WMS enabled globe
The EarthViewer project was inspired by Blue Marble Viewer (http://www.andesengineering.com/BlueMarbleViewer/index.html) .
This is currently for C++ experts only and in addition to
OpenSceneGraph (http://www.openscenegraph.org), libCurl (http://curl.haxx.se/), OSSIM (http://www.ossim.org)
requires the libwms and osgPlanet libraries:
cvs -d :pserver:anonymous@cvs.flids.com:/cvs login
password: <return>
cvs -d :pserver:anonymous@cvs.flids.com:/cvs co libwms
cvs -d :pserver:anonymous@cvs.flids.com:/cvs co osgPlanet
This is an OpenSource Cross Platform C++ project
EarthViewer Developers List (http://xserve.flids.com/mailman/listinfo/earthviewer)
EarthViewer Blog (http://www.remotesensing.org/tiki-view_blog.php?blogId=2)
Norman
Felix_the_Mac
12-08-2004, 10:58 PM
QT is available for free when developing open-source apps for Linux and Mac OS X
:-)
Guest_Brian_*
12-15-2004, 05:50 PM
For anyone interested in Celestia on OS X.... You should check out an article on the Apple Developer Pages for an optimized version of Celestia. Very cool. Free Registration required to download the demo... Good article on optimizing for OS X
See http://developer.apple.com/tools/sharkoptimize.html
and this discussion on MacOSXHints for more info:
http://www.macosxhints.com/article.php?sto...352575#comments
Originally posted by Ross Campbell@Nov 5 2004, 04:07 PM
Since Celestia is already portable - (Windows, any UNIX, MacOS), and since it can already use datafiles from blueplanet, and technically, any of the WorldWinds data files should work with Celestia (still need to validate personally), I see a *HUGE* benefit to using the celestia engine and enhancing it. WorldWinds is earth-centric. Celestia is universe centric.
I imagine a mode where I could switch from planet navigation (worldwind-style) to universe navigation, and go out to ... say mars, switch to planet navigation mode again, and cruise around mars and zoom in to different layers.
If you take this discussion to the Celestia boards, I think you'll find a lot of people interested in helping.
PLEASE PLEASE don't use C#/DirectX and lockout all platforms but windows. I want to run this on Linux. I could imagine very widespread deployment if this could be included in linux distributions.
Quoted post
nedkonz
12-19-2004, 04:47 AM
We already have a cross-platform[1] networked 3D development environment working that's called Croquet and might be useful for this kind of system.
See http://opencroquet.org for details.
[1] Well, not completely cross-platform. I think the only platforms that have the 3D part of Croquet working at present are Win32, Mac OS/X and Linux. However, the underlying VM has been ported to several other systems including WinCE and RiscOS. In theory we should be able to port easily to pretty much any system that supports OpenGL and has a C compiler. However, in fact it helps a lot if the system is 32-bit. We are working on a 64-bit VM at present, though.
nick150971
12-21-2004, 12:45 PM
This sounds like a very interesting project. I am working on a free mapping project in the UK, Freemap, which aims to provide free hiking maps (showing trails etc) of the UK using GPS surveys. (Unlike in the USA, the UK's national mapping agency are very restrictive when it comes to reproduction of maps). Incidentally, the contours are generated using SRTM data...
I would be extremely interested in a Linux port, sufficiently interested to work on it. However I have virtually no 3D programming experience and haven't developed in OpenGL. That said, during my research project (antibody modelling) I did write some 3D transformation routines (transformation matrices etc) so am not completely clueless in this area. :-)
My chosen technologies would be C++, due to speed, Qt for the user interface (which I have experience in: it is very intuitive and easy to develop with), with the embedded OpenGL widget for the graphics. To put the record straight, Qt is free for open-source apps on both Linux and OS X, and is cross-platform. As someone else said, one developer licence for Windows (about $1500 IIRC) could be afforded, the source should compile on all three of those platforms.
Given my background, how feasible would it be for me to get involved?
Thanks,
Nick
cmaxwell
12-23-2004, 08:30 PM
Originally posted by nick150971@Dec 21 2004, 04:45 AM
This sounds like a very interesting project. I am working on a free mapping project in the UK, Freemap, which aims to provide free hiking maps (showing trails etc) of the UK using GPS surveys. (Unlike in the USA, the UK's national mapping agency are very restrictive when it comes to reproduction of maps). Incidentally, the contours are generated using SRTM data...
I would be extremely interested in a Linux port, sufficiently interested to work on it. However I have virtually no 3D programming experience and haven't developed in OpenGL. That said, during my research project (antibody modelling) I did write some 3D transformation routines (transformation matrices etc) so am not completely clueless in this area. :-)
My chosen technologies would be C++, due to speed, Qt for the user interface (which I have experience in: it is very intuitive and easy to develop with), with the embedded OpenGL widget for the graphics. To put the record straight, Qt is free for open-source apps on both Linux and OS X, and is cross-platform. As someone else said, one developer licence for Windows (about $1500 IIRC) could be afforded, the source should compile on all three of those platforms.
Given my background, how feasible would it be for me to get involved?
Thanks,
Nick
Quoted post
Hi Nick,
I will fully support your efforts in the porting of the NASA World Wind project. I've been looking into possible languages for a port to Linux and OSX, and have just not found the right recipe yet. I thought Java + OpenGL would seem like a natural choice for cross-platform, but of course, C++ has better performance. I don't know very much about Qt, but if you decide to go that route, I'll educate myself in a hurry. ;)
One of the key elements that needs attention is that DirectX is capable of multi-thread access to the graphics device, a feature that isn't part of the OpenGL API (that I'm aware of at least), and World Wind uses this feature extensively to provide consistent frame-rates and continual I/O to the graphics device.
Again, I'll provide support wherever I can. :)
nick150971
12-27-2004, 12:55 PM
Originally posted by cmaxwell@Dec 23 2004, 08:30 PM
Hi Nick,
I will fully support your efforts in the porting of the NASA World Wind project. I've been looking into possible languages for a port to Linux and OSX, and have just not found the right recipe yet. I thought Java + OpenGL would seem like a natural choice for cross-platform, but of course, C++ has better performance. I don't know very much about Qt, but if you decide to go that route, I'll educate myself in a hurry. ;)
One of the key elements that needs attention is that DirectX is capable of multi-thread access to the graphics device, a feature that isn't part of the OpenGL API (that I'm aware of at least), and World Wind uses this feature extensively to provide consistent frame-rates and continual I/O to the graphics device.
Again, I'll provide support wherever I can. :)
Quoted post
Hi Chris,
Sounds good. First thing I need to do is upgrade the graphics on my home box :-) but once I've done that all being well I should be in a position to start working on it. Bear in mind that due to work commitments it would be a case of me spending maybe three evenings a week on it (including learning OpenGL) but this looks like a *really* exciting project and it would be really good to see it on Linux. The Linux version should work on the Mac too. I definitely favour C++/Qt for speed: that combination is no more difficult than Java. Also - as someone else said - Qt gives a more "native" look and feel than Java.
Thanks for your offer of support. How would you see the port evolving particularly w.r.t the main Windows version?
Nick
Llynix
12-27-2004, 06:12 PM
Originally posted by nick150971@Dec 27 2004, 07:55 AM
Thanks for your offer of support. How would you see the port evolving particularly w.r.t the main Windows version?
Nick
Quoted post
Well, I'm not Chris.
But the first thing I think anyone and everyone sees is DX -> OGL
From there probably experimenting with MONO to see if it 'just works' or will just work with a little help.
nick150971
01-01-2005, 11:44 AM
Originally posted by cmaxwell@Dec 23 2004, 08:30 PM
Hi Nick,
I will fully support your efforts in the porting of the NASA World Wind project. I've been looking into possible languages for a port to Linux and OSX, and have just not found the right recipe yet. I thought Java + OpenGL would seem like a natural choice for cross-platform, but of course, C++ has better performance. I don't know very much about Qt, but if you decide to go that route, I'll educate myself in a hurry. ;)
There's one issue that's come to mind with using Qt for a potential Mac version. The X11 version of Qt is licenced under either the GPL or QPL (see www.trolltech.com) which basically means one can use it to develop any open-source software. The Mac version however is licenced under only the GPL, which means that software developed using it must be licenced under a GPL-compatible licence. The NASA Open Source Agreement is not listed on the Free Software Foundation (in)compatible licences page so I'm not sure whether it would be compatible or not. Would anyone have an idea about this?
If it is compatible, Qt would be fine. If not, it would be a case of either trying another - perhaps less "slick" (but still the equal of the Java UI) - toolkit such as FLTK; using GTK+ (a C, not C++, toolkit) for the interface; or going with Java or Mono.
Nick
ShockFire
01-01-2005, 01:19 PM
I guess you could call this 'straight from the horses mouth':
Chris: hehe, jessi just handed me a paper that says that LGPL is fine as long as I include their license agreement somewhere as a txt doc
Chris: GPL is not ok though
Jessi
01-03-2005, 10:14 PM
Originally posted by nick150971@Jan 1 2005, 03:44 AM
There's one issue that's come to mind with using Qt for a potential Mac version. The X11 version of Qt is licenced under either the GPL or QPL (see www.trolltech.com) which basically means one can use it to develop any open-source software. The Mac version however is licenced under only the GPL, which means that software developed using it must be licenced under a GPL-compatible licence. The NASA Open Source Agreement is not listed on the Free Software Foundation (in)compatible licences page so I'm not sure whether it would be compatible or not. Would anyone have an idea about this?Quoted post
NASA Open Source Agreement (NOSA) is a derivative of the Mozilla Public License, and unfortunately, MPL-type licenses are incompatible with GPL, because of GPL provision number 2 (the "viral licensing" provision). So Qt/Mac wouldn't work for a World Wind version that's licensed under NOSA. Qt/X11 would be fine since it's dual-licensed under QPL and GPL.
As far as other toolkits are concerned, I'm not aware of the pros and cons, but perhaps others are?
Jessi
nick150971
01-04-2005, 04:28 PM
Originally posted by Jessi@Jan 3 2005, 10:14 PM
NASA Open Source Agreement (NOSA) is a derivative of the Mozilla Public License, and unfortunately, MPL-type licenses are incompatible with GPL, because of GPL provision number 2 (the "viral licensing" provision). So Qt/Mac wouldn't work for a World Wind version that's licensed under NOSA. Qt/X11 would be fine since it's dual-licensed under QPL and GPL.
As far as other toolkits are concerned, I'm not aware of the pros and cons, but perhaps others are?
Jessi
Quoted post
FLTK is another cross-platform toolkit, and LGPL licenced so unlikely to have these sorts of problems. It's a bit lower level than Qt, but still has quite a nice API. I believe it also has good OpenGL interoperability. It works on all of Unix, Mac and Windows.
Nick
Guest
01-13-2005, 02:24 AM
What does VLC use to render its interface? It looks great with native widgets on every platform.
I bet if you implemented the World Wind 3D view with cross-platform C++ and OGL you could just plug it in as an NSView in XCode and add whatever widgets you like to control it fairly simply.
nick150971
01-17-2005, 09:07 PM
To update, I've now got a GeForce fx5200 installed on my home box, the card and WorldWind itself works fine under Windows, but despite being officially supported, the drivers crash under Linux.
But if time permits I could certainly get started on a Linux port while it is not yet at a stage of development where hardware acceleration is important. I've actually edited this since my first post a couple of hours ago :-) as I've just seen the post in another thread on SDL.NET.
I had originally thought of C++, and FLTK for the interface (not Qt due to licencing issues) but maybe the Mono route would be best, to keep the same language. The only issues I can see through a quick look through the sites are:
- SDL.NET and the related Tao OpenGL framework appear to be in relatively early development. That said updates seem to be coming thick and fast...
- The GUI. The obvious Mono GUI for Linux is Gtk#, but this only works on the Mac via an X server at present. There is also a Cocoa# for the Mac.
Nick
Guest
01-18-2005, 05:29 PM
Originally posted by nick150971@Jan 17 2005, 01:07 PM
I had originally thought of C++, and FLTK for the interface (not Qt due to licencing issues) but maybe the Mono route would be best, to keep the same language. The only issues I can see through a quick look through the sites are:
Quoted post
To followup my post yesterday - I've done further research today and while the Mono/OpenGL route seems feasible under Linux at the present time. Mono under the Mac, particularly if one is going to do anything extra with it, seems rather fragmented ATM. Maybe in a year or two Mono will be the optimal route, but for now C++/OpenGL with FLTK as the GUI would be my choice.
Nick
Llynix
01-18-2005, 06:26 PM
Originally posted by Guest@Jan 18 2005, 12:29 PM
To followup my post yesterday - I've done further research today and while the Mono/OpenGL route seems feasible under Linux at the present time. Mono under the Mac, particularly if one is going to do anything extra with it, seems rather fragmented ATM. Maybe in a year or two Mono will be the optimal route, but for now C++/OpenGL with FLTK as the GUI would be my choice.
Nick
Quoted post
My idea is that if we go from DX -> OGL we can play with it with mono..
if it works.. or nearly works with a little fixing, we've got a linux version quick.
If it doesn't work.. then at least half the works done :)
nick150971
01-18-2005, 11:41 PM
Originally posted by Llynix@Jan 18 2005, 06:26 PM
My idea is that if we go from DX -> OGL we can play with it with mono..
if it works.. or nearly works with a little fixing, we've got a linux version quick.
If it doesn't work.. then at least half the works done :)
Quoted post
Well, (subject to my work commitments) I'd be happy to have a go at starting to Mono/GL-ise it :-) Got both WinXP and Linux on my home box, so I've got plenty of testing ground. With some hacking around it should be also possible to integrate a cross-platform Gtk# GUI with an OpenGL window.
What would you do about the Mac? Wait until Mono becomes more stable?
Nick
nick150971
01-23-2005, 11:06 PM
Have now got Mono and Gtk# working on my system so I'll start work on a Mono/Gtk#/OpenGL port for Linux. Bear in mind I'm quite busy at work so it's a case of fitting it in as and when :-) I've set up a simple homepage for the port where I'll upload source as I go, it's at
http://www.nickw.uklinux.net/worldwind/
though there's nothing there at the moment :-) Should I set up a sourceforge account for this, come to think of it? Or use the existing one for the main version?
Thanks,
Nick
Llynix
01-24-2005, 01:32 AM
Originally posted by nick150971@Jan 23 2005, 06:06 PM
Have now got Mono and Gtk# working on my system so I'll start work on a Mono/Gtk#/OpenGL port for Linux. Bear in mind I'm quite busy at work so it's a case of fitting it in as and when :-) I've set up a simple homepage for the port where I'll upload source as I go, it's at
http://www.nickw.uklinux.net/worldwind/
though there's nothing there at the moment :-) Should I set up a sourceforge account for this, come to think of it? Or use the existing one for the main version?
Thanks,
Nick
Quoted post
Why don't you join us in the IRC chat. There are a couple of WW developers there and maybe you can catch Chris as well. If not Shockfire can. We have yet to quite work out CVS, but I don't see a problem with making an OGL branch. I would like to follow it myself.
http://chat.worldwindcentral.com or #worldwind on irc.freenode.net
Jessi
01-24-2005, 03:14 AM
Wow, great news!
Do you have a Sourceforge account already? If you do, let me know what your username is so I can give you CVS commit privileges.
As far as "where to put the code" ... we should probably spend some time thinking about the best way to do this, since it'll set a precedent for future World Wind porting efforts. It seems there are two main options. The first option is to create a separate SourceForge project for the port, and put the code under its own project tree. (The code could be reintegrated into the existing tree in the future, of course.) This approach would work best if you anticipate there won't be much sharing of code with the Win32/C# version.
The second option is to put the port in the existing Win32/C# SourceForge nasa-exp CVS tree, under a subdirectory like mono/. We could change the CVS directory structure so for each major component, there are subdirectories for each port (e.g., /WorldLayers/cs, /WorldLayers/mono). Or we could just lump all the code under a toplevel subdirectory.
What approach sounds best to you all?
Jessi
Originally posted by nick150971@Jan 23 2005, 03:06 PM
Have now got Mono and Gtk# working on my system so I'll start work on a Mono/Gtk#/OpenGL port for Linux. Bear in mind I'm quite busy at work so it's a case of fitting it in as and when :-) I've set up a simple homepage for the port where I'll upload source as I go, it's at
http://www.nickw.uklinux.net/worldwind/
though there's nothing there at the moment :-) Should I set up a sourceforge account for this, come to think of it? Or use the existing one for the main version?
Quoted post
nick150971
01-24-2005, 11:28 PM
Originally posted by Jessi@Jan 24 2005, 03:14 AM
Wow, great news!
Do you have a Sourceforge account already? If you do, let me know what your username is so I can give you CVS commit privileges.
As far as "where to put the code" ... we should probably spend some time thinking about the best way to do this, since it'll set a precedent for future World Wind porting efforts. It seems there are two main options. The first option is to create a separate SourceForge project for the port, and put the code under its own project tree. (The code could be reintegrated into the existing tree in the future, of course.) This approach would work best if you anticipate there won't be much sharing of code with the Win32/C# version.
The second option is to put the port in the existing Win32/C# SourceForge nasa-exp CVS tree, under a subdirectory like mono/. We could change the CVS directory structure so for each major component, there are subdirectories for each port (e.g., /WorldLayers/cs, /WorldLayers/mono). Or we could just lump all the code under a toplevel subdirectory.
What approach sounds best to you all?
Jessi
Quoted post
I now have a sourceforge account : nick150971.
Don't know what others think, but I'd imagine the non-graphical parts of the application wouldn't change that much between the .NET and Mono versions so maybe best to use the existing sourceforge project?
Nick
Jessi
01-25-2005, 03:25 AM
Originally posted by nick150971@Jan 24 2005, 03:28 PM
I now have a sourceforge account : nick150971.
Don't know what others think, but I'd imagine the non-graphical parts of the application wouldn't change that much between the .NET and Mono versions so maybe best to use the existing sourceforge project?Quoted post
Sounds good to me.
Jessi
nick150971
01-28-2005, 12:10 AM
Been looking at the Tao OpenGL framework for .NET and Mono, seems to work reasonably ok on Mono/Linux. However, on another tack, I came across a higher-level C++ library - OpenSceneGraph - which is based on Open GL, and which it seems the original Blue Marble Viewer was built with. Also on one of the other threads the OGRE 3D engine has been mentioned.
Despite being C++ rather than C#, I'm wondering whether the higher-level nature of these libraries will mean that overall development time for a port will be less using them? They both seem to be APIs at the "3D viewer" level, and encouragingly OO, as well as Linux/Windows/Mac compatible. A cursory glance at the APIs suggests that they would save a lot of bother with low-level details. What do people think?
Nick
MasterDirk
01-29-2005, 12:10 AM
Are anyone looking seriously at the Java/JOGL route? I believe it could be just what we're looking for in cross-platform compatibility.
I'm taking a course in JOGL this semester, so I will be able to help if this route is chosen. Judging from what I've seen on Citrix and Windows stations I would say that speed is not a problem. That java's lack of speed compared to c++ is getting toward the negligible factor anyway (for apps that run for a while, starting the VM still takes longer than binaries), and it's easy to maintain java code. With a high-speed API to OGL (JOGL) this project might very well be ported to it. From what I understand C# is really quite similar to Java, so that might make a port easier too.
I think this could be a feasible route, to bring WorldWind goodness to all the people out there not running Windows. Particularly as this is educational software and (at least in this part of the world) schools are moving parts of their machine-parks to *nix for cost savings and security.
Anyone with me on this?
<Edit> Just a clarification: As mentioned by a previous poster, maintaining concurrency between forked projects is akin to battling wind-mills. I am not proposing a fork of the project. I believe the project would have to be ported to, and be kept current at, the new platform. This would mean changing platform in the middle of a project (which is not a good thing), but maintaining two implementations is ineffective. This goes for any port, not just for my pet-port (Java/JOGL). As WW is OpenSource it can always fork, but the community around WW would not at present be able to support two WWs, methinks. Thoughts on this are naturally very welcome </Edit>
Jessi
01-29-2005, 10:55 AM
Originally posted by MasterDirk+Jan 28 2005, 04:10 PM--><div class='quotetop'>QUOTE(MasterDirk @ Jan 28 2005, 04:10 PM)</div><div class='quotemain'>Are anyone looking seriously at the Java/JOGL route? I believe it could be just what we're looking for in cross-platform compatibility.Quoted post[/b]
This is beyond my area of expertise, but do you have any thoughts on what Chris said about the need for multithreaded access to the graphics device, and that being a potential hurdle for using OpenGL?
<!--QuoteBegin-MasterDirk@Jan 28 2005, 04:10 PM
Just a clarification: As mentioned by a previous poster, maintaining concurrency between forked projects is akin to battling wind-mills. I am not proposing a fork of the project. I believe the project would have to be ported to, and be kept current at, the new platform. This would mean changing platform in the middle of a project (which is not a good thing), but maintaining two implementations is ineffective. This goes for any port, not just for my pet-port (Java/JOGL). As WW is OpenSource it can always fork, but the community around WW would not at present be able to support two WWs, methinks. Thoughts on this are naturally very welcomeQuoted post [/quote]
I think at the moment people are considering the various options and deciding which options they wish to pursue. Although with only one full-time NASA programmer, I don't know what kinds of resources we can devote to working on a port, we are more than happy to coordinate with whoever is interested in moving forward with a port, including holding conference calls if necessary.
By the way, I wanted to write a general message to those who are potentially interested in working on a port, or who are otherwise interested in developing for/on World Wind: Please join us and the World Wind developer community on IRC (#worldwind channel on server irc.freenode.net). A lot of development action and coordination takes place there and it's easier to get ahold of someone there and have a real-time dialogue about big issues such as the project's technical direction. Also, some of us (such as Chris Maxwell) don't generally read and respond to forum traffic on a regular basis because of its heavy volume, but we do spend time on IRC.
You can also reach the NASA World Wind staff by e-mail, by AOL Instant Messenger, and by telephone. One of my jobs is to help coordinate between NASA developers and the open source community, so please feel free to bug me if some coordination, communication, or discussion needs to happen and it's not happening.
Jessi
MasterDirk
01-29-2005, 12:28 PM
I read that comment again, and I really can't say that I've fully understood the problem. JOGL does allow access to the GL from several threads, as far as I have understood it (remember, I have been using it for just a few weeks). In fact it is specifically mentioned in the documentation that every method should get the current GL object from the drawable (as opposed to storing it, and referencing it on the next redraw) to maintain multithreading safety.
Maybe this is what Chris means when he says it doesn't support multithreading, perhaps he would want it to be cacheable? I do not know. But, it is always good OO-design to check the data-invariant or refetch external structures on initialisation, so I didn't think much about this point when I read up on it.
Concerning speed:
Originally posted by http://opengl.j3d.org/faq/intro.html
2. Isn't using Java to do OpenGL going to be slow?
The simple answer is: No. All the demos written and large scale applications are running within 10% of the speed of their C++ equivalents (eg conversions of the NeHe tutorials). This assumes you write your code reasonably optimally. Making large numbers of glVertex() calls will make your code much slower than the C/C++ equivalent due to the JNI overheads. Using the same optimisation strategies as professional applications, such as vertex buffers, will have your Java code running just as fast and the native versions.
I still stand by my feeling that one platform for the entire project is preferrable to several ports, though :-).
Jessi
01-29-2005, 07:07 PM
Originally posted by MasterDirk@Jan 29 2005, 04:28 AM
I still stand by my feeling that one platform for the entire project is preferrable to several ports, though :-).Quoted post
I agree with you that ports, if they use development platforms that share little code with what NASA LT is releasing, may get less development and testing attention, or perhaps even split World Wind development and testing attention. We would most certainly prefer to keep development efforts unified rather than divided.
But if World Wind, the NASA-blessed project, is converted to a different code platform, there is the question of how long it will take to convert, what the quality will be like because of bugs introduced in the process, how long it will take to get World Wind back to the level of quality it was at before the conversion, and the learning curve for some developers as they become familiar with the new platform. Because of all these considerations, such a conversion shouldn't be decided upon lightly.
NASA World Wind staff are very focused on aggressively adding functionality, usability, and polish to World Wind, and would like to continue to do so within the means of whatever limited development resources are available (whether at NASA or outside it). That's where we're coming from. At the same time, we're open to discussing all possibilities and offers of assistance. I hope such discussion can take place in the context of the World Wind developer community, since many developers contribute to the project, not just NASA developers.
Jessi
Llynix
01-29-2005, 07:25 PM
Originally posted by Jessi@Jan 29 2005, 02:07 PM
I agree with you that ports, if they use development platforms that share little code
... yada yada
yada yada ..
contribute to the project, not just NASA developers.
Blah.. I've heard enough about ports. NASA's completely for them, so is the community.. and theres even a few programers willing to code it.
So guys.. get together and get R done.
Visit http://chat.worldwindcentral.com that's where mostly all exsisting community developers hang out a good 12 hours a day. And EVERY (inside and outside nasa) developer stops in and updates several times a week.
CVS access to full source is fully available on sourceforge under the project nasa-exp
You can contact myself or any other moderator of the forums who can get you in touch with chris for addition to the sourceforge project to add your code.
Less talk, more action. There are some excellent ideas thrown around as to what direction to go. Pick one and do it.
:)
Jessi
01-29-2005, 07:37 PM
I'm going to reopen this topic because there should be a place on the forum for discussion of this issue. If we want to unpin the thread or close this topic and create a new thread, that's fine too, but this is as good a place as any to discuss.
Jessi
Guest
01-29-2005, 08:51 PM
Originally posted by Jessi@Jan 29 2005, 11:37 AM
I'm going to reopen this topic because there should be a place on the forum for discussion of this issue. If we want to unpin the thread or close this topic and create a new thread, that's fine too, but this is as good a place as any to discuss.
Jessi
Quoted post
There would appear to be three options: a high-level C++ API such as Ogre, Java3D (which also appears to be a high-level API) and sticking with the Mono/C# plan, where one is stuck with lower-level calls though there would be no need to convert to a different language. I guess a decision must be made to avoid a proliferation of different versions....
Nick
Wesley Monroe
01-30-2005, 06:03 PM
Originally posted by nick150971@Jan 27 2005, 06:10 PM
Despite being C++ rather than C#, I'm wondering whether the higher-level nature of these libraries will mean that overall development time for a port will be less using them? They both seem to be APIs at the "3D viewer" level, and encouragingly OO, as well as Linux/Windows/Mac compatible. A cursory glance at the APIs suggests that they would save a lot of bother with low-level details. What do people think?
Nick
Quoted post
I'm convinced of a couple of things at this point, the Graphic needs to support OpenGL, and I don't think we need to worry that much about making the UI layer portable. I'm trying to spend as much time as I can re-learning/learning more about 3D graphics, which I have not work with in some time as this app has me totally inspired to get involved....very cool. I'm a Mac person and will be trying to contribute as and when I can. I'm rusty on the programming side, but I'm sure I can make a contribution, at least I'll try.
Earlier today posted to Apple's openGL forum to get some feedback on OGRE and OpenSceneGraph. Another recommendation came from that, coin3d. More to come on that when I get some feedback, but I think in order to really help make the right choices as it relates to higher level API's, I need to know more about the current data and graphics architecture of WW (along with learning to the OpenGL). My gut feel is we do need some higher level API, but I just don't know.
I got the source for WW, but it's a bit of a pain to browse on the Mac. Chris, can you point me to some of the core data structure, graphics API routines so I can get a better feel of what kind of data your accessing and how it's being rendered? Is it raster images? How is it overlayed with the elevation data? Any pointers on getting to the heart of this quickly would be apprecitated. Seems we should take this kind of info and start scribbling it down in the wiki. I'll gladly contribute there once I get some traction in the overall understanding arena.
Tuan Kuranes
01-30-2005, 09:14 PM
Hi, I'm one of the developper of the Ogre PagingLandscape Plugin.
I'd just want to give some informations here :
Higher API like Ogre3d gives portability, supports of Dx9, dx7 and GL, access to higher level tools, as well as rendering engine evolution. (make rendering engine support latest hardware, shaders, optimisations, MemLeak checks, etc), strong community support (very reactive forums).
As porting WW to an engine is already a BIG task, you should consider porting it to Axiom ( http://www.axiom3d.org/ (http://www.axiom3d.org/) ), the C# Ogre port.
It would also considerably reduce code size to use higher level API, help abstraction and code seperation and let coders concentrate on dedicated code.
About the UI Layer, at Ogre we Use CEGUI (http://www.cegui.org.uk/)) that give us full portability, and free us from UI madness. If mono forms doesn't fullfill requirement on Linux and Mac (including installation problems for end-users), Wxwidgets would be the second correct choice. (the C# port is here :wxnet (http://wxnet.sourceforge.net/))
Ogre also has several Terrain Code in (geomorphing, displacment mapping, real-time texturing upon height, real-time deformation, paging), and several people in the community working on terrain engines.
I would gladly help coding an Ogre WorldWind port.
(but not lead a port.)
dirkpitt
01-31-2005, 03:50 AM
Originally posted by Tuan Kuranes@Jan 31 2005, 06:14 AM
Higher API like Ogre3d gives portability, supports of Dx9, dx7 and GL, access to higher level tools, as well as rendering engine evolution. (make rendering engine support latest hardware, shaders, optimisations, MemLeak checks, etc), strong community support (very reactive forums).
As porting WW to an engine is already a BIG task, you should consider porting it to Axiom ( http://www.axiom3d.org/ (http://www.axiom3d.org/) ), the C# Ogre port.
It would also considerably reduce code size to use higher level API, help abstraction and code seperation and let coders concentrate on dedicated code.
About the UI Layer, at Ogre we Use CEGUI (http://www.cegui.org.uk/)) that give us full portability, and free us from UI madness. If mono forms doesn't fullfill requirement on Linux and Mac (including installation problems for end-users), Wxwidgets would be the second correct choice. (the C# port is here :wxnet (http://wxnet.sourceforge.net/))
Quoted post
Hi, I'm a dev for Celestia OS X. Just noticed this cool-looking program from browsing the mac-opengl list.
Just wanted to add a couple of notes. In my experience doing Win32 porting, you usually never try to recode the core (engine) of the Win32 app. I see a lot of comments about Java and C++ but that just won't cut it. VLC, Vim, Celestia, ... they all separate out platform-independent code and the platform-dependent gui. Celestia OS X for example has a C++ engine, and a Cocoa gui.
Likely, the core of WorldWind is, like it or not, written in C# so any porting effort will probably have to use Mono sooner or later. While DirectX complicates matters, Tuan makes a couple of good suggestions: probably something like Tao.OpenGL or OGRE (Axiom) will suffice. Axiom uses Tao, but still seems a bit rough around the edges.
The Windows.Forms support in Mono was supposed to be ready by the end of last year, but it looks like there're still a couple of "red" (unimplemented) dialog boxes, etc. However, WxWidgets (Wx.NET) is doing much better than Mono's Windows.Forms. If the author of WorldWind were to consider a switch to Wx.NET, it may greatly ease cross-platform development of WorldWind.
Cheers,
DW
mcglnx
02-01-2005, 06:43 PM
Originally posted by cmaxwell@Sep 27 2004, 09:17 AM
I don't really have a good gauge on the JOGL approach to the project, but that might be a strong approach to consider. I do recognize an enormous JAVA community and the similar OO nature of it to c# really helps in porting it over and keeping it current.
Quoted post
Hmmm... I think Java will be painfully slow for this kind of application!
My 2cts!
MasterDirk
02-01-2005, 07:39 PM
Please. I recognise the enormous problems with porting code to a different language, and dealing with bugs that might (will) result from it. I admit the relative weakness of JOGL (as it's a binding between c++ and java, thus it's vulnerable to bugs) compared to other 3d solutions. Still, the Java/JOGL way is better (I think) than C#/.Net/D3D because of portability. I realise this will probably stop the java-dream.
What I do not accept, and will not concede is the outdated java-is-slow argument. Java is not slow for apps that need to live a while after init. Some operations are even testing quicker on java than on c++. I am just so tired of that argument, as it's unfounded and just plain wrong.
Lots of good reasons not to port, raw speed is not one of them.
Llynix
02-01-2005, 10:44 PM
Originally posted by MasterDirk@Feb 1 2005, 02:39 PM
What I do not accept, and will not concede is the outdated java-is-slow argument. Java is not slow for apps that need to live a while after init. Some operations are even testing quicker on java than on c++. I am just so tired of that argument, as it's unfounded and just plain wrong.
Hmm.. I've never really experienced problems with java speed wise.
Back in the early days java had horriable garbage collection routines. This meant most any application that ran for any period of time would have memory leaks and would soon grind a computer to a halt.
It was 5-7 years ago that I messed with java.. but the leaks were horriable. I'm pretty sure it's better now.
However overhead is still high. While applications don't seem to take up much memory. The java parser which runs on the system takes up 60 megs easy. For an application such as ww which has a (seemingly fixed) overhead of about 40 megs this would require at least 256 megs of ram instead of the current minimum of 128 (I'm sure you can run 64 megs it would just be slow as molases.)
And then you run into java's speed problem. It's not that java isn't fast. I've seen some great speedy apps out of java. It's that the overhead associated with java is so high that your computer starts paging quicker. Which would slow down disk access. Which on an application such as ww would slow it down even more.
The application I know of in high use java wise is Azureaus. (I'll admit I avoid java applications because of the above problems so there may very well be others) It does good, but the C++ coded bitcomet does all it does.. plus uses much less memory. As a result it seems much faster.
In addition, a lot of people tout the "portability" of java over other languages. Well hate to burst the bubble, but C will run on more machines then java ever will and furthermore.. did it 30 years ago. Yeah you have to compile. That's the only drawback.
Just my two cents.. I don't have enough time right now to get involved with a port :( So I should probably just shut up and keep my opinions to myself :)
AndrewO
02-21-2005, 05:58 AM
Hey everyone,
I noticed that the discussion on this thread has gotten a little static. I was wondering if anything new has been decided language or toolkit-wise for a ported version. Also, is there a different site for porting discussion or is this the central place?
I've got a 15" Powerbook for the effort if it turns out I can help.
Thanks a lot,
Andrew
TomServo
02-21-2005, 12:14 PM
Not slack.. just back burnered while they fix the bugs in 1.3 for it's release.
Everyone is too busy to worry about this next step just yet.
AndrewO
02-21-2005, 04:05 PM
Gotcha, I'll watch this space then.
TomServo
02-21-2005, 04:37 PM
Originally posted by AndrewO@Feb 21 2005, 11:05 AM
Gotcha, I'll watch this space then.
Quoted post
No, better to go to the IRC channel. irc.freenode.net #worldwind
The developers are all there most the time. Just now wouldn't be the time to ask :)
QDVDAuthor
02-23-2005, 01:50 AM
Folks, here are some thoughts ...
FYI : Trolltech announced to release Qt 4.0 under Linux, Windows and MacOs under the GPL.
I am currently using Qt to implement a DVD-Authoring suite and it is the best widget set I have ever used. I learned that it is usefull to keep dependencies down, and if there are any try to give a choice (E.g. DirectX engine or OpenGL engine)
Java has the advantages/disadvantages already mentioned.
I programmed GPS (http://www.MovingSatellites.com) which is a satellite tracker for Windows, using MFC and OpenGL (yeah old code I know) but if I had to do it again here is what I would try :
Please try to think outside the box
Check out the GUI sets under http://soya.literati.org/UserInterface
this one comes to mind http://libufo.sourceforge.net/screenshots.html (http://libufo.sf.net/screenshots.html) as a possible contender.
Remember compared to the rest the user input and the used CPU cylces to handle those are negligible.
There are a few very important advantages if you would use this project :
1) you could help improve libufo and spread its usage.
2) Platform independend
3) A real 3D interface can be constructed with no strings attached.
Okay think about it, you have the perfect goal for a 3D widget set. Displaying the earth in 3D space. Now use your imagination how you could improve the handling if you drop the 2D constarints. Think what SUN does through http://www.sun.com/software/looking_glass/ and what you could do ...
Just my 2c
Varol Okan :)
adamhill
02-23-2005, 03:44 AM
Current WorldWind kinda compiles on Mono 1.1.4.
Prj2Make converts the .sln files just fine. Stick the MDX assemblies in $MONO/lib. Run NMAKE against the WorldWindow make file. About 1/2 of the DLL's get built, but MCS dies when trying to link DirectX.dll.
Any have Mono COM mojo?
neighborlee
02-26-2005, 07:58 PM
Originally posted by Guest@Jan 29 2005, 12:51 PM
There would appear to be three options: a high-level C++ API such as Ogre, Java3D (which also appears to be a high-level API) and sticking with the Mono/C# plan, where one is stuck with lower-level calls though there would be no need to convert to a different language. I guess a decision must be made to avoid a proliferation of different versions....
Nick
Quoted post
-=-------------
did we forget about openscenegraph somewhere along the lines ?
...we already have the 'base' as ogre curently has NO such project going even close to what bmv is .
you can checkout this thread if you forget its there for reference;
http://worldwind.arc.nasa.gov/forums/index...?showtopic=133# (http://worldwind.arc.nasa.gov/forums/index.php?showtopic=133#)
why reinvent the wheel when there is a clear crossplatfform project ready to use ;-))
cheers
nl
MasterDirk
02-28-2005, 02:55 PM
Sorry to just poke my head into this again. It seems most opinions are agains the Java/JOGL path, which is understandable from a code-port point of view.
Just flogging a dead horse here, but this kinda proves that Java/JOGL can do this. Without downloading a 200Mb file and installing DX9.0c managed and all that this can run. It uses LandSat, and it can display 3d models, it has lighting from a defined source (the mountains throw shadows) and it's quite customizable (bookmarks, anybody?).
It's not made with the same goals as WW, and the interface is quite different. Just trying to tell y'all that it can be done. Oh, and it should work on *nix etc.
http://globe.sintef.no/
(posting this way down in this thread so as not to kill sintef's server, don't know how robust it is. It's a technical school here in Norway)
Disclaimer: Not my work. Don't know the guy.
adamhill
02-28-2005, 05:55 PM
There are no real technical reasons Java + Java3D or JOGL solutions would not work, just the amount of effort to get it off the ground would be greater. Once it got going it would be nice since D3D and OGL are targets of Java3D. Instant portability...
Believe it or not, most the code is not in the 3D part, it is a spherical mesh mapped with certain textures at certain altitudes. The Earth is not a HL2 level.
WorldWindow.cs is a 55K chunk of code, that is pretty much all the 3D code there is. The 'complicated part' is continuously streaming textures to the globe, OGL is "kinda" single threaded unless you are using OGL contexts.
As Mark Sylvester at Alias/Wavefront once said "The world belongs to those that show up."
adam...
Guest
03-01-2005, 07:17 AM
Originally posted by cmaxwell@Sep 26 2004, 11:52 AM
Hey future developers, contributers. I think it's up to me for the time being to try and get the OSX/Linux effort started on the right foot by trying to get the preferred specifications drawn up. I want to choose a language and such for the efforts such that it appeals to as many developers as possible. Let's first start by listing the technologies that are available.
I'm not too much of a Linux person, but at least for OSX, there's the Cocoa, OpenGL approach. Possibly the use of GLUT. What else is there that people would like to use?
Quoted post
I would like to see and OS X version of World Wind. I have been playing with the PC version and it is great. This program would really shine under OS X.
I agree with other postes in the forum. Contact Apple. They often will help out programs like this to really show off the platform. More so if it has educational value.
With OpenGL the program would be ready for CoreGraphics and CoreVideo under 10.4.
Beansprout
03-04-2005, 04:01 PM
Heads up - http://worldwind.arc.nasa.gov/forums/index...8846&#entry8846 (http://worldwind.arc.nasa.gov/forums/index.php?showtopic=1588&st=0&p=8846&#entry8846)
Good Morning.
The Apple World Wide Conference 2005, June 6-10 in San Francisco might be a valuable source for assistance in developing the Mac version. Visit the Apple web site for additional information.
Jimmer J
03-06-2005, 01:45 AM
Mac OS X port sil vous plait !!! :D
Pablo Mayrgundter
03-08-2005, 07:28 PM
Hi Guys,
Great job! Hadn't had a chance to use WW before, but just installed it on my mom's PC and it looks great. I'm on Linux primarily but also use OSX. I'm writing a Java3D Celestia clone right now and plan to incorporate the WW datasets from the servers as Chris (I think) suggested in one of the first posts in this thread. Java3D has recently regained attention from Sun, and there's also JOGL and Xith3D.
I've been happy with the performance of Java3D, and I bet the others will be as fast if not faster. I can load blue marble-sized (the 2k wide one i think) textures for Earth and another layer for atmosphere too spin it all around no problem. All the hard work goes to the gfx card. Where Java is a big win is the logic and networking side of things. With Java Native IO, you can do direct buffered memory, COW, etc.. Sun has a cool demo of loading a big Mars dataset into Java3D for navigation using NIO and the advanced image API.. again, all the performance critical sections are in optimized ASM/CPU-specific instructions anyways.. that's not the domain of application programming ;)
I'll let you know how it goes, and feel free to stop by:
http://fmc.sf.net/
This is currently pointing to my homepage code area, but as the project gets closer to 1.0 I'll put a proper page up.
To accomodate the larger datasets, i'm investigating using bittorrent (the Java Snark lib currently). My code takes up a few hundred k, but the data for 90k stars and textures for planets and moons is already 20-30MB.. and I'm serving from a 33KB/s uplink. Adding in the WW datasets won't hit my server, but BT is more scalable than dedicated content servers.... plan for success! :)
Anyways, I'm still in Alpha dev.. so unless you know Java, don't both getting it to run just yet. If you do get it to run, just the # keys to take a tour around the solar system :)
Cheers,
Pablo
Just A Guy
03-09-2005, 08:07 AM
Fly In the Ointment
Okay so you just created this rocking app and now you want to port to a more robust but greatly lacking systems. Well let’s just say systems where you have to roll your own more often than not. And the reason you have this requirement to port off of the “let me do that for you†windows environment is so that you can reach the additional 5% of the market. Okay let me ask you some question as follows:
Do you really need to think about re-writing or creating from scratch the World Wind application to reach those other users?
Do you really think that it would be a good idea so early in the project to think about creating multi-platform life cycle issues?
Is there an easier way to reach these users with out having to re-write?
I think there is a way to solve the problem besides writing new code. I know it takes the fun out of things but codeing is not always the answer. I think the easiest solution is to go with a Wintel Server or Cluster / virtual server software like vmware or ms virtual server / Citrix with ICA web client.
Now before the $$$$ run you over think donation. Your software working on their solution is going to reach a lot of future customers for these guys. At least they could donate the web client licenses for free if not the whole thing. I mean it is a fantastic way for those companies to show how their products can solve cross platform issues. You never know unless you ask. Hell maybe they will host it for you. If they do then you no longer have to worry about the bandwidth issues aside from you data transfers.
And I know not as much fun as writing the code but hey perhaps it will tide you over until mono and an open source version of directX are ready for the World Wind App.
adamhill
03-09-2005, 02:36 PM
Uh...
Virtual PC does not support 3D. VMWare (which does support 3D and runs WWind fine) does not run on Macs.
TOKYO_JOE
03-10-2005, 08:19 PM
im guessing he "Ryan" is the GURU!
http://icculus.org/
All of mac gamers know him
he's done many critical ports from DirectX into openGL
UT2004 for linux and OSX. US GOV's Americas army port...blahblah
and i'd like to see the mac port, too
sry im a passenger thx :)
Guest_jim_*
03-21-2005, 08:03 PM
Hello and congratulations for world wind. A fantastic app!
If you still care about porting, you should check the mono System.Windows.Forms implementation (http://mwf.mono-project.com) which is almost complete (http://mwf.mono-project.com/class-status-System.Windows.Forms.html). Perhaps world wind's GUI already runs on top of mono, and this would mean that only the 3D stuff needs porting.
Thanks for your time
Paul Scott
03-24-2005, 07:00 AM
[quote=peter svensson,Sep 26 2004, 12:34 PM]
The quickest route would probably be to use the Tao .net OpenGL under mono
http://www.taoframework.com/
Yes I agree, Mono wouldd probably be best, but for simplicity sake and quickest dev time, I could thrash out a PHP WMS client in a day.
Does anybody here know how to get to the GetCapabilities document? I do not have access to any windows machines at all, and I would like to try get going on something!
Beansprout
03-24-2005, 11:26 AM
Originally posted by Paul Scott@Mar 24 2005, 07:00 AM
Yes I agree, Mono wouldd probably be best, but for simplicity sake and quickest dev time, I could thrash out a PHP WMS client in a day.
Quoted post
Send a message to Nowak, he's written and running his own PHP WMS server (that's what's running the community proxy).
Originally posted by Paul Scott@Mar 23 2005, 11:00 PM
Does anybody here know how to get to the GetCapabilities document? I do not have access to any windows machines at all, and I would like to try get going on something!
eQuoted post
GetCapabilities document for what? If a windows machine is all you need, there's plenty that could get it and perhaps convert it...what is the problem - why do you need a windows machine, and how can we help? :blink:
Llynix
03-24-2005, 10:14 PM
Originally posted by 5of0@Mar 24 2005, 01:38 PM
GetCapabilities document for what? If a windows machine is all you need, there's plenty that could get it and perhaps convert it...what is the problem - why do you need a windows machine, and how can we help? :blink:
Quoted post
Just request one for whatever server your looking for it for.
Maybe one of the WMS guru's will tell us exactly how.
HiWired
03-25-2005, 12:27 AM
Originally posted by Just A Guy@Mar 9 2005, 12:07 AM
Fly In the Ointment
Okay so you just created this rocking app and now you want to port to a more robust but greatly lacking systems. Well let’s just say systems where you have to roll your own more often than not. And the reason you have this requirement to port off of the “let me do that for you†windows environment is so that you can reach the additional 5% of the market. Okay let me ask you some question as follows:
Do you really need to think about re-writing or creating from scratch the World Wind application to reach those other users?
Do you really think that it would be a good idea so early in the project to think about creating multi-platform life cycle issues?
Is there an easier way to reach these users with out having to re-write?
I think there is a way to solve the problem besides writing new code. I know it takes the fun out of things but codeing is not always the answer. I think the easiest solution is to go with a Wintel Server or Cluster / virtual server software like vmware or ms virtual server / Citrix with ICA web client.
Now before the $$$$ run you over think donation. Your software working on their solution is going to reach a lot of future customers for these guys. At least they could donate the web client licenses for free if not the whole thing. I mean it is a fantastic way for those companies to show how their products can solve cross platform issues. You never know unless you ask. Hell maybe they will host it for you. If they do then you no longer have to worry about the bandwidth issues aside from you data transfers.
And I know not as much fun as writing the code but hey perhaps it will tide you over until mono and an open source version of directX are ready for the World Wind App.
Quoted post
Just a lowly linux user that is totally into NASA (part of my daily data absorbtion fix is to cruise NASA sites). I use blender 3D and OpenGL a lot. Just to weigh in from the obscure artistic edge. I would definitely like a linux port very much please.
Blair
03-31-2005, 06:05 PM
Has anyone looked at Axiom (http://www.axiom3d.org/) it is a C# port of the OGRE library it sits above DirectX and OpenGL and allows one to move from platform to platform with only minor changes (just like JOGL). It runs on .NET and Mono so everyone can use WW. ALso my friend just compiled WW with Mono 1.1.5 and over 80% of the existing code compiled (only the directx specific stuff barfed). Now I do not know about you but being able to reuse 80% of the existing code base is a great start.
Just my $0.02
Blair
adamhill
03-31-2005, 06:20 PM
See! See!
3rd Party Confirmation!!! :P
And yes, I made a list of several engines on the Wiki - Tao.Framework, Irritch, Axiom and RealmForge.
Could you stick up the batch/make file you compiled with? Or did he manually go through and try to compile each csproj manually?
Blair
03-31-2005, 06:56 PM
He used proj2make on the .sln file and compiled it from there. He said it needed a couple of minor tweaks to the make files (they are rather dumb make files) to get them to really work right. So I will get them from him later today and post them to the wiki.
Blair
The make files
03-31-2005, 11:33 PM
Unfortunately, my friend nuked them (he only wanted to test his Mono installation on his iBook and WW was the only C# app he knew about (I showed it to him a couple of days ago :) ))
Oh well he said that it really was too simple to create them.
Blair
P.S. he also mentioned that it was really more like 90% of teh code compiled. :rolleyes:
Blair
04-01-2005, 04:09 PM
Actually I lied (or he remade them). So is there a special place I should put his make filles for Mono? I could not really find an appropriate place on the wiki
blair
TomServo
04-01-2005, 04:53 PM
Can make a new post under the "Developer" forum and put the files there.. or on the Wiki.. under theDevelopers section.. just add a new page there.
We can always move it later. :)
Dion L. Johnson II
04-02-2005, 11:16 PM
Please, please pick something that will not require .NET "framework". Thanks.
Originally posted by Dion L. Johnson II@Apr 2 2005, 03:16 PM
Please, please pick something that will not require .NET "framework". Thanks.
Quoted post
Wether we like it or not, I believe the .NET framework is here to stay, and it is the way of the future. If I remember right, XP is built on a .NET framework, and I doubt Microsoft will be backing down anytime soon.
stief
04-03-2005, 01:53 AM
You may be right that WW can no longer be .NET free, but NASA is not Microsoft, and Microsoft is not the future.
Thanks to the open sourcers who are working on trying to make an OS X/Linux Port.
Cheers.
Originally posted by stief@Apr 2 2005, 05:53 PM
You may be right that WW can no longer be .NET free, but NASA is not Microsoft, and Microsoft is not the future.
Thanks to the open sourcers who are working on trying to make an OS X/Linux Port.
Cheers.
Quoted post
I was intending to say that since .NET is a M$ invention, they won't be backing down from .NET, and windows won't be .NET free. But IMHO, wether a good thing or not, I don't see M$ going away any time soon (although Linux is gaining ground), but that's really off-topic and bordering on political and really should not be here, but I wanted to clarify. ;)
Long live open source and Linux!
Guest
04-06-2005, 11:09 AM
My opinion :
Mono + GTK# + OpenGL#
GTK# is mature and well integrated on Linux and integrate quite well on Windows.
Mono, GTK# and OpenGL# are cross-plateform.
You will not have to do any plateform specific works.
blairj
04-07-2005, 12:54 AM
The mono make files are in the wiki under Development porting. Sorry it took so long I could not seem to register on the wiki on my work machine (probably some proxy issue :(
blair
Popey
04-08-2005, 10:27 AM
Hello everyone !
I believe QT and openGL would be great for developing a multi-platform version of WW !
OpenGL is the reference for multi-plateform 3D graphics, and QT is a quite powerfull multiplateform API (a well known example of QT-based software is KDE)
Moreover, QT4 will be GPL for windows. Therefore, it will GPL on macOS, linux and windows. Since WW is open source, I believe this framework perfectly fits the needs !
Gerard Iglesias
04-08-2005, 10:31 AM
Originally posted by cmaxwell@Sep 26 2004, 11:52 AM
I'm not too much of a Linux person, but at least for OSX, there's the Cocoa, OpenGL approach. Possibly the use of GLUT. What else is there that people would like to use?
Quoted post
As a OSX/Cocoa/OpenGL programmer I would go the Cocoa/OpenGL way, with good design we can succeed to share the maximum of code between the different versions.
Sincerely, I am tired to see al these crappy cross platform applications around, a PC is cheap, then if an OSX version is going to be created then this version need to be a true OSX application
I would be wiling to participate to this effort in case of OpenGL and Cocoa are used for the project.
Best regards
Gerard
TomServo
04-08-2005, 12:55 PM
All it is really going to take is someone taking the source and STARTING. It's all out there any anyone can grab it and look at it and start hacking it up.
Personally.. I am trying to find some information out from Apple about geting some hardware/software donations for the porting.. but not luck as of yet.
Coca does look good.. I was reading up on it the other week. And OpenGL.. well, the devs have been discussing that, heatedly at times, on the IRC channel for a while now. :)
Popey
04-08-2005, 01:10 PM
Cocoa surely can be great, but imho, it requires a realy good developer with good development practices, and a serious pre-coding reflexion, since objective C and cocoa permit lots of things that can be wonderful, but that can lead to crappie, unmaintainable code if misused.
Moreover, if the project is to keep a maximum of code common to many platforms, a good design becomes even more important.
I would agree with TomServo : "All it is really going to take is someone taking the source and STARTING", but starting to study the code and elaborating a design, more than starting to write code ...
TomServo
04-08-2005, 01:57 PM
That sounds like the best place to start IMHO. The only problem is.. no one wants to do that.. well.. no we did have one person.. but he wanted to be paid to do the port.
What we need is some people inside Apple.. maybe we can float a few "Education.. good. World Wind.. good. Running on a Mac.. good. Hardware donations.. good." ;)
Hopefully sometime this summer I will have a Mac Mini at least... not a powerhouse dev computer... but enough to start some kind of work.
And someone studing the code may find ways to improve the Windows version as well.
farib
04-11-2005, 09:32 AM
Originally posted by Popey@Apr 8 2005, 01:27 AM
Moreover, QT4 will be GPL for windows. Therefore, it will GPL on macOS, linux and windows. Since WW is open source, I believe this framework perfectly fits the needs !
Quoted post
I agree Qt is a great toolkit (as I know how to dev with it), however it is GPL and not NASA OpenSource licenced, so there might be a slight licencing issue.
Guest
04-13-2005, 07:08 PM
Hi,
porting WorldWind to java + JOGL/java3D + some helping code in C/C++ (JNI) would be a great path to portability. Of course it's not the best solution for performance, but for us would be so interesting than we'ld be able to add a couple of full time developpers for this.
And, of course, Eclipse it's the ideal tool for doing the work with. It runs equaly on windows, linux, mac or sun.
greetings
Luis W. Sevilla
gvSIG development Team
Guest
04-17-2005, 12:41 PM
Right, I would also be interested in evolving this to a Java / Eclipse project.
This is the best medium term strategy where you have both the best toolset, best portability and best productivity.
There are many people interested in the Java port, so why not just go and do it?
Regards,
-Tommy
Guest
05-06-2005, 12:09 AM
Okay, it seems like you guys know what you're talking about. I think it would help everyone out (especially the World Wind programmer) if you created a list here (http://www.worldwindcentral.com/wiki/Mac_Port_Collaboration) that explained which programming languages you decide are the best to use, and a list of people who are willing to devote some time into porting World Wind.
Nick
Beansprout
05-06-2005, 12:25 AM
If people could register on the forums/Wiki that would be great too....help us get to know you :)
NGerda
05-06-2005, 12:33 AM
I'm Nick, replier #99.
NGerda
05-06-2005, 12:41 AM
Let me know what you guys think of the wiki site (http://www.worldwindcentral.com/wiki/Mac_Port_Collaboration).
Nick
Philippe PUTTAERT
05-11-2005, 04:35 PM
Originally posted by cmaxwell@Sep 26 2004, 11:52 AM
Hey future developers, contributers. I think it's up to me for the time being to try and get the OSX/Linux effort started on the right foot by trying to get the preferred specifications drawn up. I want to choose a language and such for the efforts such that it appeals to as many developers as possible. Let's first start by listing the technologies that are available.
I'm not too much of a Linux person, but at least for OSX, there's the Cocoa, OpenGL approach. Possibly the use of GLUT. What else is there that people would like to use?
Quoted post
Hello open-source developpers, did anyone try to port the application using either "portable.NET" (DotGnu project; http://www.dotgnu.org) or "Mono" from Novell (http://www.mono-project.com). These projects are fairly well advancedThe risk is that M$ succeed in getting a liense for the totallity of the API of .NET. In such a case, the only possibility will be to re-write everything from scratch. A nice challenge for the universities of the world !
Guest_ChriS_00
05-13-2005, 03:03 PM
I've been skimming through the forums and had a look at the code but it is not too clear to me where to start (personnally I am not familiar with programming on win32). Is there somewhere a bit of documentation on the general achitecture of the app., on the protocol used,...? It is my impression that, if this was available, it would be easy do have a short go with ones favorite solution and see how it feels...
TomServo
05-13-2005, 03:40 PM
No.. the developers are a bit lacking in documentation writing.. and commenting of code (they are getting better though).
The best way to go about getting information is to get on IRC, one of the freenet servers and log into #worldwind and #worldwind-dev. Most of the devs are there a good part of the day/night off and on.
one of the freenet servers
I think he meant freenode :P
Originally posted by Guest_ChriS_00@May 13 2005, 05:03 PM
I've been skimming through the forums and had a look at the code but it is not too clear to me where to start (personnally I am not familiar with programming on win32). Is there somewhere a bit of documentation on the general achitecture of the app., on the protocol used,...? It is my impression that, if this was available, it would be easy do have a short go with ones favorite solution and see how it feels...
Quoted post
Well here is some info. The language used is C#, the CLI VM used is .NET and the graphics library used is Managed DirectX 9.0c.
My personal view: By using C# they miss the efficiency and optimisation of C++ managed code. VC++ produces the best optimised MSIL and also provides the best optimisation abilities for .NET. This is especially true in VS 2005, where C++ is officially considered the systems programming language of .NET.
Some references:
http://msdn.microsoft.com/msdnmag/issues/0...ns/default.aspx (http://msdn.microsoft.com/msdnmag/issues/05/01/COptimizations/default.aspx)
http://pluralsight.com/blogs/hsutter/archi...10/05/2672.aspx (http://pluralsight.com/blogs/hsutter/archive/2004/10/05/2672.aspx)
http://blogs.msdn.com/branbray/archive/2003/11/07/51007.aspx
http://www.accu.org/conference/presentatio...8keynote%29.pdf (http://www.accu.org/conference/presentations/Sutter_-_Is_C++_Relevant_on_Modern_Environments_ %28keynote%29.pdf)
Apparently the development team were under the impression that "C# is the best language for .NET". Actually C# is in the middle of VB and C++ in terms of abilities, and not on the top.
There are many things about what C++ provides more in comparison to C#.
In .NET front, some are easier deterministic destruction, low level CLR features not available in other languages, more optimised MSIL code (Managed DirectX is written in C++, by the way).
In addition, C++ provides the ability to use managed and unmanaged code mixed, that is it could use OpenGL along with .NET, and not be constrained to Managed DirectX (Managed DirectX is OK for Windows, I am not arguing that).
In VC++ 2005, it also gets templates along with generics for managed code, Profile Guided Optimisation and OpenMP standard (data parallelism) which are not available to other languages.
I consider .NET to be a good choice, Managed DirectX good choice considering Windows and C# to be relatively OK (I am mumbling just because efficiency is a major concern for World Wind that's why, otherwise C# is OK for regular application programming, as also Delphi .NET etc).
In any case, the application is great! :rolleyes:
Here is a page of mine about C++/CLI, given the message:
http://www23.brinkster.com/noicys/cppcli.htm B)
TomServo
05-13-2005, 05:03 PM
Originally posted by ivr@May 13 2005, 10:48 AM
Apparently the development team were under the impression that "C# is the best language for .NET". Actually C# is in the middle of VB and C++ in terms of abilities, and not on the top.
Quoted post
Actually, it was the language Chris was the most comfortable with using when he started the project.
TomServo
05-13-2005, 05:03 PM
Originally posted by bull@May 13 2005, 10:35 AM
I think he meant freenode :P
Quoted post
yea, yea :P
Beansprout
05-13-2005, 05:14 PM
Originally posted by ivr@May 13 2005, 03:48 PM
Well here is some info. The language used is C#, the CLI VM used is .NET and the graphics library used is Managed DirectX 9.0c.
My personal view: By using C# they miss the efficiency and optimisation of C++ managed code. VC++ produces the best optimised MSIL and also provides the best optimisation abilities for .NET. This is especially true in VS 2005, where C++ is officially considered the systems programming language of .NET.
Some references:
http://msdn.microsoft.com/msdnmag/issues/0...ns/default.aspx (http://msdn.microsoft.com/msdnmag/issues/05/01/COptimizations/default.aspx)
http://pluralsight.com/blogs/hsutter/archi...10/05/2672.aspx (http://pluralsight.com/blogs/hsutter/archive/2004/10/05/2672.aspx)
http://blogs.msdn.com/branbray/archive/2003/11/07/51007.aspx
http://www.accu.org/conference/presentatio...8keynote%29.pdf (http://www.accu.org/conference/presentations/Sutter_-_Is_C++_Relevant_on_Modern_Environments_ %28keynote%29.pdf)
Apparently the development team were under the impression that "C# is the best language for .NET". Actually C# is in the middle of VB and C++ in terms of abilities, and not on the top.
There are many things about what C++ provides more in comparison to C#.
In .NET front, some are easier deterministic destruction, low level CLR features not available in other languages, more optimised MSIL code (Managed DirectX is written in C++, by the way).
In addition, C++ provides the ability to use managed and unmanaged code mixed, that is it could use OpenGL along with .NET, and not be constrained to Managed DirectX (Managed DirectX is OK for Windows, I am not arguing that).
In VC++ 2005, it also gets templates along with generics for managed code, Profile Guided Optimisation and OpenMP standard (data parallelism) which are not available to other languages.
I consider .NET to be a good choice, Managed DirectX good choice considering Windows and C# to be relatively OK (I am mumbling just because efficiency is a major concern for World Wind that's why, otherwise C# is OK for regular application programming, as also Delphi .NET etc).
In any case, the application is great! :rolleyes:
Here is a page of mine about C++/CLI, given the message:
http://www23.brinkster.com/noicys/cppcli.htm B)
Quoted post
To save this debate carrying on...that info belongs in this thread:
http://forum.worldwind.arc.nasa.gov/index.php?showtopic=8
;)
eugene33
05-14-2005, 04:47 PM
Originally posted by TheBeansprout@May 6 2005, 01:25 AM
If people could register on the forums/Wiki that would be great too....help us get to know you :)
Quoted post
I registered, I'm not a Dev but if I can help for porting WW on Linux, let me know. :)
Beansprout
05-14-2005, 05:39 PM
Originally posted by eugene33@May 14 2005, 03:47 PM
I registered, I'm not a Dev but if I can help for porting WW on Linux, let me know. :)
Quoted post
You're the dev, you tell me :P
Here's some linkies:
http://www.worldwindcentral.com/wiki/How_to_Get_Involved
http://issues.worldwind.arc.nasa.gov
And a mailing list etc around somewhere.
Pop along to #worldwind on freenode, or use http://chat.worldwindcentral.com, people are around at pretty random times!
See ya 'round, welcome :)
airvan
05-15-2005, 01:08 AM
Originally posted by eugene33@May 14 2005, 10:47 AM
I registered, I'm not a Dev but if I can help for porting WW on Linux, let me know. :)
Quoted post
another link: Mac_and_Linux_Port_Collaboration (http://www.worldwindcentral.com/wiki/Mac_and_Linux_Port_Collaboration)
zviratko
05-21-2005, 02:18 AM
I will post my opinion as a mere user/admin, not a developer
I see those options:
1) create multiplatform code that will compile everywhere - that means
a) C/C++, OpenGL using the most standard feature set possible
b) high level 3d graphics engine scripted with World Wind
+ some platform dependent code (taskbar/WM goodies, integration with other applications)
2) create multiplatform code that will RUN everywhere
a) .NET - is it really multiplatform? mono barely runs on OSX, is it available for other UNIXes? not really (not without hassle), is it NATIVE to other OSes than M$ Windoze? It isn't! It was not meant to be multiplatform (hey, how many archs do Windows run on? :))
b) Java - yes it can be fast, but fast on a fast machine. Try using an average home PC (PIII 1GHz, 256 RAM, slow as hell and made from the cheapest parts). Java is a no-go when it comes to low end home or education uses.
3) create separate projects for windows/unix port, that means splitting development of the backend (unified logic for the earth abstraction - weather + maps + terrain + cities...) and the frontend (3D rendering, GUI, networking, any other libraries (like GPS support and application plugins)).
I'd make a strong team of developers working on the core - world model abstraction (C++, property of NASA, some developer friendly non-GPL licence), and have freelance developers port it to whatever platform they want using GPL exported API. You want an IRIX port? Code it, costs nothing.
LeTic
06-03-2005, 12:40 AM
If people could register on the forums/Wiki that would be great too....help us get to know you smile.gif
I registered on the wiki as well. I am a dev but is there anybody working on the Linux port yet ?
Originally posted by LeTic@Jun 3 2005, 02:40 AM
I registered on the wiki as well. I am a dev but is there anybody working on the Linux port yet ?
Quoted post
I am just wondering... Let's suppose a Linux/Mac (source code portable) version comes out written in C++ and OpenGL, if properly written, would also compile for Windows with few tweaks. So we would end up with two WW versions for Windows.
TomServo
06-03-2005, 01:59 PM
Originally posted by ivr@Jun 2 2005, 07:18 PM
I am just wondering... Let's suppose a Linux/Mac (source code portable) version comes out written in C++ and OpenGL, if properly written, would also compile for Windows with few tweaks. So we would end up with two WW versions for Windows.
Quoted post
"yes" until they were merged into one. One of the developers will have to give a better reply than I :)
TomServo
06-03-2005, 02:01 PM
Originally posted by LeTic@Jun 2 2005, 06:40 PM
I registered on the wiki as well. I am a dev but is there anybody working on the Linux port yet ?
Quoted post
We have had a few "I am looking at the code now" and then .. silence. As far as I know.. no one has really stepped up to the plate as a full dev on board working on a port project.
Your best chance to see what is going on is to get on the IRC channel since 99.9% of the devs are on there.
Guest
06-08-2005, 05:15 PM
May be just releasing the protocol specs to receive the data to local clients and some of the theory of organizing / displaying them (like the GIS-Format etc) would be enough, to start some small portable client in whatever language anybody likes (i still prefer c++ over anything, but java is the most portable)
I also hesitate to look into the c# code for the protocol specs, but I will give it a try today
enough bad talk already, but c# was really the worst ever solution at the moment to do some "portable" code, as its -currently- only real portable inside ms environments - which is not the way to go for me at least
you could have tried to use opengl as an alternative to directx, never mind, thanks for releasing it open source (just saw this one first today)
installing mono with the desired libraries is a pain at the moment, as even the xlib libraries have to be recompiled for full functionality (at least for my current versions of my system, which is already quite old ... 1 year)
Originally posted by Guest@Jun 8 2005, 07:15 PM
installing mono with the desired libraries is a pain at the moment, as even the xlib libraries have to be recompiled for full functionality (at least for my current versions of my system, which is already quite old ... 1 year)
Quoted post
I think you should give a try to White Box Enterprise Linux:
http://www.whiteboxlinux.org
I have been very impressed since I came across it. :)
I think C++,OpenGL and OpenSceneGraph is the best choice.
when the worldwind mac version comes??????
TomServo
07-27-2005, 09:27 PM
2010 we will have the mac version ready... sooner if we get any mac/linux devs to actually commit to help on the port.
discoverer
07-30-2005, 11:49 AM
hi
i just want to use the new system of cartography by satellite images , cana someone fill me in.
Leonard Reder
08-31-2005, 01:59 AM
Hi Chris,
I am not sure if you have done anything but I would be interested to try a port on one of our linux machines at JPL. We use several flavors of linux but the import thing would be to build using the GNU C++ compiler, OpenGL and a port linux window tookkit. I like Qt much better then GLUT but anything will work.
Len
Originally posted by cmaxwell@Sep 26 2004, 11:52 AM
Hey future developers, contributers. I think it's up to me for the time being to try and get the OSX/Linux effort started on the right foot by trying to get the preferred specifications drawn up. I want to choose a language and such for the efforts such that it appeals to as many developers as possible. Let's first start by listing the technologies that are available.
I'm not too much of a Linux person, but at least for OSX, there's the Cocoa, OpenGL approach. Possibly the use of GLUT. What else is there that people would like to use?
Quoted post
Confused
09-06-2005, 02:38 PM
Please someone tell me that the past year just hasn't gone by without anyone actually doing anything? That is kind of sad if that is the status. The previous post here makes for hope.
how hard can it be, a real opensource app should be programmed crossplatform.. just type ./configure and then make.... win, lin, ux, etc shouldn't matter.
Originally posted by Confused@Sep 6 2005, 06:38 AM
how hard can it be, a real opensource app should be programmed crossplatform.. just type ./configure and then make.... win, lin, ux, etc shouldn't matter.
Quoted post
Sure, if it is planned years ahead to be a huge success, become super-popular, and desired to be ported. But WW wasn't. As it has been stated elsewhere, WW was not originally planned to become what it has. It was a project that Chris did on the side, using the languages he knew. It's up to those that know how to program/port into linux/mac/etc to take the project from here - and not many of those have stepped up to the plate. Congrats to pronvit for stepping up and doing something - creating WW2D (http://forum.worldwind.arc.nasa.gov/index.php?showtopic=4427&st=0&#entry24298). What is needed for WW to become cross-platform is more people like pronvit who are willing to take action. And World Wind is very much a "real" open source app, and the open-source spirit is alive and well. Just because it isn't cross-platform doesn't mean it isn't a "real" open source project.
nosilleg
09-07-2005, 09:23 AM
Check out the Road Map (http://www.worldwindcentral.com/wiki/Road_Map). Version 1.5 will potentially be cross platform.
Jason
nosilleg
Originally posted by Confused@Sep 7 2005, 01:38 AM
Please someone tell me that the past year just hasn't gone by without anyone actually doing anything? That is kind of sad if that is the status. The previous post here makes for hope.
how hard can it be, a real opensource app should be programmed crossplatform.. just type ./configure and then make.... win, lin, ux, etc shouldn't matter.
Quoted post
Guest
09-28-2005, 11:49 AM
excellent news.
Robert Steele
10-10-2005, 10:44 PM
Silly question, perhaps, but has anyone tried talking to Apple?
Richard Neill
10-14-2005, 03:19 AM
What about Wine?
I think that you *might* have a good first step by making sure it runs under Wine (and providing a quick howto with what you did).
Most windows programs "almost" run under Wine - including MS Office, so it's probably quite easy.
When you begin the port, I'd recommend WX.
Richard
Laura Garcia
10-31-2005, 07:51 PM
Originally posted by cmaxwell@Sep 26 2004, 11:52 AM
Hey future developers, contributers. I think it's up to me for the time being to try and get the OSX/Linux effort started on the right foot by trying to get the preferred specifications drawn up. I want to choose a language and such for the efforts such that it appeals to as many developers as possible. Let's first start by listing the technologies that are available.
I'm not too much of a Linux person, but at least for OSX, there's the Cocoa, OpenGL approach. Possibly the use of GLUT. What else is there that people would like to use?
Quoted post
Hi! I am not a developer by any stretch of the imagination. I just wanted to encourage you to get this software ported to the Mac OSX. I wish I knew how to do it myself; I would gladly help you if I could. I have great admiration and respect for people who do this sort of thing for us Mac fanatics. A pox on Microsoft!!! ;)
Good luck in your efforts.
Regards,
Laura Garcia
Redmond, WA (and no, I am NOT a disgruntled exMicrosoft employee! I just want to keep my Mac a "virgin" -- no PC emulators for me!)
Beansprout
10-31-2005, 10:17 PM
Originally posted by Robert Steele@Oct 10 2005, 10:44 PM
Silly question, perhaps, but has anyone tried talking to Apple?
Quoted post
We've talked to lots of people. I belive Sun are being forthcoming, but the dialog is between NASA and them at the moment, we (the community) only know bits.
Benjamin von Cramon
11-15-2005, 03:58 AM
I wish to add my thanks and encouragement to those devoted to bringing World Wind to OSX. Your efforts are highly appreciated.
killemall
11-23-2005, 12:55 PM
Originally posted by Benjamin von Cramon@Nov 14 2005, 07:58 PM
I wish to add my thanks and encouragement to those devoted to bringing World Wind to OSX. Your efforts are highly appreciated.
Quoted post
sorry doods,kindof a newbie. your sayin thanx to the people that are developing ww for os x,
i have been reading most of the whole discussion, (ok alot if it i dont have an idea what there chating about). but i cant seem to see where its says yes there wil be a linx r osx version and when. :blink:
if i have mist it and there are at work at the moment, well i can only offer my thanx aswell...
if there is anything i can do, and i wud hope other mac users wud offer any help that they can possiblly give...(i no i said i was sortof newbie,,,in the term of porting and all that stuff, i have been using macs for at least 6 & haft years, i do know quite a bit about other commans, ie the terminal tasks. but i will do a bit of research on the matter of portting.
:rolleyes:
Originally posted by killemall@Nov 23 2005, 01:55 PM
but i cant seem to see where its says yes there wil be a linx r osx version and when. :blink:
Quoted post
http://www.worldwindcentral.com/wiki/Road_Map#1.5
:P
Guest
11-24-2005, 01:08 AM
Originally posted by m_k@Nov 23 2005, 08:01 AM
http://www.worldwindcentral.com/wiki/Road_Map#1.5
:P
Quoted post
cheers for the link, i got another Q, totally of the point...whats happening here, the way people are trying to write ww of links and osx, was wondering is the any other places where people might be doin the same for 3d studio max, i have been searching ffor months on this matter. i know its has to be alot more complicated, 3ds max being such a larger program.
but any feedback what so ever, wud be good, and i am most greatful for the feedback i get.
still trying to find out info on porting and that,,, is there anywhere that will break it down for me, basics wud be good (nice and simple) lol. nah wheres good to go learn?
thanx
gav :blink:
I agree with the QT idea. There is already a good QT GIS tool, QGIS, if you want to get a feel for how well it works across platforms. The new version of QT (4) has built in opengl support, is free for mac, linux, and windows if it is distributed open source, and it is very easy to get started in QT (c++ with extra libraries). Any one know the downsides of using this technology?
Originally posted by Tori@Jan 23 2006, 10:09 AM
I agree with the QT idea. There is already a good QT GIS tool, QGIS, if you want to get a feel for how well it works across platforms. The new version of QT (4) has built in opengl support, is free for mac, linux, and windows if it is distributed open source, and it is very easy to get started in QT (c++ with extra libraries). Any one know the downsides of using this technology?
Quoted post
Just for reference, Google Earth is supposedly written in QT(3). Thus we know it is a tool that has a lot of possibilities.
moldy86
02-28-2006, 11:40 AM
10 year olds don't use linux.. plus if they do then they can for sure figure out how to install it...
:blink: When's there going to be a port of World Wind to Mac and Linux? Any luck yet?
neighborlee
03-17-2006, 10:37 PM
<div class='quotetop'>QUOTE(RC @ Mar 5 2006, 08:04 AM) Quoted post</div><div class='quotemain'>
style_emoticons/<#EMO_DIR#>/blink.gif When's there going to be a port of World Wind to Mac and Linux? Any luck yet?
[/b][/quote]
I would also like to know..I still can't believe nasa of all organizations would not be crossplatform minded in this day and age..budget crunches ? ;-)
sigh
neighborlee
pronvit
03-17-2006, 11:13 PM
<div class='quotetop'>QUOTE(neighborlee @ Mar 18 2006, 01:37 AM) Quoted post</div><div class='quotemain'>
<div class='quotetop'>QUOTE(RC @ Mar 5 2006, 08:04 AM) Quoted post</div><div class='quotemain'>
style_emoticons/<#EMO_DIR#>/blink.gif When's there going to be a port of World Wind to Mac and Linux? Any luck yet?
[/b][/quote]
I would also like to know..I still can't believe nasa of all organizations would not be crossplatform minded in this day and age..budget crunches ? ;-)
sigh
neighborlee
[/b][/quote]
Patrick Murris is working on adding 3D view to WW2D and I'm working on better UI. Currently it's in alpha but I hope soon we will show you version of WW2D with these new great features.
patmurris
03-19-2006, 08:37 PM
<div class='quotetop'>QUOTE(cmaxwell @ Sep 26 2004, 02:52 PM) Quoted post</div><div class='quotemain'>
Lots of languages, but which one ?
[/b][/quote]
After reading most of this discussion and looking around in irc chat transcripts and other 'road map' related material, i must admit the picture is still very fuzzy - to say the least style_emoticons/<#EMO_DIR#>/rolleyes.gif
So here is what i understand of the situation regarding a future cross-platform version of NWW :
(please correct me if i'm wrong !) WW 1.5 will be a new code base built on a new architecture that will both fit NASA objectives for WW and be easier to port.
There will be two versions of the code : C#/DX as now and a Java/JOGL (https://jogl.dev.java.net/) version. Sun may (will ?) help on the Java/JOGL port.
ETA: anyone's guess ? As of this writing, 1.5 seems to be still on paper - any coding yet ?
So if i did get it right, that pretty much answer the september 2004 question, does it ?
Missy
03-29-2006, 01:35 PM
Wesley- would you please contact me via email at lilcntrygrrl17@hotmail.com -melissa-
TomServo
04-03-2006, 05:58 PM
<div class='quotetop'>QUOTE(patmurris @ Mar 19 2006, 04:37 PM) Quoted post</div><div class='quotemain'>
<div class='quotetop'>QUOTE(cmaxwell @ Sep 26 2004, 02:52 PM) Quoted post</div><div class='quotemain'>
Lots of languages, but which one ?
[/b][/quote]
After reading most of this discussion and looking around in irc chat transcripts and other 'road map' related material, i must admit the picture is still very fuzzy - to say the least style_emoticons/<#EMO_DIR#>/rolleyes.gif
So here is what i understand of the situation regarding a future cross-platform version of NWW :
(please correct me if i'm wrong !) WW 1.5 will be a new code base built on a new architecture that will both fit NASA objectives for WW and be easier to port.
There will be two versions of the code : C#/DX as now and a Java/JOGL (https://jogl.dev.java.net/) version. Sun may (will ?) help on the Java/JOGL port.
ETA: anyone's guess ? As of this writing, 1.5 seems to be still on paper - any coding yet ?
So if i did get it right, that pretty much answer the september 2004 question, does it ?
[/b][/quote]
Chris is expecting to start work proper on 1.5 near the end of the week or early next week. He "says" October for a beta release.. but we have all seen how sticking to dates we have been style_emoticons/<#EMO_DIR#>/wink.gif
vBulletin® v3.7.1, Copyright ©2000-2013, Jelsoft Enterprises Ltd.