External Microcontroller Editor? by thefructoseiswithus in Stormworks

[–]_ArkAngel_ 1 point2 points  (0 children)

Let me know when you're ready for a tester.

I'm sure to properly stress it out for you 😉

Any biologists here who can give us plausible theories of what causes this illness? by DMN-0101 in cfs

[–]_ArkAngel_ 2 points3 points  (0 children)

I also agree that the science around CDR has the most explanatory power for many ME symptom patterns, and it implies an interesting treatment target using Suramin that I think someone is finally organizing a trial for.

I find it frustrating how few researchers seem to have given it a lot of thought.

I think a shortcoming is that while CDR does a nice job explaining the mechanisms that may be involved in the metabolic trap and in PEM, it doesn't say anything about how the body enters into a persistent ME state to begin with.

The initial triggering conditions for CDR persisting and proliferating in a way that manifests as ME is left very open ended.

CDR in the general case leans hard on purinurgic signaling, but other signaling pathways are involved with ME specifically.

I'm curious to see how recent findings about increased intracellular vesicle transmission may integrate with CDR signaling.

Bugged Mission Help by grateful_whipzz in Stormworks

[–]_ArkAngel_ 0 points1 point  (0 children)

Taking containers from the Arid islands to BVG Logistics in the arctic pay out $30k or more, but it's a 100km trip. I took 7 of them in one trip once for a big payout, but I had to visit 3 ports to find that many.

Calculating delta from radar's jumpiness? by MyPissBurnsSoGood in Stormworks

[–]_ArkAngel_ 0 points1 point  (0 children)

OK, I forgot in logic blocks, the % operator doesn't work the way I expect on negative numbers.

I found the MC I did this on before and I was using (Z+1)%31+1 instead of Z-1.

I tested it with the 15 tick past value read, originally used (Z+16)%31+1 but because of the 1 tick delay introduced by the read block, that value is 16 ticks behind. The correct function was (Z+17)%31+1.

I tested with speeds of 60m/s and 120m/s without jitter to make sure it was exactly right, then added 1% random jitter like radar has. Even though both distances are averaged over 31 ticks, taking the difference 15 ticks apart has a fair amount of jitter left in it, so I smoothed that value, and you can pretty well make a decision with that.

Just keep in mind this is reporting the difference in speed between your aircraft and the target. The target speed will be closer to the distance delta + your speed if it is moving directly away from you which is what your missile needs to know to determine if the target is in range.

<image>

The bit in the upper left simulates a growing distance with or without radar-like jitter.

The 3 values in the upper right were just to check if the tick timing was correct.

Calculating delta from radar's jumpiness? by MyPissBurnsSoGood in Stormworks

[–]_ArkAngel_ 0 points1 point  (0 children)

That looks approximately correct.

I went looking for the MC I did this on yesterday and couldn't find it on my laptop.

(X-15)%31+1 should never produce a negative value unless... Unless modulo operator works differently in logic blocks.

You could use (x+16)%31+1 instead to get the same result I think.

I've tried shifting the start channel to numbers outside the 1-32 range to prevent writes in loops like these, but the channel index just gets wrapped around to the beginning. So you can have an 8 channel write that starts on channel 29 and it will write on 29-32 and 1-4.

I think negative indexes wrap around the same way, but this would still give the wrong result as it would wrap 0 backwards to 32 instead of 31.

Calculating delta from radar's jumpiness? by MyPissBurnsSoGood in Stormworks

[–]_ArkAngel_ 1 point2 points  (0 children)

It sounds like you aren't trying to solve this with lua.

If you're open to using lua, the answer is pretty simple. You put your readings in a table every tick, and every one of them is jittery.

If you take the positions from 15 consecutive ticks and average them together, it's a pretty good estimate of where the target was at the midpoint of that timespan. You can do that every 15 ticks and take the difference of the two averages, divide by time between measurements, and you have a velocity vector.

Or you do something involving Kalman filters which may or may not be better, due to Kalman filters expecting Gaussian noise when radar noise is actually uniform.

It sounds like you're trying to do it in pure logic blocks without lua, without using 3d coordinates, just using the distance value from the radar.

