Version tree at 2024-11-17T08:01Z: https://imgur.com/a/yPjfUFw
JSON (starting at a7bta6 (here)): {"uXG6QL":{"Juqh0F":{"yUqF40":{"V7mG41":{"CAiXMf":{"rVbbR6":{"6t93Bx":{"3gzkmM":{"lK9P1j":{"Iwbo7a":{"6csf1s":{"1qS1l7":{"107i4I":{"hVNvmA":{"86gnwh":{"Wk3a92":{"yi1Fs5":{"zgO3lP":{"ReQ53F":{"BiQO9o":{"Y71Du7":{"Y03wZj":{"oKuPV3":{"HmD5Eb":{"curO5f":{"fWqxB0":{"0hE2s9":{"EEU7OU":{"d4O2lO":{}}}}},"o9Y216":{"5dGUjf":{"LVzyx7":{}}},"z07iGr":{},"vCfb0G":{}},"UChFa4":{"rY957g":{}}},"7s1zIT":{"y58pg5":{"fJvU3W":{"YA13zl":{}}}}},"YRyM8N":{},"GOVncl":{"wmONxo":{}},"74e1BJ":{}},"l15867":{},"V3d46F":{},"AVCY24":{}}},"jAffBm":{"k9nMbp":{"V9r3f3":{"iQ27gM":{}}}}}},"w2V1Jw":{"B0741s":{"DenG2i":{}}}}}}}}},"7hhqJ2":{"JMEc48":{"a9976O":{"lJ25nM":{"I83BTS":{}}}}}}},"Xd40z0":{}},"l6J2Y7":{"99Cgr1":{"ATKJa1":{"y7qaP7":{"iBz858":{}}},"250Ug3":{"zZO4s2":{}}},"JW32OA":{},"8RYxBA":{}},"66qjqO":{}}}}}}}},"P9TM0B":{}}
Multiplayer event isn't really something that depends on tech, it more depends on humans who plan it, and that can be someone from community.
For tech it's perhaps possible to add tooling for parametric design (that's like defining part properties with FT), and since it's build-time stuff it mustn't really affect in-level performance.
@126 some variables are lists in index=a?xa:(index=b?xb:... form. to make them shorter i omitted closing parenthesis. it works fine with ft interpreter, but variable editor widget has it's own checker that says that such code isn't correct. to pass it you need to add those parenthesis back, e.g. turn
p_tgt.i=1?6020:(p_tgt.i=2?5885:(p_tgt.i=3?5805:(p_tgt.i=4?5805:(p_tgt.i=5?5805:(p_tgt.i=6?5805:(p_tgt.i=7?5805:(p_tgt.i=8?5805:(p_tgt.i=9?5805:(p_tgt.i=10?5805:(p_tgt.i=11?5885:(p_tgt.i=12?6020:(p_tgt.i=13?6020:(p_tgt.i=14?6020:(p_tgt.i=15?6020:(p_tgt.i=16?5880:(p_tgt.i=17?5670:(p_tgt.i=18?5670:(p_tgt.i=19?5670:(p_tgt.i=20?5685:(p_tgt.i=21?5600:(p_tgt.i=22?5600:(p_tgt.i=23?5635:0
into
p_tgt.i=1?6020:(p_tgt.i=2?5885:(p_tgt.i=3?5805:(p_tgt.i=4?5805:(p_tgt.i=5?5805:(p_tgt.i=6?5805:(p_tgt.i=7?5805:(p_tgt.i=8?5805:(p_tgt.i=9?5805:(p_tgt.i=10?5805:(p_tgt.i=11?5885:(p_tgt.i=12?6020:(p_tgt.i=13?6020:(p_tgt.i=14?6020:(p_tgt.i=15?6020:(p_tgt.i=16?5880:(p_tgt.i=17?5670:(p_tgt.i=18?5670:(p_tgt.i=19?5670:(p_tgt.i=20?5685:(p_tgt.i=21?5600:(p_tgt.i=22?5600:(p_tgt.i=23?5635:0))))))))))))))))))))))
(for debug purposes)
print(re.sub(r"\<#(?:([A-F0-9])([A-F0-9])([A-F0-9])[A-F0-9]?|([A-F0-9][A-F0-9])([A-F0-9][A-F0-9])([A-F0-9][A-F0-9])(?:[A-F0-9][A-F0-9])?)>",lambda m:"\x1b[48;2;"+str(int(m[1] or m[4],16))+";"+str(int(m[2] or m[5],16))+";"+str(int(m[3] or m[6],16))+"m",s).replace("<br>","\n").replace("."," "))
Replaces color tags with ANSI ones.
@TRS051
If code's generated but doesn't shows in SP, try to:
- increase label's width and height;
- set label's alignment to top-left;
if image's displayed but is cut off, try to decrease image's size and generate code again. apparently label's limited to 100k dots and it's not something i can change
If it doesn't generates label's code, try to:
- make sure image isn't svg;
- if you're using image link, make sure that hosting allows cross-origin resource sharing (or download image and try again);
- check browser's dev console (usually F12) to see what's wrong
@Matteosiufromfifakit
Just raise your hand
And reach out for the spell
Find the door to the promised land
Just believe in yourself
Close your eyes and your will find
The way out of the dark
...Or read the post again, there's two links to github.
Perhaps it can be better if you'll say it's unity's C# and miss some parts of description but tell it basic info about flight dynamics and geometry instead.
And as Redrocktumbler said you'll perhaps need to repeat your description once in a while, because ANN itself is stateless and "memory" of that one is just last ~3k of tokens glued to your message.
And no, you must not overestimate ANN, it's more like polynomial approximation than AI you wish to see.
Is it really faster to use a variable and format string for each pixel (<#{!pixel?"0000":pixel}>...) instead of using an expression for each frame ({t=0?frame:""}{t=1?frame:""}...)?
@DatMaluchGuy19 VC variable, it's in meters per second, and it's signed i.e. negative value means it must go backwards. TC controls engine directly, you can set it to 1 if you want to go as fast as possible.
Husky's right, SP build files aren't that large.
If you want, you can upload them as hidden ("Visibility" button in uploading widget), they'll be saved on SP site but will only be visible for you.
@winterro p_tgt.i stores id of currently selected point
p_tgt.x, p_tgt.z are coords of currently selected point p_tgt.links.x, p_tgt.links.z are ids of points where it can go from currently selected one.
p_tgt.i switches to one of p_tgt.links.x%100, p_tgt.links.x//100, p_tgt.links.y%100, and p_tgt.links.y//100 every time car gets close-enough to currently selected point
Other variables aren't significant for routing, they're used to tame car itself, to make it unable to go to previous point, to make it not headbutt others, to make it stop at dead ends, to make it remember gifts without leaving too much inside label...
Link to txt file CameraPosX variable must be camera's horizontal offset in meters
IDK if it'll work, but if it will it must be 5cm orange circle clamped by two vertical edges located 10cm away from label's left edge.
Stick here.
It's still good if you need abstract stuff.
From abstract stuff strong-willed ones build sub-assemblies and game itself.
From abstract stuff weak-minded ones build flying tic-tac and Andrew's face.
Well, i don't really understand how to get that index. It appears to be related to time (or rather number of crafts uploaded), last uploaded one (X0Zk6W) uses 1289, 0BFd5E from two days ago uses 1288, Maxwell from 8 months ago uses 1185.
Knowing that you can use brute force to try all possible indexes (looks like there's no rate limit) but it takes a lot of time and i feel bad about it.
async function get(airplane_id,minIndex,maxIndex){
lnk="https://jundroo.blob.core.windows.net/simpleplanes/GameData/aircraft/_I_/"+airplane_id+".xml"
if(minIndex===undefined){minIndex=0}
if(maxIndex===undefined){maxIndex=2048}
var res=-1
async function tryLoad(i){
try{
await fetch(lnk.replace("_I_",i.toString()))
.then((resp)=>{if(resp["status"]==200){res=i}})
}catch(err){return}
}
for(i=minIndex;i<=maxIndex;++i){
await tryLoad(i)
if(res!=-1){return res}
}
}
The last part (cGGD1h) is obviously aircraft id, but i don't understand what 728 means here and just letting it as-is doesn't works.
So to use it you need id of craft (which is not a thing everyone memorizes) and some number of unknown purpose (which might be id of archive or folder stored internally just for faster indexing).
So yes, "jundroo forgot to delete aircraft files" sounds cool but doesn't really sounds useful for now. (for crafts that were not deleted there's standard api, https://www.simpleplanes.com/Client/DownloadAircraft?a=ID)
@FlyingPotato_131 Thanks for reminding about it, but no.
It was generated 2.2 years ago and became legacy 2 or 3 months after. Just use labels if you need.
Try to increase D gain of PID to make it work correctly at some specific speed
Then add /max(1,pow(IAS/X,2)) to the end of code, X here is speed at which it works correctly (in meters per second).
@Johnnyynf Because of colliders?
Colliders are convex even for hollow fuselages, so i don't think they will make gear collide like actual one, it will rather work like cylinder or cone.
@jamesPLANESii
I think there's still things that act on specific part, not body, like collisions and bullets.
For entire body you can't remove internal faces, because body can be changed, e.g. one part can reveal other one when destroyed. But if some object is single part, you can make sure that it's meshes will never be changed, so you can remove all internal faces by the time you load part specifications.
You do not need to account for altitude if you're using IAS. IAS is instrumental airspeed, for SP IAS equal to speed*exp(Altitude/-7640) iirc.
Last piece of code corrected a bit: floor(smooth(max(0,Is LG experiencing the maximum design force?), (Current Drag Force experienced by LG)/(impulse to break LG)))
(separated by linefeed because comment field doesn't let see it if it's on single line)
You need to clamp first part of smooth (since it's boolean) so it won't go below zero and won't ruin your timing. And then, since smooth won't go below 0, floor(something) will do same thing as clamp01(something)>=1
Almost 1.5 years after update, someone actually used it for tracks.
Low quality is not a problem, you can use actual texture if you wish (SPRASTER) and perhaps you can change colors for weared pads, dust etc.
I think body lift on F35 will suck. It will of course increase lift but i think it won't increase glide ratio, and thus won't increase maximum acceleration at given thrust.
Different F35, same problems. Perhaps it's a bad idea to combine bomber, stealth and quadcopter in single airframe?
Anyway, please tag me when you'll finish it.
Superbugs adapts to the drugs, but can't defend against bacteriophages... But bacteriophages somehow can't destroy the useful bacteria...
+1Cool tower! How about adding some 16 lb cannons?
+1Hey-hey-hey, i know there's spheres/wireframes/images, but airplane doesn't fits into block and it adds 2x more parts than there was.
Version tree at 2024-11-17T08:01Z: https://imgur.com/a/yPjfUFw
JSON (starting at a7bta6 (here)): {"uXG6QL":{"Juqh0F":{"yUqF40":{"V7mG41":{"CAiXMf":{"rVbbR6":{"6t93Bx":{"3gzkmM":{"lK9P1j":{"Iwbo7a":{"6csf1s":{"1qS1l7":{"107i4I":{"hVNvmA":{"86gnwh":{"Wk3a92":{"yi1Fs5":{"zgO3lP":{"ReQ53F":{"BiQO9o":{"Y71Du7":{"Y03wZj":{"oKuPV3":{"HmD5Eb":{"curO5f":{"fWqxB0":{"0hE2s9":{"EEU7OU":{"d4O2lO":{}}}}},"o9Y216":{"5dGUjf":{"LVzyx7":{}}},"z07iGr":{},"vCfb0G":{}},"UChFa4":{"rY957g":{}}},"7s1zIT":{"y58pg5":{"fJvU3W":{"YA13zl":{}}}}},"YRyM8N":{},"GOVncl":{"wmONxo":{}},"74e1BJ":{}},"l15867":{},"V3d46F":{},"AVCY24":{}}},"jAffBm":{"k9nMbp":{"V9r3f3":{"iQ27gM":{}}}}}},"w2V1Jw":{"B0741s":{"DenG2i":{}}}}}}}}},"7hhqJ2":{"JMEc48":{"a9976O":{"lJ25nM":{"I83BTS":{}}}}}}},"Xd40z0":{}},"l6J2Y7":{"99Cgr1":{"ATKJa1":{"y7qaP7":{"iBz858":{}}},"250Ug3":{"zZO4s2":{}}},"JW32OA":{},"8RYxBA":{}},"66qjqO":{}}}}}}}},"P9TM0B":{}}
Multiplayer event isn't really something that depends on tech, it more depends on humans who plan it, and that can be someone from community.
For tech it's perhaps possible to add tooling for parametric design (that's like defining part properties with FT), and since it's build-time stuff it mustn't really affect in-level performance.
Some of these are just bots.
@126 some variables are lists in
index=a?xa:(index=b?xb:...
form. to make them shorter i omitted closing parenthesis. it works fine with ft interpreter, but variable editor widget has it's own checker that says that such code isn't correct. to pass it you need to add those parenthesis back, e.g. turnp_tgt.i=1?6020:(p_tgt.i=2?5885:(p_tgt.i=3?5805:(p_tgt.i=4?5805:(p_tgt.i=5?5805:(p_tgt.i=6?5805:(p_tgt.i=7?5805:(p_tgt.i=8?5805:(p_tgt.i=9?5805:(p_tgt.i=10?5805:(p_tgt.i=11?5885:(p_tgt.i=12?6020:(p_tgt.i=13?6020:(p_tgt.i=14?6020:(p_tgt.i=15?6020:(p_tgt.i=16?5880:(p_tgt.i=17?5670:(p_tgt.i=18?5670:(p_tgt.i=19?5670:(p_tgt.i=20?5685:(p_tgt.i=21?5600:(p_tgt.i=22?5600:(p_tgt.i=23?5635:0
into
p_tgt.i=1?6020:(p_tgt.i=2?5885:(p_tgt.i=3?5805:(p_tgt.i=4?5805:(p_tgt.i=5?5805:(p_tgt.i=6?5805:(p_tgt.i=7?5805:(p_tgt.i=8?5805:(p_tgt.i=9?5805:(p_tgt.i=10?5805:(p_tgt.i=11?5885:(p_tgt.i=12?6020:(p_tgt.i=13?6020:(p_tgt.i=14?6020:(p_tgt.i=15?6020:(p_tgt.i=16?5880:(p_tgt.i=17?5670:(p_tgt.i=18?5670:(p_tgt.i=19?5670:(p_tgt.i=20?5685:(p_tgt.i=21?5600:(p_tgt.i=22?5600:(p_tgt.i=23?5635:0))))))))))))))))))))))
Well, history tends to repeat itself.
It's sale again and i ask again: Who's this girl on banner?
(for debug purposes)
print(re.sub(r"\<#(?:([A-F0-9])([A-F0-9])([A-F0-9])[A-F0-9]?|([A-F0-9][A-F0-9])([A-F0-9][A-F0-9])([A-F0-9][A-F0-9])(?:[A-F0-9][A-F0-9])?)>",lambda m:"\x1b[48;2;"+str(int(m[1] or m[4],16))+";"+str(int(m[2] or m[5],16))+";"+str(int(m[3] or m[6],16))+"m",s).replace("<br>","\n").replace("."," "))
Replaces color tags with ANSI ones.
@TRS051
If code's generated but doesn't shows in SP, try to:
- increase label's width and height;
- set label's alignment to top-left;
if image's displayed but is cut off, try to decrease image's size and generate code again. apparently label's limited to 100k dots and it's not something i can change
If it doesn't generates label's code, try to:
- make sure image isn't svg;
- if you're using image link, make sure that hosting allows cross-origin resource sharing (or download image and try again);
- check browser's dev console (usually F12) to see what's wrong
@TheAviator77 Can you please send image you used and result you got?
I remember spectrogram of jet engine, it was very wide and noisy, so it's a wonder you can play music with it.
@Matteosiufromfifakit
Just raise your hand
And reach out for the spell
Find the door to the promised land
Just believe in yourself
Close your eyes and your will find
The way out of the dark
...Or read the post again, there's two links to github.
@UnidentifiedStapler that's sad, but i can't (and i don't wish to) fix GBoard, so perhaps it's not my business.
Perhaps it can be better if you'll say it's unity's C# and miss some parts of description but tell it basic info about flight dynamics and geometry instead.
And as Redrocktumbler said you'll perhaps need to repeat your description once in a while, because ANN itself is stateless and "memory" of that one is just last ~3k of tokens glued to your message.
And no, you must not overestimate ANN, it's more like polynomial approximation than AI you wish to see.
Is it really faster to use a variable and format string for each pixel (<#{!pixel?"0000":pixel}>...) instead of using an expression for each frame ({t=0?frame:""}{t=1?frame:""}...)?
@DatMaluchGuy19
VC
variable, it's in meters per second, and it's signed i.e. negative value means it must go backwards.TC
controls engine directly, you can set it to 1 if you want to go as fast as possible.Ehm, you do know there's (builtin)
atan
function for angle and pythagorian addition for distance, right?Husky's right, SP build files aren't that large.
If you want, you can upload them as hidden ("Visibility" button in uploading widget), they'll be saved on SP site but will only be visible for you.
@winterro
p_tgt.i
stores id of currently selected pointp_tgt.x
,p_tgt.z
are coords of currently selected pointp_tgt.links.x
,p_tgt.links.z
are ids of points where it can go from currently selected one.p_tgt.i
switches to one ofp_tgt.links.x%100
,p_tgt.links.x//100
,p_tgt.links.y%100
, andp_tgt.links.y//100
every time car gets close-enough to currently selected pointOther variables aren't significant for routing, they're used to tame car itself, to make it unable to go to previous point, to make it not headbutt others, to make it stop at dead ends, to make it remember gifts without leaving too much inside label...
Link to txt file
CameraPosX
variable must be camera's horizontal offset in metersIDK if it'll work, but if it will it must be 5cm orange circle clamped by two vertical edges located 10cm away from label's left edge.
Don't worry, being stupid isn't something special nowadays.
Reshade is perhaps what you meant, but it have nothing to do with Jundroo.
Stick here.
It's still good if you need abstract stuff.
From abstract stuff strong-willed ones build sub-assemblies and game itself.
From abstract stuff weak-minded ones build flying tic-tac and Andrew's face.
Camera must not be attached to thing rotated by rotator.
ammo("Weapon Name")
("
here is " )See comment here for fly-by-wire, i don't want to repeat it here.
"going away from target" is literally
rate(TargetDistance)>0
, is it what you need?Well, i don't really understand how to get that index. It appears to be related to time (or rather number of crafts uploaded), last uploaded one (X0Zk6W) uses 1289, 0BFd5E from two days ago uses 1288, Maxwell from 8 months ago uses 1185.
Knowing that you can use brute force to try all possible indexes (looks like there's no rate limit) but it takes a lot of time and i feel bad about it.
async function get(airplane_id,minIndex,maxIndex){
lnk="https://jundroo.blob.core.windows.net/simpleplanes/GameData/aircraft/_I_/"+airplane_id+".xml"
if(minIndex===undefined){minIndex=0}
if(maxIndex===undefined){maxIndex=2048}
var res=-1
async function tryLoad(i){
try{
await fetch(lnk.replace("_I_",i.toString()))
.then((resp)=>{if(resp["status"]==200){res=i}})
}catch(err){return}
}
for(i=minIndex;i<=maxIndex;++i){
await tryLoad(i)
if(res!=-1){return res}
}
}
The last part (
cGGD1h
) is obviously aircraft id, but i don't understand what728
means here and just letting it as-is doesn't works.So to use it you need id of craft (which is not a thing everyone memorizes) and some number of unknown purpose (which might be id of archive or folder stored internally just for faster indexing).
So yes, "jundroo forgot to delete aircraft files" sounds cool but doesn't really sounds useful for now. (for crafts that were not deleted there's standard api,
https://www.simpleplanes.com/Client/DownloadAircraft?a=ID
)@FlyingPotato_131 Thanks for reminding about it, but no.
It was generated 2.2 years ago and became legacy 2 or 3 months after. Just use labels if you need.
Do something with your text, it takes too much time to read it with all those effects.
Oh, so it can write a switch statement in python, so what?
@BotFinder2023 Boy, do you really think others are held together by magic?
Try to increase D gain of PID to make it work correctly at some specific speed
Then add
/max(1,pow(IAS/X,2))
to the end of code,X
here is speed at which it works correctly (in meters per second).Welcome back, sensei!
@DJW730 AG1&TargetSelected
@StonedOutBurger Some people say it does but i didn't tested it myself.
you say while continuing to complain.
Did someone report about it? Is it possible to fix without tearing engine apart?
Rocket.
Labels, it will always be more customizable than any grid.
"S" on image is concealed in cloud, so looks like text says "TARFIGHTER", not "STARFIGHTER".
@32 Just designer and it's not that close to release, more like pre-alpha.
@U2
To store value select address (buttons a0...a7), select value (buttons 0...7), enable wrt button, switch clk button.
To read value select address (buttons a0...a7), disable wrt button, switch clk button.
EA6B (electronic warfare) with chaos rat camo.
@Johnnyynf Because of colliders?
Colliders are convex even for hollow fuselages, so i don't think they will make gear collide like actual one, it will rather work like cylinder or cone.
@jamesPLANESii
I think there's still things that act on specific part, not body, like collisions and bullets.
For entire body you can't remove internal faces, because body can be changed, e.g. one part can reveal other one when destroyed. But if some object is single part, you can make sure that it's meshes will never be changed, so you can remove all internal faces by the time you load part specifications.
You do not need to account for altitude if you're using IAS. IAS is instrumental airspeed, for SP IAS equal to
speed*exp(Altitude/-7640)
iirc.Last piece of code corrected a bit:
floor(smooth(max(0,Is LG experiencing the maximum design force?),
(Current Drag Force experienced by LG)/(impulse to break LG)))
(separated by linefeed because comment field doesn't let see it if it's on single line)
You need to clamp first part of smooth (since it's boolean) so it won't go below zero and won't ruin your timing. And then, since smooth won't go below 0,
floor(something)
will do same thing asclamp01(something)>=1
Almost 1.5 years after update, someone actually used it for tracks.
Low quality is not a problem, you can use actual texture if you wish (SPRASTER) and perhaps you can change colors for weared pads, dust etc.
Snowstone doesn't have any naval vehicles at the moment, right?
I think body lift on F35 will suck. It will of course increase lift but i think it won't increase glide ratio, and thus won't increase maximum acceleration at given thrust.
Different F35, same problems. Perhaps it's a bad idea to combine bomber, stealth and quadcopter in single airframe?
Anyway, please tag me when you'll finish it.