Outerra forum

Please login or register.

Login with username, password and session length
Advanced search  

News:

Download Outerra Tech Demo. Unofficial Outerra Discord server, MicroProse Discord server for OWS.

Pages: 1 2 3 [4] 5 6 ... 12

Author Topic: AeroKinetics Mod  (Read 174404 times)

Uriah

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 569
  • We do these things not because they are easy. -JFK
Re: AeroKinetics Mod
« Reply #45 on: December 09, 2014, 03:26:15 am »

Levi just okay'd me to post his message including a download link for the J246 Test so you can see for yourself. You can edit the camera positions from: J246/FDM/aircraft/J246.xml

Quote
Hello Uriah,
Thank you for the compliment! And sorry for late reply.

As I'm not a fan of rockets, I'm not sure how those things work, and how you control them..., but that's definitely a very interesting project you have there, and nice models btw! ;)


Ok, I took a look at the J246 aircraft and engine files, and I assembled a test rocket with those to see if it works, and it does. Also, I've added five structure contact/collision points inside ground_reactions to avoid the rocket to sink in to the ground.

Here you have it to take a look and see how your rocket could be set up: Download http://www.mediafire.com/download/3yo02nn8tc1b9fi/J246_Test.rar.
All necessary JSBSim files are located here: packages\Levi\J246\FDM
Btw, the 3D model is another rocket, not actually the J246, but Saturn V-C.

When you import the model inside Outerra, I would recommend you to use FBX importer (CTRL+F7) instead of Collada. In the importer you wont have to configure anything, just import the model with default settings.

After the import, you manually edit the .mtl file and most important, the .objdef file. Be careful, the .objdef file will be replaced with a default one each time you re-import your model, just as the .mtl file.

The script (.js) file is mainly used for animations and sounds. All the dynamics, control surfaces, etc... are managed within JSBSim .xml files.


Also, I must say that I'm not an expert at all regarding JSBSim, I'm just a novice. I would better ask user bomber (Simon Morley) for specific JSBSim questions, as He's much more experienced in this area.

Don't hesitate to ask me any other question you have, I'm always happy to help where I can.  :)

Regards,
Levi.
Logged

Uriah

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 569
  • We do these things not because they are easy. -JFK
Re: AeroKinetics Mod
« Reply #46 on: December 09, 2014, 10:20:15 am »

You can download the Jupiter 426 install here: http://www.mediafire.com/download/l5fl1vghciz1hcu/J246.GNU.otx

NOTES:

Rockets are not vertically stable before launch, even with ground-reactions, because J246 from JSBSim includes an XML script for jettisoning the stages, providing flight data such as velocity, and most importantly the "hold-down" force required to keep the rocket stable before launch. Since Outerra uses Javascript for this I am not sure how to implement these important features elsewhere or in Java. I must consult the oracle. ;)

Before launch you must wait a few minutes after you spawn the rocket, and it will cease to move. If you throttle up 100% first and then press 'E' to launch, it should have enough initial longitudinal stability to fly straight.... or else it will have uncontrollable pitching moments and go into a spin. If you can minimize that initial movement at launch everything works fine. Still trying to figure out why I cannot edit how far away the camera is positioned but no luck there yet either.

WARNING!!! Outerra froze up on me a few times after leaving a rocket in flight, re-importing the rocket and starting Outerra again. It fails to initialize the world because it is trying to load the model in flight which has been replaced by a new version. DO NOT DO THIS!!! I had to re-install Outerra to correct the problem as I cannot seem to remove it from the cache folder to erase it from the world. Again try at your own risk. I now make sure to pause the simulation (space bar), exit the rocket and delete it before closing OT.

Regards,
Uriah









Logged

HiFlyer

  • Hero Member
  • *****
  • Posts: 1788
  • newbie
Re: AeroKinetics Mod
« Reply #47 on: December 09, 2014, 10:44:57 am »