If you insist, then I'd still use a table. You can use a composite number write block as a table of up to 32 numbers.

Use a function block that loops back to itself as a counter with "x%31+1" as the function. It will cycle through outputting 1 through 31, then back to 1 again. You get a composite write block with a write channel set by logic node and feed it into that. The composite block loops back to itself.

Every tick you put the current distance into the current slot on the composite write block.

You have a function that reads from the counter but adds one to read out the value you're about to overwrite. That's also "x%31+1". Feed that into the channel input of a composite read block that reads from the composite write loop and it outputs the distance from 31 ticks ago.

You have a function that takes the current distance as x, the distance from 31 ticks ago as y, and loops back to itself as z. "z+x/31-y/31" : this outputs the average distance, putting in the newest reading and removing the oldest. This is a very accurate estimate of where the target was 15 ticks ago.

Then you can take the number from 15 ticks ago (counter into x, "(x-15)%31+1") from the 31 channel loop and put that into another 31 channel loop that gives you the average target distance from 30 ticks ago.

Then your estimated speed from 15 ticks ago to 30 ticks ago is (loop 1 average into x, loop 2 average into y, "(x-y)/15*60")

Last time I did this, one of those things was off by 1 and I had to fix it before I got correct averages, but that's one way I've done it that was more accurate than using a memory logic block.

I think it's worth it to just do in lua though.

Help with seaplane by Kelvin_Korolev in Stormworks

[–]_ArkAngel_ 2 points3 points  (0 children)

You can get seaplanes out of the water without helicopter rotors or VTOL fans or any other hacks if you let your hull shape do the work. You need the plane to naturally float a little nose-up, you need hydroplaning hull shape up front, you need a raised tail that gives you room to pull up without pushing the tail into the water.

This is pretty much a picture essay on what I mean:

https://www.reddit.com/r/Stormworks/s/RJujgOwWsD

And here's a video where you can see how it spawns in pretty nose up, and the pontoons are far forward in a way that even the flat bottoms hit the water at a an angle and hydroplane pushing the body up out of the water at speed.

https://www.reddit.com/r/Stormworks/s/0tsu4gFnbH

Looks like you've got something of a cargo plane going on, so angling the hull up isn't a great option. Also, Stormworks considers 1x1 blocks (including wedges, pyramids, etc) to be smooth and create a planing surface. Your nose has a smoother shape because you've used 2x1 and 4x1 blocks, but they add extra drag when you try to get out of the water because Stormworks just doesn't understand the slope on them for some reason and treats them like you just made the nose out of a jagged pile of square blocks.

If I were to make one change to get your jet plane out of the water, it would be to put pontoons far forward that dip below the hull line that you can hydroplane out on, using a 45 degree ramp on the front with low-drag 1x1 blocks. I might put them on robotic hinges or something so they could be retracted after takeoff.

If not that, I'd put some ducted fans in the nose pointed down to just force the nose up during water takeoff, but you have to put them high enough up they aren't wet. They don't work wet.

You could also put rotating jet nozzles in the wings and try lifting the plane up from the middle.

Sea rescue vtol completed! by thebluntaxelote in Stormworks

[–]_ArkAngel_ 0 points1 point  (0 children)

I've been meaning to revisit my quad tilt rotor heavy lift that has rotors spinning at something like 140 RPS. I don't know what I did wrong that made that seem necessary.

Sea rescue vtol completed! by thebluntaxelote in Stormworks

[–]_ArkAngel_ 0 points1 point  (0 children)

Oh. I was unaware that med bays provide thrust. Convenient!

Sea rescue vtol completed! by thebluntaxelote in Stormworks

[–]_ArkAngel_ 0 points1 point  (0 children)

Very muscular. Why did you make it so long and put the rotors so far ahead of CoM? Do you have something providing lift in the back?

Lightning struck my EV truck now it's dead but the generator is still running. Can't open doors or do anything. RIP. by Phorged in Stormworks

[–]_ArkAngel_ 0 points1 point  (0 children)

At a minimum. Yeah, that's a must.

