Reactionfull thruster

Suggest changes and improvements to Algodoo.

Reactionfull thruster

Postby TiagoTiago » Sun Jan 08, 2012 12:36 am

This idea isn't about exactly reproducing how rockets work (expelling matter one way to push itself the other way) but about producing a similar effect as you would expect on objects caught by the "exhaust", pushing away or sucking objects that the "flames" hit.


Besides the existing parameters for thrusters you would also have the following:

  • Spread: How wide the flame gets (in degrees), 0 would be a laserlike thrusters and 360 would result in a zero net force on the thruster. The bigger the angle the weaker the thruster net force is since parts of the thrust are going slightly against each other canceling out.
  • Falloff from center: The rate which the thrust intensity gets weaker away from straight "down", setting all the way down means it's the same intensity in all directions, setting it all the way up results in the intensity being interpolated from full at the center to zero at the edges. This distribution also affects the intensity of the net force, the bigger the falloff the more of the total thrust force will be centered, canceling itself less.
  • Curve for falloff from center: "Power curve" for the falloff, 1.0 means it's straight, 0.2 makes it fall off faster and 5.0 makes it fall off slower (or perhaps it's the other way around, i never remember which way it goes). I think the formula is somthing like this: Intensity(angle) = (((angle / Spread) ^ Curve) * (1.0 - Falloff)) * ThrusterForce ; though if angle is bigger than Spread then the actual intensity would always be zero. Similarly this also affects the net force.
  • Radius: How far from the thruster the flame goes; can go to infinity.
  • Distance falloff: How much the thrust goes down with distance from the thruster.
  • Curve for distance falloff: Same thing as the other curve but for distance instead.
  • Use thruster size: A checkbox, if this is enabled, instead of working as a point the thruster would be treated as a plane emitter, the "flame" would be composed of 3 sections, the middle which would emit thrust straight without curving, as wide as the thruster is, and the sides, which would behave the same as the two halfs of the flame when this option isn't enabled. The calculations for falloff from center would need to convert the width of the flat section into some units that make sense when combining with the angle on the curved section, or perhaps separated settings for the falloff of the flat section, and the curved sections would interpolate from the edges of the flat section instead of from the center of the thruster, and the distance falloff would also need a few modifications to make sense.
  • Collision layers: Since now thruster would affect other objects, they will also need to have the option of being placed on different collision layers



To have thrusters that behave like the current ones, just set the collision layer to none and the Spread and Distance falloff to zero.


With spread of 360 and Radius at infinity and angle falloff at zero, you could have somthing that behaves kinda like gravity.