I'm sure Cameni and Angrypig will help you with this. Working rockets can only be a plus for Outerra.
Logged
Spex: Intel Core i7 6700K @ 4.6GHz / 32.0GB G.SKILL TridentZ Series Dual-Channel Ram / ASUS STRIX GeForce GTX 1080 / Sound Blaster Z / Oculus Rift VR Headset / Klipsch® Promedia 2.1 Computer Speakers / ASUS ROG SWIFT PG279Q ‑ 27" IPS LED Monitor ‑ QHD / 2x Samsung SSD 850 EVO 500GB / Windows 10 Pro

PytonPago

  • Hero Member
  • *****
  • Posts: 2284
  • It´s way too complex, dont let me try to explain !
Re: AeroKinetics Mod
« Reply #48 on: December 09, 2014, 11:08:00 am »

Likewise, I am far better at modeling than texturing, however I am decent so I can revisit textures at a later time, or like I said I hope additional enthusiasts jump on the band wagon and help. I should have the J246 working by tomorrow!

-Uriah

 ... more than just you hoping for Photoshop enthusiasts. ;D

Not sure if de-coupling is possible now. Physics would have to be computed for each part separated (something like a multiple vehicles whyte dynamic script and physics interactions). But im waiting for that too, cause cars could have carts and trucks be possible or trains a little bit closer.
Logged
We are still undeveloped as long as we don´t realize, that all our science is still descriptive, and than beyond that description lies a whole new world we just haven´t even started to fully understand.

M7

  • Hero Member
  • *****
  • Posts: 736
  • newbie
Re: AeroKinetics Mod
« Reply #49 on: December 09, 2014, 11:10:23 am »

This will be amazing when we get smoke and the possibility to attach/detach/jettison different models
Logged

Uriah

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 569
  • We do these things not because they are easy. -JFK
Re: AeroKinetics Mod
« Reply #50 on: December 09, 2014, 11:34:36 am »

Plus multibody physics are supported by JSBSim so it has a higher degree of realism than other space flight simulators, and of course an exquisite environment at any scale.

By the way the stage jettison will work without question, I just need to figure out how to assign the release function to a part and trigger the event because the scripts/J2461.xml file is supposed to perform those actions but it does not work that I know of. It is doing decoupling in JSBSim and removing the mass, just the physical model is not released. The fairings around the Orions Module and Crew Service Module will also jettison to release that third stage.

Here are the core functions I want to get working within a few months in descending order of importance.

Launch Complex/launch pad with working collision body
Functional hold-down force on launch pad
Fully functional JSBSim J246 three-stage rocket into LEO and back
Decoupling stages (action group buttons)
Manual/Autopilot modes
Rocket HUD mode for displaying fuel, velocity and orbit
Fuel consumption and point mass reduction
Parachute (deployed in stages, drogue/main)
Orion module watercraft surface reactions (splashdown)
Rocket engine smoke and flames
Destroy-able parts (from impact, heat, dynamic stress)
Reentry plasma-shock boundary effect
« Last Edit: December 10, 2014, 02:07:21 am by Uriah509 »
Logged

ZeosPantera

  • ||>>-Z-<<||
  • Global Moderator
  • Hero Member
  • *****
  • Posts: 2520
  • #1 Outerra Fan Boy
    • My Youtube
Re: AeroKinetics Mod
« Reply #51 on: December 09, 2014, 01:06:19 pm »

How long does it take to get into orbit? I imagine a very realistic amount!
Logged
"Fear accompanies the possibility of death, Calm shepherds its certainty" - General Ka Dargo

Uriah

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 569
  • We do these things not because they are easy. -JFK
Re: AeroKinetics Mod
« Reply #52 on: December 09, 2014, 01:07:34 pm »

Try it for yourself!
Logged

PytonPago

  • Hero Member
  • *****
  • Posts: 2284
  • It´s way too complex, dont let me try to explain !
Re: AeroKinetics Mod
« Reply #53 on: December 09, 2014, 03:45:29 pm »

