It looks nice, but a bit too idealized. Yesterday i was trying to fly in space (200km ASL) and rate(Altitude) did not really work because position was as accurate as in minecraft, and i don't want to use AoA/AoS (i don't like to fly relative to wind even if there's no air). Do you have any recommendations for such situation?
Stop crushing my dreams about sane user and please try to understand what the fuck is going wrong.
I can not and do not track each your step (plus i thought that hoomans who'll use my program will be able to use their own brains properly) so you must do it yourself (to some extent at least).
Well, i'm getting such response second time, and second time without any info. Can you please clarify what do you mean?
If you're not getting any output, are you sure your image is raster (SVG is not supported)?
If it's image from web and you're not getting any output, did you tried to use downloaded copy of image?
If it doesn't looks correctly, are you sure your label is large-enough?
Control surface behind center of mass pushes tail down, then wing pushes entire airplane up, so total force is wing lift-stab lift-mass
Control surface in front of COM pushes aircraft up, so total force is wing lift+stab lift-mass
You can make rear wing that's smaller than front one but has upwards lift, but such configuration is usually unstable because force on larger wing increases faster (in terms of AoA) than force on smaller wing and rotates airplane to the direction it already rotates.
Pitch*clamp01((Time-smooth(Time,abs(rate(GS<V1))?9999:0))>T1)*clamp01((Time-smooth(Time,abs(rate(GS<V2))?9999:0))>T2) .... *clamp01((Time-smooth(Time,abs(rate(GS<Vi))?9999:0))>Ti) V1,V2...Vi is speed at which 1,2...ith gear switches in meters per second. T1,T2...Ti is time 1,2...ith gear needs to switch.
Hippo's right, any weapon is useless if you don't know position of target.
Also FT-based missile will not give enemy any warnings and will not care about chaff|flares, so it will be almost impossible to dodge it.
a helicopter or any rotorcraft that can at least exceed Mach 1
don't make it look too much like an airplane.
Can turbofan be considered as heli rotor?
It's impossible to make something realistic that goes around speed of sound and rotates and produces thrust enough to keep itself and it's power source in air.
If you will keep "realistic" part, you can use jets (doesn't goes around speed of sound (inlet decreases speed of airflow)), ion engines and plasma actuators (can't keep it's power source in air without being very large or very long, doesn't rotates), scramjets (can't keep power source in air (produces low thrust on subsonic speeds), doesn't rotates)
idk if it's a problem or a bug, but there's constant 0.01 in your integrator so it may not work correctly in low physics.
it's definitely not a bug or a problem, but why don't you use integrator to control pitchrate always, even with non-zero pitch?
Yes, even sp airplanes (mostly) have wings, but... but hey, you're gold, don't you know how sp physics works already?
For wings it isn't even VLM, it's just fixed function.
Other parts have sort of shading but it doesn't affects force produced by wings, props etc.
RU version, page 8, line -9: "Двести пятьдесят. Двести семьдесят. Ручка на себя. Самолёт плавно поднял нос и
оторвался от полосы. Ничего сложного. Самолёт с рёвом набирал высоту."
RU version, page 9, line 1: "Альтиметр уже показывал больше трёх с половиной метров."
3.5m is just a bit more than height of modern fighter; you don't need to pull nose up to get 3.5 meters of altitude in such time.
@JuanShot2Go
I modified it a bit, so now it looks like that: if(abs(rate(clk))){ addr=ai0+ 2*ai1+ 4*ai2+ 8*ai3+ 16*ai4+ 32*ai5+ 64*ai6+ 128*ai7 if(wrt){di=di0+ 2*di1+ 4*di2+ 8*di3+ 16*di4+ 32*di5+ 64*di6+ 128*di7} } addrLarge=floor(addr/3) addrShift=pow(256,repeat(addr,3)) if(addrLarge=0){ if(di>=0){m0=m0-(repeat(m0,256*addrShift)-repeat(m0,addrShift))+di*addrShift} value=floor(repeat(m0/addrShift,256)) } if(addrLarge=N){ if(di>=0){mN=mN-(repeat(mN,256*addrShift)-repeat(mN,addrShift))+repeat(di,256)*addrShift} value=floor(repeat(mN/addrShift,256)) } di=-1
.
If clk was switched, buttons ai0...ai7 will be used as new address (each button is one bit, ai0 is least-significant one).
If clk was switched and wrt is true, buttons di0...di7 will be used as data to store (each button is one bit, di0 is least-significant one).
addrLarge is number of memory variable that contains selected address. It's 1//3 of address, because single-precision floating-point format stores 23 fraction bits and one implicit leading bit, and 24/8 is 3, i.e. it can store up to 3 bytes (not including exponent and sign).
To store 3x8 bits in one 24-bit variable without intersection we need to shift it, but FT doesn't have any bitwise operators. So to shift value by N bits we need to multiply it by 2^N. Offset that we need to get is repeat(addr,3) bytes (see previous line), i.e. to store value in clean memory variable at Nth byte we need to add value*pow(2,8*repeat(addr,3)) (it's equal to value*pow(256,repeat(addr,3))) to memory variable.
To clear a byte of memory variable it uses m-(repeat(m,256*addrShift)-repeat(m,addrShift)). i wrote it 3 months ago and i don't remember how it works, but looks like it works. value setter shifts memory variable and then uses repeat(...,256) to cut anything that's above 7th bit and floor(...) to cut anything that's below 0th bit.
In programming languages like CS and Python we can create array named m and then get Nth element of array with m[N], but FT doesn't have arrays. So instead it uses pseudo-array, that's a lot of variables named mN and separate setters for each one.
After it's used di sets to -1, and it will contain -1 as long as clk will not be switched (see 7 lines above). If di<0, mN setter will not be activated, and therefore memory contents will not be changed.
Finally, if clk was switched and wrt is false, buttons di0...di7 is used to display separate bits of value that was previously obtained from one of memory variables (see 3 lines above)(didn't wrote it in code above because of comment length limit).
@linxiaofeng2339 @huiyuanzhang
Air pressure in SP is exp(-Altitude/7640) or pow(IAS/TAS,2). IIRC these two is equivalent (i.e. difference is less than 1e-6), but you should check it.
Basically, it'd be nice if every part in the menu system could just be configured in a setting file, to personalize the order they appear in.
Actually this file exists, it's %userprofile%/appdata/locallow/jundroo/simpleplanes/DesignerParts.xml (for windows)
It contains list of assemblies, and each assembly have name, category, settings for preview image, and list of it's parts with attributes.
It's structure is almost same as structure of sub-assemble files, so i think you can also add connections if assembly contains more than one part.
It's just fail.
Hatsune Miku (not Hachune) is official translation and used on box.
As lurkmore says, leekspin was originally made using Orihime Inoue from Bleach, and the one with Miku is just one of thousand remakes.
If you need some iconic video, you can take songs that made specially for Miku, like "Last Night, Good Night" or "World is Mine" or one of her real-lifeshows.
I managed it to turn within ~4km radius.
And i calculated that outer wingtip flew with ~2.5x more speed than inner one.So i think that without gyro it will roll to the same direction in which it turns, and it may result uncontrable rolling with subsequent crash.
.
On this build, wing loading is just 167kg/m^2, it's better than on some fighters uploaded to this site, so i think if i will delete it's gyro, it can fly as good as real-life fighters.
My entry.
It looks nice, but a bit too idealized. Yesterday i was trying to fly in space (200km ASL) and rate(Altitude) did not really work because position was as accurate as in minecraft, and i don't want to use AoA/AoS (i don't like to fly relative to wind even if there's no air). Do you have any recommendations for such situation?
PitchAngle becomes NaN near 90 degrees.
png; craft
Is stabilator counted as control surface?
Is there any performance limit? Like maximum gforce or maximum velocity
Stop crushing my dreams about sane user and please try to understand what the fuck is going wrong.
I can not and do not track each your step (plus i thought that hoomans who'll use my program will be able to use their own brains properly) so you must do it yourself (to some extent at least).
@HololiveFan2009
Well, i'm getting such response second time, and second time without any info. Can you please clarify what do you mean?
If you're not getting any output, are you sure your image is raster (SVG is not supported)?
If it's image from web and you're not getting any output, did you tried to use downloaded copy of image?
If it doesn't looks correctly, are you sure your label is large-enough?
Link here.
I bet it's planned as someone's decorative illumination for christmas, not actual tank.
It is prop-driven, it just uses props from older version of game.
.
If you added rotators and code and it still doesn't works make sure both nozzles rotate to the same direction when you're trying to yaw.
Congrats on inventing propeller.
FT works in control surface (inputId xml property iirc).
Will gawr gura be counted as fish? Will octopus be counted as fish?
Control surface behind center of mass pushes tail down, then wing pushes entire airplane up, so total force is wing lift-stab lift-mass
Control surface in front of COM pushes aircraft up, so total force is wing lift+stab lift-mass
You can make rear wing that's smaller than front one but has upwards lift, but such configuration is usually unstable because force on larger wing increases faster (in terms of AoA) than force on smaller wing and rotates airplane to the direction it already rotates.
Pitch*clamp01((Time-smooth(Time,abs(rate(GS<V1))?9999:0))>T1)*clamp01((Time-smooth(Time,abs(rate(GS<V2))?9999:0))>T2)
....*clamp01((Time-smooth(Time,abs(rate(GS<Vi))?9999:0))>Ti)
V1
,V2
...Vi
is speed at which1
,2
...i
th gear switches in meters per second.T1
,T2
...Ti
is time1
,2
...i
th gear needs to switch.Hippo's right, any weapon is useless if you don't know position of target.
Also FT-based missile will not give enemy any warnings and will not care about chaff|flares, so it will be almost impossible to dodge it.
in xml set button's
interactionType
toToggle
clamp01 requires one input. try to activate AG1 and try again. And you don't need activation group in rotator itself with this code.
set
zeroOnDeactivate
toFalse
in input section of rotator's xml.or use something like
sum(Throttle*clamp01(Activate1))
for input.My entry
@AltheimManufactorum For hexagons, perhaps it's pipes ("|") or dashes, you can clearly see it while she's near 9m AGL and label's semi-transparent.
Can turbofan be considered as heli rotor?
It's impossible to make something realistic that goes around speed of sound and rotates and produces thrust enough to keep itself and it's power source in air.
If you will keep "realistic" part, you can use jets (doesn't goes around speed of sound (inlet decreases speed of airflow)), ion engines and plasma actuators (can't keep it's power source in air without being very large or very long, doesn't rotates), scramjets (can't keep power source in air (produces low thrust on subsonic speeds), doesn't rotates)
Damn, i hoped you will cut sprite if it's out of screen bounds, but you just made it disappear.
idk if it's a problem or a bug, but there's constant 0.01 in your integrator so it may not work correctly in low physics.
it's definitely not a bug or a problem, but why don't you use integrator to control pitchrate always, even with non-zero pitch?
Hey, birdie, are you finally alive?
My entry
My entry (i will re-upload it if you insist).
Did you mean hovercrafts?
@teddyone02 boiii it was fucking year ago, i almost forgot about it...
Yes, even sp airplanes (mostly) have wings, but... but hey, you're gold, don't you know how sp physics works already?
For wings it isn't even VLM, it's just fixed function.
Other parts have sort of shading but it doesn't affects force produced by wings, props etc.
One important thing: it have nothing to do with sp.
RU version, page 8, line -9: "Двести пятьдесят. Двести семьдесят. Ручка на себя. Самолёт плавно поднял нос и
оторвался от полосы. Ничего сложного. Самолёт с рёвом набирал высоту."
RU version, page 9, line 1: "Альтиметр уже показывал больше трёх с половиной метров."
3.5m is just a bit more than height of modern fighter; you don't need to pull nose up to get 3.5 meters of altitude in such time.
@JuanShot2Go
I modified it a bit, so now it looks like that:
if(abs(rate(clk))){
addr=ai0+ 2*ai1+ 4*ai2+ 8*ai3+ 16*ai4+ 32*ai5+ 64*ai6+ 128*ai7
if(wrt){di=di0+ 2*di1+ 4*di2+ 8*di3+ 16*di4+ 32*di5+ 64*di6+ 128*di7}
}
addrLarge=floor(addr/3)
addrShift=pow(256,repeat(addr,3))
if(addrLarge=0){
if(di>=0){m0=m0-(repeat(m0,256*addrShift)-repeat(m0,addrShift))+di*addrShift}
value=floor(repeat(m0/addrShift,256))
}
if(addrLarge=
N){
if(di>=0){m
N=m
N-(repeat(m
N,256*addrShift)-repeat(m
N,addrShift))+repeat(di,256)*addrShift}
value=floor(repeat(m
N/addrShift,256))
}
di=-1
.
If
clk
was switched, buttonsai0
...ai7
will be used as new address (each button is one bit,ai0
is least-significant one).If
clk
was switched andwrt
is true, buttonsdi0
...di7
will be used as data to store (each button is one bit,di0
is least-significant one).addrLarge is number of memory variable that contains selected address. It's 1//3 of address, because single-precision floating-point format stores 23 fraction bits and one implicit leading bit, and 24/8 is 3, i.e. it can store up to 3 bytes (not including exponent and sign).
To store 3x8 bits in one 24-bit variable without intersection we need to shift it, but FT doesn't have any bitwise operators. So to shift value by N bits we need to multiply it by 2^N. Offset that we need to get is
repeat(addr,3)
bytes (see previous line), i.e. to store value in clean memory variable at Nth byte we need to addvalue*pow(2,8*repeat(addr,3))
(it's equal tovalue*pow(256,repeat(addr,3))
) to memory variable.To clear a byte of memory variable it uses
m-(repeat(m,256*addrShift)-repeat(m,addrShift))
. i wrote it 3 months ago and i don't remember how it works, but looks like it works.value
setter shifts memory variable and then usesrepeat(...,256)
to cut anything that's above 7th bit andfloor(...)
to cut anything that's below 0th bit.In programming languages like CS and Python we can create array named
m
and then get Nth element of array withm[N]
, but FT doesn't have arrays. So instead it uses pseudo-array, that's a lot of variables namedmN
and separate setters for each one.After it's used
di
sets to -1, and it will contain -1 as long asclk
will not be switched (see 7 lines above). Ifdi<0
,mN
setter will not be activated, and therefore memory contents will not be changed.Finally, if
clk
was switched andwrt
is false, buttonsdi0
...di7
is used to display separate bits ofvalue
that was previously obtained from one of memory variables (see 3 lines above)(didn't wrote it in code above because of comment length limit).@linxiaofeng2339 @huiyuanzhang
Air pressure in SP is
exp(-Altitude/7640)
orpow(IAS/TAS,2)
. IIRC these two is equivalent (i.e. difference is less than 1e-6), but you should check it.I'm interested too.
I tried to replace linefeeds with voffset and pos, but if i understood correctly it didn't work too.
can you, please, add screenshot of result here?
afaik all box-drawing characters works correctly (but to draw actual box you will need to use mspace and line-height), but i can't prove it.
@Formula350
Actually this file exists, it's
%userprofile%/appdata/locallow/jundroo/simpleplanes/DesignerParts.xml
(for windows)It contains list of assemblies, and each assembly have name, category, settings for preview image, and list of it's parts with attributes.
It's structure is almost same as structure of sub-assemble files, so i think you can also add connections if assembly contains more than one part.
Su30SM,Pigpen,Hellkeska,Pigpen,Su30SM.
it's weird. if you're too lazy to get right colors, you can edit css file (f12 in firefox, idk about other browsers).
i'm sure this post is SCP11008-something too.
ok...
It's just fail.
Hatsune Miku (not Hachune) is official translation and used on box.
As lurkmore says, leekspin was originally made using Orihime Inoue from Bleach, and the one with Miku is just one of thousand remakes.
If you need some iconic video, you can take songs that made specially for Miku, like "Last Night, Good Night" or "World is Mine" or one of her real-life shows.
Looks good, but i think impractical in cruize, because wing will need a lot less energy to return airplane to near-zero angle of slip.
Just 85 km...
I managed it to turn within ~4km radius.
And i calculated that outer wingtip flew with ~2.5x more speed than inner one.So i think that without gyro it will roll to the same direction in which it turns, and it may result uncontrable rolling with subsequent crash.
.
On this build, wing loading is just 167kg/m^2, it's better than on some fighters uploaded to this site, so i think if i will delete it's gyro, it can fly as good as real-life fighters.
And all this in 70 tons...
https://www.simpleplanes.com/a/LgHN01/Project-Hellbore-V6-1
Maybe "to fly straight"?
You probably need to clean dust from it's fans (especially cpu fan in the center of hull), and maybe attach one more fan.