An alternative approach to figuring out the shape for the plane (actually, line since it's 2d) emitter would be instead of a Spread would be to use a "Curvature" parameter, zero makes it flat, the "laserlike thruster", and the bigger it gets the more it curves, it's a bit like fitting a circle so that the two sides of the thruster are on the circle's surface and moving the circle closer and further, adjusting the circle size so the two sides of the thruster remain on the circle's surface (lemme know if you need pictures); negative values would allow for thrusters that focus their flame in a point in front of them. This would interact with the distance parameter, perhaps the distance parameter would offer an offset.





If possible, have the visible representation of the flame change parametricly to match the parameters, perhaps using transparency to represent the result of the falloffs



Btw, if possible, make the amount that the objects are pushed/pulled by the flame be proportional to the cross section of the object that is facing the thruster, and/or the percentage of the object's body that is overlapping the flame; and if the direction of the thrust isn't pointing to an object's center of mass and if only one side of the object is affect by the flame, also apply some torque on the objects.



ps: if it isn't too much work, it would be nice to add an additional checkbox to convert the thruster into a tractor beam, making the actual thrust imposed on the emitter dependent on the size and positions of the objects being pushed or pulled by the beam if there is any (a tractor beam alone in space wouldn't make the emitter move at all, one pulling a small object would only move the emitter a little bit, one pulling a much bigger object would hardly move the object but move the emitter a lot).
Last edited by TiagoTiago on Mon Jan 16, 2012 1:03 am, edited 6 times in total.
(New reply notifications don't always reach my inbox, please PM me if you think it has happened again)
TiagoTiago
 
Posts: 39
Joined: Sat Jan 07, 2012 11:43 pm

Re: Reactionfull thruster

Postby monstertje3 » Sun Jan 08, 2012 11:49 am

this is really complicated, maybe some points on the end of the flame, wich you can drag, so you can scale it without messing with those complicated sliders.
Really well thought, and a really nice feature, this has to be made somehow :thumbup:
(tractor beam is also really cool)
Basically, there are only 10 types of people in the world. Those who know binary, and those who don't.
Light travels faster than sound. That's why some people appear bright until they open their mouths.
User avatar
monstertje3
 
Posts: 343
Joined: Sat Sep 05, 2009 4:29 pm
Location: N-H, NL

Re: Reactionfull thruster

Postby TiagoTiago » Sun Jan 08, 2012 11:40 pm

Cool idea; like how the spring length can be changed by dragging the endpoints of a spring the shape of the flame could be changed by dragging the "corners" of the shape, moving further from the thruster changes the radius and moving in a circle changes the spread (both can be changed at the same time)
(New reply notifications don't always reach my inbox, please PM me if you think it has happened again)
TiagoTiago
 
Posts: 39
Joined: Sat Jan 07, 2012 11:43 pm

Re: Reactionfull thruster

Postby Matten » Mon Jan 09, 2012 4:41 pm

I support the part where the thruster "flames" collide with other objects (pushing or pulling them), and a radius for thrusters. The rest is too complicated.
Cave Johnson wrote:Do you know who I am? I'm the man who's gonna burn your house down! With the lemons! I'm gonna get my engineers to invent a combustible lemon that burns your house down!
User avatar
Matten
 
Posts: 435
Joined: Mon Apr 05, 2010 2:03 pm
Location: The Netherlands

Re: Reactionfull thruster

Postby TiagoTiago » Mon Jan 09, 2012 5:06 pm

You don't have to mess with the complicated parts, the default values for those should be fine for general usage; but even though the defaults would be good for general usage it would still be nice to have more control over things for specific use cases.
(New reply notifications don't always reach my inbox, please PM me if you think it has happened again)
TiagoTiago
 
Posts: 39
Joined: Sat Jan 07, 2012 11:43 pm

Re: Reactionfull thruster

Postby monstertje3 » Tue Jan 10, 2012 8:28 am

then if there is a good default, the value's you don't need as a nooby should go into the script menu (like inertiamult for geoms)
Basically, there are only 10 types of people in the world. Those who know binary, and those who don't.
Light travels faster than sound. That's why some people appear bright until they open their mouths.
User avatar
monstertje3
 
Posts: 343
Joined: Sat Sep 05, 2009 4:29 pm
Location: N-H, NL

Re: Reactionfull thruster

Postby TiagoTiago » Tue Jan 10, 2012 9:27 am

monstertje3 wrote:then if there is a good default, the value's you don't need as a nooby should go into the script menu (like inertiamult for geoms)


I see the advanced parameters here as being similar to things like the light speed for lasers, damping for springs, impulse break limit for axes etc; things that a newbie might not need to use, but that are handy to have together with the other parameters specific for the type of object being edited when it comes the time to tweak things in more detail.


But if in order to have this implemented those parameters need to loose the sliders and go get hidden in the script menu that is an acceptable compromise for me. But IMO that is the most those parameters should be hidden; it would be a pain having to call the console or consult manuals or whatever just to find what the parameters is called and where it is.

Of course, we could also have them be hidden in a collapsible section in the appropriated menu, possibly collapsed by default in clean installs.
(New reply notifications don't always reach my inbox, please PM me if you think it has happened again)
TiagoTiago
 
Posts: 39
Joined: Sat Jan 07, 2012 11:43 pm

Re: Reactionfull thruster

Postby Matten » Wed Jan 11, 2012 10:25 pm

I think a springs damping is WAY easier to understand than some thruster variables you suggested. And when I started with Algodoo, I simply started experimenting a bit with all the stuff, and adjusting the springs damping easily and clearly shows what it does. I actually don't think most of these variables won't be used very much, or even not (maybe a bit for rockets or stuff Kilinich makes).
Cave Johnson wrote:Do you know who I am? I'm the man who's gonna burn your house down! With the lemons! I'm gonna get my engineers to invent a combustible lemon that burns your house down!
User avatar
Matten
 
Posts: 435
Joined: Mon Apr 05, 2010 2:03 pm
Location: The Netherlands

Re: Reactionfull thruster

Postby TiagoTiago » Thu Jan 12, 2012 2:53 am

With visual feedback showing how the sliders affect the flame i think this wouldn't be so hard to understand.
(New reply notifications don't always reach my inbox, please PM me if you think it has happened again)
TiagoTiago
 
Posts: 39
Joined: Sat Jan 07, 2012 11:43 pm

Re: Reactionfull thruster

Postby monstertje3 » Thu Jan 12, 2012 8:27 am

The tractor beam could also be used for sticky-like objects;
make a row of shortrange tractorbeams on the side of a geom, and it will sort of stick to another object
Basically, there are only 10 types of people in the world. Those who know binary, and those who don't.
Light travels faster than sound. That's why some people appear bright until they open their mouths.
User avatar
monstertje3
 
Posts: 343
Joined: Sat Sep 05, 2009 4:29 pm
Location: N-H, NL

Re: Reactionfull thruster

Postby TiagoTiago » Fri Jan 13, 2012 5:53 pm

Here's a mockup showing the colapsible sections thing, first all expanded then all colapsed:
Image


Here is a table with mockups of how the falloff curves affect the flame, with "handles" to manipulate the flame parameters directly, in this example the black handle is for the shape of the flame, and the gray handles for the falloff curves (with the handles in this idea the amount of falloff can be set only to either 0% or 100%, zero when the handles are in the corner and 100% anywhere else; both handles can rest at the corner, when they are over eachother the direction you drag them will define which one you're dragging since only one can move along each direction; the gray handles serve to position the middlepoint of the falloff)
Image(click image for full size)


And here a table with mockups of the different flame shape styles and how they behave on different conditions, the first one is without anything, and the third collumn shows what it would be like if instead of spread the flame shape used the "curvature" idea i described in the op, to make it clear how the "Curvature" works i used zero radius as the base for the examples of it instead of 1 as the others )
Image(click image for full size)
Last edited by TiagoTiago on Mon Jan 16, 2012 12:51 am, edited 5 times in total.
(New reply notifications don't always reach my inbox, please PM me if you think it has happened again)
TiagoTiago
 
Posts: 39
Joined: Sat Jan 07, 2012 11:43 pm

Re: Reactionfull thruster

Postby monstertje3 » Sat Jan 14, 2012 12:22 pm

if the thruster force does apply strength to other objects, then the tractor beam checkbox is useless, a negative force would then be enough
also, i like the "use thruster width" shape the most

nice pictures btw :thumbup:
Basically, there are only 10 types of people in the world. Those who know binary, and those who don't.
Light travels faster than sound. That's why some people appear bright until they open their mouths.
User avatar
monstertje3
 
Posts: 343
Joined: Sat Sep 05, 2009 4:29 pm
Location: N-H, NL

Re: Reactionfull thruster

Postby Matten » Sat Jan 14, 2012 12:34 pm

With those pictures, I suddenly support the whole idea :thumbup:
I think the curves should have a default value different than 0, just to make every thruster some more realistic.
Cave Johnson wrote:Do you know who I am? I'm the man who's gonna burn your house down! With the lemons! I'm gonna get my engineers to invent a combustible lemon that burns your house down!
User avatar
Matten
 
Posts: 435
Joined: Mon Apr 05, 2010 2:03 pm
Location: The Netherlands

Re: Reactionfull thruster

Postby TiagoTiago » Sat Jan 14, 2012 2:53 pm

monstertje3 wrote:if the thruster force does apply strength to other objects, then the tractor beam checkbox is useless, a negative force would then be enough
also, i like the "use thruster width" shape the most

nice pictures btw :thumbup:

TiagoTiago wrote:...

ps: if it isn't too much work, it would be nice to add an additional checkbox to convert the thruster into a tractor beam, making the actual thrust imposed on the emitter dependent on the size and positions of the objects being pushed or pulled by the beam if there is any (a tractor beam alone in space wouldn't make the emitter move at all, one pulling a small object would only move the emitter a little bit, one pulling a much bigger object would hardly move the object but move the emitter a lot).


The tractor beam option makes it so when the thruster pushes things things push back and vice versa; perhaps "tractor beam" isn't the best name, it was just what came to my mind when i thought about it being somthing that pulls and pushes itself back when it pulls and pushes things instead of a rocket flame that already pushed the rocket away (or the low pressure air in front of a vacuum cleaner's mouth that already pulls the vacuum cleaner regardless of the presence of objects)
(New reply notifications don't always reach my inbox, please PM me if you think it has happened again)
TiagoTiago
 
Posts: 39
Joined: Sat Jan 07, 2012 11:43 pm

Re: Reactionfull thruster

Postby TiagoTiago » Mon Jan 16, 2012 12:56 am

Btw, an alternative way to implement the handles for controlling the falloff curves would be to have only one handle for the falloff curves instead of two and use it's position inside the flame to define the curves (simply the polar coordinates for the plain flame; but for the flame you get with "Use thruster width" or if the flame shape is calculated using the curvature approach it's a little bit more complicated, but not much)
(New reply notifications don't always reach my inbox, please PM me if you think it has happened again)
TiagoTiago
 
Posts: 39
Joined: Sat Jan 07, 2012 11:43 pm


Return to Suggestions

Who is online

Users browsing this forum: No registered users and 3 guests