need help creating a teaching aid
hi,
i jut want to know whether java could be used to make a learning aid for aircraft dynamics which basically involves making a 3D model of an aircraft and coupling the equations of motion to this 3D model. it also needs to take inputs from the user to simulate the dynamics of the aircraft in different conditions.
could anyone tell me whether this is possible in java cause i'm trying to find which programming language would best suit this. also if there are any other programming language which could be used for this purpose please let me know. it is necessary that the simulations has to be displayed on a web page.
cheers!
[656 byte] By [
dropa] at [2007-11-27 9:11:38]

I'm sure it's possible in Java; the real question is whether it's feasible.
The deciding criterion will probably be what kind of supporting libraries and tools there are out there. And whether these libraries are well-supported, have a good API, and whether you like using them.
Probably you should search for such libraries first. sourceforge.net is a good place to start. Google is your friend. And also ask on aircraft design forums to see what people like to use for this sort of thing. The language you choose will probably the one that supports the best tool for the job.Also keep in mind that there may be multiple libraries involved; for example perhaps the tool you select will be written in C but will have a programming interface using, say, Python.
What do you mean by "the simulations has to be displayed on a web page"? Do you mean that graphics or other data, derived from the simulations, will be displayed on a web page? Do you mean that an interactive simulation should be on a web page (like a java applet or a Flash animation)? Do you mean that the simulation needs to be tightly integrated into a web server?
first of all thank you! i'll have a look at the libraries which is helpful for this project. and as for your question, it should be an interactive simulation of the aircraft in different modes ( like short period oscillations). i don't have a lot of experience in programming but i have enough time to learn a language and use it for my project. which language do you think would be most suitable for this?.
dropa at 2007-7-12 21:57:24 >

Here's why I ask. Running a simulation on some computer and posting its results on a web site is a very different thing from integrating the simulation into the web site itself, and that is additionally a very different thing from running the simulation on the user's browser when they look at the web site. The last case can be tricky because you may or may not have any control over the computers that a person visits the web site with. Plus the last case constrains the kinds of simulations you can do -- for example, I have no idea whether ActionScript (I think it's called -- the scripting language for Flash) is even capable of doing the kinds of simulations you want to do.
I think the very first thing you need to do, is to write use cases for the system you want. Include the major functionality you need. Then it would be a lot easier to analyze those use cases for feasibility.
In particular, what is the relationship between the web site and the simulations? Does the user necessarily need to run the simulations in a browser? Who are the users; what is your relationship with them? Can you guarantee what kind of software is installed on their computers?
the project is to make a website which would show the users ( students studying aircraft dynamics as part of aerospace engineering) different modes of the aircraft and the student should be able to change different parameters (like distance between the tail and the wings) and able to update the simulation on the web page. i am looking for a language where it would be easy to implement equations and also apply these equations to the model aircraft.
dropa at 2007-7-12 21:57:24 >

Solution from Java will be Applet(Java programs that run in browser).
And to generate a 3D picture, you need to send all the needed jars to the client machine. And then, browser will start using almost all the resources available to it. It may even result in browser crash sometimes.
And I dont think its feasible in any language to do it on web.
Bottom line - Generating 3D images is fine, but the deployment platform should be changed.
Well, you could:
1) Write a java application that does the simulation, and deploy it as a standalone application. Your users could download it from your web site.
Advantage: the user wouldn't need to have the browser running while they ran the simulation, which might be helpful if it uses a lot of resources. Disadvantages: the user has to have Java installed; it has fewer options for interactivity with the server; the simulation is run on the local machine so the user needs to have a sufficiently powerful computer (I'm assuming that the simulation will be resource-hungry).
2) Write a java application that does the simulation, and deploy it as an applet (embedded in a web page). Advantage: easier access to the simulation; easier interactivity in other browser windows, etc. Disadvantage: user has to have Java installed; user must have sufficiently powerful computer. You could do both (1) and (2) at the same time, using the same code, by the way, if you plan it well.
3) Write a Flash animation that does it, a deploy it embedded in a web page.
Advantage: Wider support. Disadvantage: You must buy a Flash authoring environment; Flash may not be suitable.
4) Write a native application (or, several versions, for different platforms) and let the users download them and run them locally. This is basically like (1), only it's not in Java.Advantage: you can tweak things heavily if you need to squeeze every ounce of performance out of the system (assuming you're willing to learn assembly language); this might be the only option if the library/toolkit you select is in C or C++. Disadvantage: you have to compile multiple versions of the simulation; local GUI toolkits and the like might vary greatly (or you'll have to buy a more platform-independent GUI toolkit like Qt); harder to program; users will need to have a sufficiently powerful system.
5) Write an application that does the simulation, and invoke it via the web server. This would be a regular web application: users would send data via HTML forms, and they'd get data back in the form of content on a web page, images, etc. Advantage: this is the most flexible solution. You can tie just about anything to a web server. The user doesn't need an especially powerful machine; nothing is run locally except the web browser. It might also be easier to write collaboration functionality between students. Disadvantage: much less interactive.
You can also do combinations of these; for example you could put the bulk of the simulation on the server, and then have a Flash animation or a Java applet or an embedded QuickTime movie (maybe) that lets the user examine (but not necessarily modify) 3d models.