Yes, know the script can do stuff, its the jettisoned parts that cant interact afterwards - except, you would do all the parts as separate models - making first hide the correct parts on the rocket itself and making an spawn script, that would at each separation, spawn those "sub-models" at right places , with right forces based on the main ones state ... i think, with a little leading hand from Cameni/Angry, such thing could be possible right now. The better thing of this would be, that you could play with the sub-models scripts extensively too - i thing, some kind of script (with a little flame animation) based on altitude could make the parts "burn off" in atmosphere too, where the animations could be this way largely individual. 

  ... doe, its true, that it would be simpler (well, rather more interesting) to make an engine extension - some kind of dynamic burning animation ( maybe based on the collision mesh form ? ) that would change fitting perfectly the objects form and vector. (so you would see the flame start from the objects surface as real life and not just a big chunk of flame with the object in its center flippin around) It wouldn't be bad, as re-entries will be quite often used when other planets of the Sol system are added and people fly around the space ...

Imagine people on multiplayer seeing in the sky that someone is getting to earth !

Also, nicely extensive plans! Will hold the fingers crossed that it gets done in a form as much it can get, based on your intended plans !
« Last Edit: December 09, 2014, 03:52:36 pm by PytonPago »
Logged
We are still undeveloped as long as we don´t realize, that all our science is still descriptive, and than beyond that description lies a whole new world we just haven´t even started to fully understand.

Uriah

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 569
  • We do these things not because they are easy. -JFK
Re: AeroKinetics Mod
« Reply #54 on: December 09, 2014, 08:14:46 pm »

Pyton, you are talking about reentry plasma during aerocapture correct?



Along with smoke and rocket exhaust, this will.be implemented when the volumetric shaders are introduced to OT. That just isn't as critical to function at the moment with many other features demanding attention before visual effects. It will be done realistically when it comes I am sure. I am going to attempt to created a continuously looped particle system animation and apply an opacity mapped material for rocket exhaust, temporarily until those volumetric sharers roll in. These will be attached to each engine and only visible during the burn. It suffices for now.

That will come in the next upload as well as manual stage decoupling. Those jettisoned parts for a rocket break and burn up when they reenter the atmosphere, eventually parts will have collisions and damage.
Logged

SilentEagle

  • Member
  • **
  • Posts: 54
  • Sim Developer
    • Simulation Developer
Re: AeroKinetics Mod
« Reply #55 on: December 10, 2014, 12:44:30 am »

Excellent concept! I tried my hand at creating a working rocket for Outerra using JSBSim a few months ago.  Since staging and spawning multiple physical bodies is not possible, I had to settle for making a single stage rocket.  I chose to recreate the Redstone rocket from the Mercury program (The same one that carried Alan Shepard on his suborbital flight).  I was able to create a directionally stable rocket that matched acceleration, speed, and altitude test data, but it was a pain, due to the rotation of coordinate axes that was needed for launching the rocket vertically.

I have since written my own flight dynamics engine that I hope to someday implement into the Outerra engine to allow for more general modeling of air and space vehicles.  However, I would be interested in helping you out with this project if you get it off the ground.  I know that Cameni and the team are very busy these days with their military sim contracts.  I have also tried to implement some of my ideas, but the lack of a 3rd party SDK will quickly halt progress, unfortunately.  I hope that will change in the new year.

The current limitations that need to be overcome are as follows:

  • Outerra is currently using a spherical earth, so using any physics/dynamics that use WGS84 or any another spheroidal coordinate system will not match.
  • Staging of vehicles is not currently possible.  This involves spawning new physical and visual objects from your controlling body and modifying the remaining controlling body.
  • Future Outerra modules will need to share the same internal physics engine and integrator in order be able to interact with one another.  So plugging in a new flight dynamics engine, as has been done with JSBSim, will prevent those vehicles from interacting with vehicles from other modules, such as a car or truck using the Bullet engine.  My understanding is that Bullet is using a Symplectic Euler integration method, which is not appropriate for orbital mechanics.  I have seen much better performance using 3rd order Adams Bashforth for orbital physics, but a RK4 or similar could be implemented.
  • N-body physics (Influence of multiple gravitational fields) is not supported in Outerra or JSBSim, but could be supported by a plugin physics engine.  Putting a vehicle into orbit and calculating its orbital parameters is one thing, but optimizing transfer trajectories for N-body physics (Not using sphere of influence, as is done in KSP) is way above my pay grade.
  • The solar system is not modeled in Outerra and only an Earth centered coordinate system is apparent.  I think future updates to Outerra could physically place the Earth around the Sun and Moon around the Earth fairly simply.
  • SDKs are needed to do most of the integration details with Outerra (UI, physics, systems, effects).  While most of the code for these could be written without the SDK, nothing could be implemented, yet.