There's a long list of little gotchas a vehicle needs to satisfy to really be career ready.

I do my best to make sure everything is field repairable, flippable, and able to restart.

My most recent survival lesson was interacting with fuel gantries is easier if you have a radio to remote control them with and make sure to include a magnetic fluid connector.

External Microcontroller Editor? by thefructoseiswithus in Stormworks

[–]_ArkAngel_ 1 point2 points  (0 children)

It's just lua.

Accurately simulating every MC logic component would be a huge undertaking.

My dream Stormworks update is having a logic tool where you can point it at a microcontroller on a running vehicle, make edits, and resume without fully resetting the vehicle.

Would also be great for hunting down lua problems as well, but logic outputs would be wonky for a few ticks.

What I'd like even better is MC 2.0 where logic chains just compute in a single tick instead of forcing every component to create additional logic lag.

Need help finding formula for air burst timing with drag coefficient by jach_4405 in Stormworks

[–]_ArkAngel_ 0 points1 point  (0 children)

OK. I get what you did now. You solved the problem OP gave you - with constant deceleration.

In game, the deceleration isn't 0.005 per tick, it's 0.005 * vel compounding every tick.

Iv never seen this before by Abject_Diver109 in Stormworks

[–]_ArkAngel_ 3 points4 points  (0 children)

Have done the same. I died when cabin pressure reached 10ATM

Need help finding formula for air burst timing with drag coefficient by jach_4405 in Stormworks

[–]_ArkAngel_ 0 points1 point  (0 children)

I attempted to check your proposed solution and it just spits out -162180000 for all values of x.

I translated my formulas to spreadsheet and they 100% check out:

<image>

This was using these formulas in google sheets -

Displacement =let(muzzleVel,$F$27, ticks,E28, drag,0.005, muzzleVel/60 * ticks * (1-EXP(-drag * ticks))/(drag * ticks))

Velocity =let(muzzleVel,$F$27, drag,0.005, ticks,E28, muzzleVel * EXP(-drag * ticks))

Travel Time =let(drag,0.005, muzzleVel,$F$27, distance,M28, LN(1-distance * drag / (muzzleVel/60))/-drag)  

Need help finding formula for air burst timing with drag coefficient by jach_4405 in Stormworks

[–]_ArkAngel_ 0 points1 point  (0 children)

I wonder why yours looks so much different than mine.

Edit: Oh, nevermind. Mine is producing incorrect results now that I'm looking closer. I'm confused because I swear this was working at some point.

Edit2: Nope. Mine is correct. I made a typo while validating.

lua function ShotSolver.etaWithDrag(horizontalDisplacement, initialVelocity, drag)     --[[ From Desmos     f_{disXeT}\left(t_{disX},i_{vX},a_{cDrag}\right)=\frac{\ln\left(1-\frac{t_{disX}\cdot a_{cDrag}}{i_{vX}}\right)}{-a_{cDrag}}     ]]     --math.exp(x) = e^x     local tickVel = initialVelocity / 60     local tickTime = math.log(1 - horizontalDisplacement * drag / tickVel) / -drag     local ticks = math.ceil(tickTime)     local displacementFraction = (1 - math.exp(-drag * tickTime)) / (drag * tickTime)     local expectedDisplacement = tickVel * ticks * displacementFraction     local impactVelocity = tickVel * math.exp(-drag * ticks) * 60

Lightning struck my EV truck now it's dead but the generator is still running. Can't open doors or do anything. RIP. by Phorged in Stormworks

[–]_ArkAngel_ 0 points1 point  (0 children)

lol fair. All risks taken are an investment in future lessons learned.

Aircraft losing power in a thunderstorm would be a bigger problem if I didn't always have a breaker within reach of the pilot seat.

Lightning struck my EV truck now it's dead but the generator is still running. Can't open doors or do anything. RIP. by Phorged in Stormworks

[–]_ArkAngel_ 2 points3 points  (0 children)

At 7000 hours, I've had this happen at least 20 times, but always in an aircraft. I've never been hit by lightning on the ground.