« Last Edit: December 10, 2014, 12:49:06 am by SilentEagle »
Logged

Uriah

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 569
  • We do these things not because they are easy. -JFK
Re: AeroKinetics Mod
« Reply #56 on: December 10, 2014, 01:31:38 am »

Hi,
Thank you for the detailed reply!!!

Yes, I agree a heliocentric solar system is absolutely essential, as well as a n-body unified physics model for the Outerra universe.

However in regards to staging, it was suggested to use vehicle forces, a temporary hack for sure, but it would have the same net outcome. I've been thinking it might actually be possible to develop a new vehicle force which holds components together, and can be released manually with a jettison force along the Y-axis. It might work. You would actually assemble the rocket out of separate components and when the snap points get within proximity they detect each other, snap to alignment and hold the two models together. One model would need to be the parent (command module), I was thinking the propulsion/vehicle forces could be applied to that body, and all the connected bodies are children, and just follow the parent. The ground reaction coordinates could possibly be calculated from a table of know part sizes. Initially the fasteners could have infinite or very high strength and friction, but could possibly have a breaking strength. I am not sure exactly how this would be implemented yet, I am just trying to think outside the box... I would like to know your thoughts.

I asked Cameni about n-body physics and his reply implied we can experiment with vehicle forces in unintended ways, even to calculate multibody physics as it stands. Until an SDK or these features are released, a hack might just do the job.

A few questions for you SilentEagle:

Did you use the J246 as a starting point, as I did?

How did you solve the problem of the ground instability? I tried adding aircraft/ground_reactions.xml and including it in the J246.xml aircraft file, but it doesn't seem to make a difference. The JSBSim hold-down force for keeping the rocket stable doesn't work either, unless it can be included in the aircraft file directly and not in the script/ file. Do you think that is possible? I asked Jon Berndt just a few hours ago but I haven't heard back about it yet.

Were you able use the functions provided by JSBSim in order to calculate the orbital elements?

Were you able to implement manual user controls instead of autopilot?

Were you able to make fuel consumption and point mass reduction work? I am pretty sure I am operating with infinite fuel like the other Outerra vehicles.

Would you mind sharing your rocket OTX, or is it top-secret?! ;-D

I am always into collaborating, let me know what you have in mind!

Best regards,
Uriah George
« Last Edit: December 10, 2014, 01:46:07 am by Uriah509 »
Logged

SilentEagle

  • Member
  • **
  • Posts: 54
  • Sim Developer
    • Simulation Developer
Re: AeroKinetics Mod
« Reply #57 on: December 10, 2014, 11:11:14 am »

However in regards to staging, it was suggested to use vehicle forces, a temporary hack for sure, but it would have the same net outcome. I've been thinking it might actually be possible to develop a new vehicle force which holds components together, and can be released manually with a jettison force along the Y-axis. It might work. You would actually assemble the rocket out of separate components and when the snap points get within proximity they detect each other, snap to alignment and hold the two models together. One model would need to be the parent (command module), I was thinking the propulsion/vehicle forces could be applied to that body, and all the connected bodies are children, and just follow the parent. The ground reaction coordinates could possibly be calculated from a table of know part sizes. Initially the fasteners could have infinite or very high strength and friction, but could possibly have a breaking strength. I am not sure exactly how this would be implemented yet, I am just trying to think outside the box... I would like to know your thoughts.

I guess you are talking about how to hold different vehicles (components) together, instead of spawning new components and manipulating existing ones.  What I meant was to have the ability to change the state of components (mass, moment of inertia, center of gravity, add/remove thrust forces, etc) while spawning the discarded stage with initial conditions matching that of the parent vehicle.  I'm not sure how your idea would work, but I do not think it would be currently possible without a few changes by the Outerra team.

I asked Cameni about n-body physics and his reply implied we can experiment with vehicle forces in unintended ways, even to calculate multibody physics as it stands. Until an SDK or these features are released, a hack might just do the job.

Yes, I suppose you could add a fictitious vehicle force that was due to other influences of gravity depending on your position, but there is no point until other celestial bodies are added so that you can tell your relative position to each of them.

Did you use the J246 as a starting point, as I did?

No, I created it from scratch using examples of other rocket engines and the vostok from FlightGear.

How did you solve the problem of the ground instability? I tried adding aircraft/ground_reactions.xml and including it in the J246.xml aircraft file, but it doesn't seem to make a difference. The JSBSim hold-down force for keeping the rocket stable doesn't work either, unless it can be included in the aircraft file directly and not in the script/ file. Do you think that is possible? I asked Jon Berndt just a few hours ago but I haven't heard back about it yet.

It would tip over before launch all the time before I added 4 ground reactions with a VERY wide base.

Were you able use the functions provided by JSBSim in order to calculate the orbital elements?

Could be done, but there was no need for a suborbital vehicle.  I have made sci-fi style spacecraft in the past and always had a hell of a time figuring out where to thrust once in space.

Were you able to implement manual user controls instead of autopilot?

I didn't write any autopilot for mine, so it is all manual control (pitch,roll,yaw with axes rotated to support a vertical launch).  It's not a big deal since you aren't aiming for anything like a precise orbit, because the vehicle is only capable of suborbital flight.  I imagine making a multistage rocket would require some kind of automation since we don't have the cool node orbital planning features of KSP.

Were you able to make fuel consumption and point mass reduction work? I am pretty sure I am operating with infinite fuel like the other Outerra vehicles.

This should work like any other aircraft.  Outerra aircraft created using JSBSim do have limited fuel and changing center of gravity based on that consumption.

Would you mind sharing your rocket OTX, or is it top-secret?! ;-D

I'm willing to share the JSBSim xml files, but I am unsure where I sourced the 3D model from, so I'm unable to release the whole thing.

I am always into collaborating, let me know what you have in mind!

My plans were a little larger than just a mod for the engine and more in the realm of a sim built on the engine, but I'm sure we could work together.  Since our DCS project fell apart at the hands of ED, I've been itching to switch my efforts to a more promising platform, such as Outerra.
Logged

Uriah

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 569
  • We do these things not because they are easy. -JFK
Re: AeroKinetics Mod
« Reply #58 on: December 10, 2014, 07:34:26 pm »

My plans were a little larger than just a mod for the engine and more in the realm of a sim built on the engine, but I'm sure we could work together.  Since our DCS project fell apart at the hands of ED, I've been itching to switch my efforts to a more promising platform, such as Outerra.

Now we are talking! I am in 110%! I was disappointed in ED myself, they kind of dropped the ball in a number of ways. Outerra has real promise.

That would be great if you could share the XML files for your rocket! I would like to see how you implemented it and maybe something works better than I have so far.

I am convinced I can make decoupling work, just give me some time. I am not giving up any time soon.

I also found a script that exports particle systems through FBX into Outerra and am working on a rocket plume animation. The transparency map uses a seamless fractal noise texture, and I am using the illumination map ("tex_emmision") to make the flames glow. I did a static test, and now working on getting the animation loop to play, and be able to change the animation speed. This following renders are 3d Max, but it should actually look better in Outerra. I will add this into the next update, along with Levi's additions to the J246.js file, below!




I had some more questions for Levi, and he again delivers in a big way!

Hi Uriah, and sorry for the late reply again.