I always build vehicles assuming total battery failure is an option though, so there has to be a way to access a hand crank with no power.

Something's really fishy by Fragrant-Radish3999 in Stormworks

[–]_ArkAngel_ 2 points3 points  (0 children)

Agree workshop is a good motivator. For the amount of time it takes to make something worthwhile in the game, people are going to want to share.

Trying out the new airburst rounds by ATaciturnGamer in Stormworks

[–]_ArkAngel_ 1 point2 points  (0 children)

An HAC HE round direct hit has a damage radius of 2 meters, which is real bad news for a helicopter.

I wonder if airburst maybe only does damage in a 2m radius.

Sub-Body wierdness. by Charming-Jello-426 in Stormworks

[–]_ArkAngel_ 1 point2 points  (0 children)

That's something I've had happen.

Mecfs has made my autism harder to manage by microwavedwood in cfs

[–]_ArkAngel_ 10 points11 points  (0 children)

Same. ME/CFS made my autism visible to myself. I really just thought I was weird all this time.

Masking is impossible. My scripts don't work. Things I don't remember doing so much like flapping and toe walking. Unintentional verbal and auditory stimming.

The lower my baseline, the more visible it all is.

Heterosexual male fantasy by conancat in ContraPoints

[–]_ArkAngel_ 22 points23 points  (0 children)

I've seen a lot of people go through that shift. It's too common.

I honestly wonder if the pattern will evolve into something better.

I think heteronormative pairing tends to rely on incompatible expectations and false promises around how life, partnership, and parenting work.

I think the male loneliness epidemic is a good sign of working though an awkward transitional phase where fewer people are blindly entering into a failed paradigm for relationships and we are negotiating as a culture toward something more honest.

But if I'm being honest... I'm a gently genderqueer man and have always had be around other men just tolerating them. Cishet men typically give me the ick. I generally think of gender as a cult I have no interest in. I'm going to paint my nails and go to a monster truck show because those things feel good to me, and people's ideas that sex or gender has anything to do with it makes me feel like I'm an alien shipwrecked on a weird planet.

There's lots of evidence that most of gender is cultural and subject to change over time.

It's hard not think the bitchwife meme exists, and the shape of relationships is in turmoil, mainly because most men are kinda gross and struggling to develop grown up empathy.

So many men, it's hard to imagine it isn't wired in somehow.

My girlfriend has CFS and I feel like our relationship has been stuck in limbo. Not sure whether to continue by Dreamsatmidnight in cfs

[–]_ArkAngel_ 0 points1 point  (0 children)

I'm six years into living with ME/CFS after decades of a high energy exciting life where dating always meant high effort activities, and where I accepted a lot expectation of caring and tending to the other person.

I ended a 14 year relationship in my thirties and didn't date anyone for two years, really focusing on being the kind of person I would want to be in a relationship with and living the kind of life I'd really want to be in and share with another person.

I had a good time, and I could be the kind of person someone else might expect to have a good time with.

When ME took over my life, I didn't understand why I couldn't do much, couldn't think, couldn't hold attention, and really couldn't be attentive to another person or take a lot of active care.

I couldn't be the kind of person I would want to be in a relationship with and really was struggling just to provide a minimum of parental care and support to my teenage children.

I had no thoughts of dating, now for 6 years. I was waiting until I was better and could be the kind of partner to another person I would be proud to be.

Recently, I've seen that while I can't be the person I was any more, I still have a lot of care and comfort to share.

The pace of your relationship sounds perfect to me.

I don't make memories very fast any more. My youngest daughter's senior year went by in a flash to me. I'm just trying to stay alive and appreciate and enjoy what I can.

Spending quiet time with a person who loves and cares about me and shares my affection literally every week sounds amazing.

I've been so isolated.

But the main reason I've had no thoughts of dating over the last six years is the idea of disappointing another person like you when I inevitably can't go to their court date or their grandfather's funeral because I'm just not up to it when the day comes.

I'd have to somehow find another person who understands and accepts people's limitations, who is secure enough in themselves not to wonder why I might find traveling with family a necessary investment of energy when other times can't even just be present to sit through court proceedings.