Levi,
I am going to contact bomber momentarily with the same questions, but I will also pose them to you.

It took me some time to import my model and get it working like yours. Funny thing is the FBX imported isn't working for me at all and COLLADA is. When I import using FBX all the parts are fragmented is all directions. I determined it has to be my model, because I was able to export your Saturn model side by side from the same MAX file with my J246 and the Saturn parts stay together. I linked all the parts to the Dummy, and the drag around with it in max but something breaks when it is imported via FBX. It is of no consequence to me because COLLADA works just fine.

You can download my J426.otx here: http://www.mediafire.com/download/l5fl1vghciz1hcu/J246.GNU.otx
Ok, I think you just need to use Reset XForm utility, because you may have changed the scale of your objects (all objects must have the default scale of 100x100x100), and the pivots location as well. Reset XForm sould do the trick.
Just go to Utilities > Reset XForm > Reset Selected. And then just collapse your modifier stack.


Warning: Before using Reset XFrom, it's better to not have the objects linked together.

The only key features missing are in the XML scripts to display the velocity and orbit, enable/disable the hold-down force and jettison (decouple) the stages. The script/J2460.xml and J2461.xml files with JSBSim seem to be incompatible with Outerra. Is there a way to implement these same features in J246.js, or manual jettison?

Also, there seems to be no way to manually control the rocket's flight, it is on autopilot. Any thoughts there?
I've modified the J246.js script file, and now some properties can be displayed in the console (press "P" key). Some of those are:

- Mission Elapsed Time
- ECI Velocity (fps)
- Orbital apogee (miles)
- Orbital perigee (miles)
- Orbital eccentricity
- Hold-down discrete

I left more within the script, just un-comment them if you want to be displayed.

Also, I linked the Hold-down force to "Gear" control (default key is "period"). This way you can engage and disengage Hold-down force.
Note: Just after spawning the rocket, you may prefer to disable Hold-down force until the rocket is in vertical position.

After some .xml file editing, now you can control the rocket's Pitch ("W" and "S" keys) and Yaw ("Z" and "X" keys). It's not as stable as I would like, but it's something. :D


As far as I know, the scripts J2460.xml and J2461.xml, are not compatible with Outerra. But I believe you can archive the same features with JavaScript.
Within JavaScript you can assign values to any JSBSim property. It's as simple as this:
Code: [Select]
//Jettison SRBs
jsb['inertia/pointmass-weight-lbs[0]']=0;
jsb['inertia/pointmass-weight-lbs[1]']=0;

I guess the problem would be the limited keyboard functionality... but for decoupling, I think you can do it based on "simulation/sim-time-sec" or "guidance/executive/MET" (Mission Elapsed Time).


Also, I think you'll need to set the correct location for the pointmass items and fuel tanks to match the visual model. Those are located inside J246.xml file:
  • Pointmass under "<ground_reactions>"
  • Fuel tanks/oxidizers under "<propulsion>"

Keep in mind that in 3Ds Max and Outerra, Negative Y == Positive X in JSBSim.


Here's the updated Rocket: Download


Lastly, can the camera distance in third person view mode be changed? It doesn't seem to be a parameter that can be changed or else you would have done so with your Airbus.

Thanks,
Uriah
I haven't changed at all the third person camera distance on the Airbus, just used the mouse scroll wheel to temporary change the distance once in game. As far as I know, there are no parameters you could modify for that.

Regards,
Levi.


Feel free to share this PM if you wish so. :)
Logged

ZeosPantera

  • ||>>-Z-<<||
  • Global Moderator
  • Hero Member
  • *****
  • Posts: 2520
  • #1 Outerra Fan Boy
    • My Youtube
Re: AeroKinetics Mod
« Reply #59 on: December 11, 2014, 12:20:12 am »

That is some awesome looking underwater bubbly magic fire!
Logged
"Fear accompanies the possibility of death, Calm shepherds its certainty" - General Ka Dargo
Pages: 1 2 3 [4] 5 6 ... 12