Eriksonn

Members
  • Content Count

    43
  • Joined

  • Last visited

Community Reputation

45 Excellent

About Eriksonn

  • Rank
    Rocketeer

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Eriksonn

    What did you do in KSP today?

    I managed to capture an eclipse of Gilly. Not sure if it is rare, but due to the inclined orbit i think so...
  2. Ah, well then. I guess i will have to do a boring regular orbit closer to duna then. The problem with this contract in particular is that it says: maintain orbit over this Point. but that Point is directly under ike, so i cant really do anything...
  3. I seem to have a problem getting to Ike's L5 Point for some reason. It seems much more unstable than mun's L5 Point(I already have a stable relay sat there). I know minmus Lagrange Points are a bit weird due to the proximity to the mun and (maybe) the edge of kerbins soi, but ike has no stable Points as far as i can see. the reason is that a contract wants me to be in a stationary duna orbit, so i thought it would be nice to have it in ikes L5 Point as it is in the correct orbit. Why?
  4. Eriksonn

    What gameplay rules do you impose on yourself?

    I never kill kerbals obvously. I actually like to launch sattelites and probes instead of crewed missions on almost everything further than duna.(this also means less science in the mid-game so more intresting flight paths will be needed) I use the principia mod and i love to make really complex gravity assists to save every dv of fuel as i can, even if my craft has 5 times more than needed. I like ion Engines, and planning the burns with limited solar Power and unreliable Connection near sarnus is challengeing. I have a very strict "no space debris" policy. I always plan my stages so that they wont run out in the middle of a long transfer burn. I usually have the option on so that ksc is the only sattelite Point on kerbin. This creates interesting problems since almost all my ships are probes so i need alot of relays. I like to place relays in the L4 and L5 mun points as then they can always reach ksc. I also use OPM to give a Little more variation to where i can go. Sarnus moons were a bit wonky with n-body gravity so i had to move them about a little, that was also quite intreresting. At one point Tekto was kicked out into interplanetary space, that was fun.
  5. Eriksonn

    Tylo capture at jool to not use much of Delta V

    The most important thing for me is to enable the setting that shows closest approach at all times, this will make it easy to see where tylo is and where you want it when you arrive. And if it is wrong you mess with prograde/radial until the closest approach markers come closer to eachother.
  6. Eriksonn

    Show off your awesome KSP pictures!

    This was from when i used GPO a while ago, dont use it anymore but i still use principia. If you use GPO yourself you might notice that Olei is further out then usual, this is becauce it messed up the mun when being so close in.
  7. Eriksonn

    What did you do in KSP today?

    Nothing too exiting apart from redoing the orbits of Sarnus moons so that they would not go crazy becauce of principia, and also alot of timewarp. First ovok became unstable becauce of Eeloo, so i moved Eeloo out a bit but the slate messed up Eeloo so i had to move it out aswell. It ended with Slate kicking out Tekto into interplanetary space but now Everything seems alright except that hale and ovok get very high inclinations after about 10 years for some strange reason. Now i can start my new carrer mode without principia yelling at me that ovok is weird.(I cant max timewarp in my carrer game now becauce of that. And that is essensial for opm...) But nothing really apart from that.
  8. Eriksonn

    What is the craziest mission you have EVER done?

    I dont know if it was crazy, but it sure was hard. A long time ago i made my first interplanetary ssto, and it was going for laythe… Everything went quite well until i was about to exit laythes soi. I cant remember exactly but i think i had about 600 dv i laythe orbit or something like that, way to Little at least. So i had to gravity assist like crazy to get home. I think it became Laythe->Vall->Tylo->kerbin->eve->eve-kerbin. and when i entered kerbins atmosphere i had 15 dv left. It was 3 full orbits between the last eve encounter and kerbin. It was very tight.
  9. Eriksonn

    So I decided to make a solar system...

    I dont think that moons are possible in this simulation due to 1.The planets are very big compared to their own soi, 2. They are too close to the sun, 3.The timesteps are too large.(ie. the moon "teleports" past the planet before being able to orbit). I also think that it wont work becauce of the order in when stuff happens. When most larger planets form it is in the time when there is lots of chaos everywhere, and so not good time for moons. And in the end when things are stable there are no more tiny asteroids left to be captured anyway. I managed to get a moon to orbit a planet by spawning them manually, but it was a very narrow range of values that could support it. Sidenote: i dont actually know the masses of the larger planets in the end of my simulations, so i might have chosen lower mass on my planet that what is possible. All objects in the cloud are spawned randomly, but you can manually add new planets if you want to. If no velocity is given they are put on circular orbits.
  10. Eriksonn

    So I decided to make a solar system...

    I did Another run and found something intresting. It ended up similar to the previous one but with a small object in a very inclined orbit but the same radius as the big outer planet. It is rare for those inclined ones to survive for very long. It is in a horseshoe orbit with the big one. That basically means that it is in a slightly different orbit and alternates between inside and outside compared to the big one. The inner 2 planets are in a 5/3 resonance with each other.(5 blue orbits in the same time as 3 cyan orbits) This makes them stable and dont get messed up by the other planets.
  11. Eriksonn

    So I decided to make a solar system...

    The code is not that long and all the intresting stuff is at the top, so finding the values you want to change should not be that difficult. I have variables for the amount of asteroids, their average mass and the size of the cloud and a bunch more stuff you can play around with. I can link the code and you also need processing to run and edit it. (Code liked in original post) you dont have to wait that long, becauce once the amount goes below 100 the amount you can warp increases very fast. when there is ~10 things left i get the warp to over 10k without problems at all. (~400 years per second) I just used newtons gravity formula to calculate the forces between the bodies and then moved them according to those forces. And made them collide if they touched each other. Nothing too complex going on here. The asteroids also dont pull on things to make the fps a bit better at the start.
  12. I have been playing around recently with some n-body gravity and such, and i made this nifty thing. It starts with 800 "asteroids" orbiting a star, and after some time they collide and form planets that then merge to make a small solar system with stable orbits. Now that i have got it into a mostly finished state, i thought i would share it here to see what people think about it. It is in 3d so they have inclination also but i am showing it top-down so it is easy to see. So, lets get into it: It starts with 800 asteroids around a star. Then the first planets form: When more planets form, they start pulling on eachother and some get unstable. If you look closely some have much higher eccentricity than the rest, like that purple one in the center (he collided soon after). After alot more timewarping(it goes faster with fewer objects), they settle down into 3 planets, with a few "comets" on the outside. (You might need to magnify the image to see them) It usually end up with 3-4 planets in the end, but this one almost had 5 until the 5th one got wonky and messed everything up. Edit: Here is the code for anyone who wants to play around with it. You are free to ask questions about any problem you might have. https://processing.org/download/ I couldnt figure out how to put the actual file here so i did this instead. If anyone knows how to put files here, let me know. Just make a new processing program and copy this in there and it should work. ArrayList<Planet> Planets=new ArrayList<Planet>(); int PathLength=60; int pathStep=20; Sun sun; float LineLimit=0.3;//only draw lines when mass is above float G = 0.1; boolean SpedUp=false; boolean HasPressed=false; int Warp=1; PGraphics G3D; PGraphics G2D; float rotY=0; float rotX=0.5; float cameraSize=4; int OldSize=0; float Year=0; float YearSpeed; void setup() { size(800,800,P3D); G2D = createGraphics(90,70); G3D = createGraphics(width,height,P3D); OldSize=width+height; colorMode(HSB); sun = new Sun(); //you can manually add planets like this if you want, and remebmer to comment out the cloud function //Planets.add(new Planet(new PVector(sun.Pos.x-550,sun.Pos.y),new PVector(),0.5)); GenerateCloud(sun); } void GenerateCloud(Sun sun) { float R=1000; float a = (R+R*0.1)/2; YearSpeed=1/(PI*sqrt(a*a*a/(G*sun.Mass))); println(YearSpeed); int Amount=800; float Ratio=600;//sun-disc mass ratio float SolarMass=sun.Mass; float AverageMass=SolarMass/(Ratio*Amount); println(AverageMass); for(int i =0;i<Amount;i++) { float r=R*sqrt(random(0.1,1)); float A=random(2*PI); float Mass = AverageMass*random(0.7,1.3); Planets.add(new Planet(new PVector(sun.Pos.x+r*cos(A),sun.Pos.y+r*sin(A),random(-r,r)*0.05),new PVector(),Mass,color(random(255),255,255))); } } float getGrav(PVector D) { return 1/(D.magSq()); } float getSize(float Mass) { return sqrt(Mass)*2; } void draw() { if(OldSize!=width+height) { OldSize=width+height; G3D = createGraphics(width,height,P3D); } for(int i =0;i<Warp;i++) { Year+=YearSpeed; update(); UpdateSunGrav(); } G3D.beginDraw(); G3D.camera(200*cameraSize,0 ,0, 0.0, 0.0, 0.0, 0.0, 0.0, -1.0); G3D.background(0); G3D.rotateY(rotX); G3D.rotateZ(-rotY); G3D.strokeWeight(2); show(); G3D.endDraw(); image(G3D,0,0); G2D.beginDraw(); G2D.background(0); G2D.text("Amount:"+Planets.size(),20,20); G2D.text("Warp:"+Warp,20,40); G2D.text("Year:"+round(10*Year)/10.0,20,60); G2D.endDraw(); image(G2D,0,0); } void update() { Planet[] Crashed=new Planet[2]; boolean crash=false; for(int i =0;i<Planets.size()-1;i++) { for(int j =i+1;j<Planets.size();j++) { Planet P1 = Planets.get(i); Planet P2 = Planets.get(j); PVector D = PVector.sub(P1.Pos,P2.Pos); boolean P1Line=P1.Mass>LineLimit; boolean P2Line=P2.Mass>LineLimit; if(D.magSq()<sq(P1.R+P2.R)) { Crashed[0]=P1; Crashed[1]=P2; crash=true; }else if(P1Line||P2Line) { float F = G*P1.Mass*P2.Mass*getGrav(D); D.normalize(); D.mult(F); if(P2Line) P1.Speed.sub(PVector.div(D,P1.Mass)); if(P1Line) P2.Speed.add(PVector.div(D,P2.Mass)); } } } if(crash) { Planet P1 = Crashed[0]; Planet P2 = Crashed[1]; int id=0; if(P1.Mass<P2.Mass) id=1; float mass=P1.Mass+P2.Mass; PVector pos = PVector.add(P1.Pos,P2.Pos).div(2); PVector spd=PVector.add(PVector.mult(P1.Speed,P1.Mass),PVector.mult(P2.Speed,P2.Mass)).div(mass); Crashed[id].Pos=pos; Crashed[id].Mass=mass; Crashed[id].R=getSize(mass); //println(Crashed[id].R); Crashed[id].Speed=spd; Planets.remove(Crashed[1-id]); } crash=false; for(Planet P:Planets) { float KillDist=(width+height)*3; PVector D = PVector.sub(P.Pos,sun.Pos); float DistSq=D.x*D.x+D.y*D.y; if(DistSq<sq(P.R+sun.R)||DistSq>sq(KillDist)) { crash=true; Crashed[0]=P; }else { float F = G*P.Mass*sun.Mass*getGrav(D); D.normalize(); D.mult(F); P.Speed.sub(PVector.div(D,P.Mass)); P.Pos.add(P.Speed); if(P.Mass>=LineLimit) { P.PathTimer++; if(P.PathTimer>pathStep) { P.Path[0]=new PVector(P.Pos.x,P.Pos.y,P.Pos.z); P.PathTimer=0; for(int i = 0;i<PathLength-1;i++) { int i2=PathLength-i-1; P.Path[i2]=P.Path[i2-1]; } } } } } if(crash) { Planets.remove(Crashed[0]); } } void UpdateSingleBody(Planet Main) { for(int i =0;i<Planets.size();i++) { Planet P1 = Planets.get(i); if(P1!=Main) { PVector D = PVector.sub(P1.Pos,Main.Pos); float F = G*P1.Mass*Main.Mass*getGrav(D); if(F<0.01) { D.normalize(); D.mult(F); P1.Speed.sub(PVector.div(D,P1.Mass)); Main.Speed.add(PVector.div(D,Main.Mass)); } } } } void UpdateSunGrav() { for(int i =0;i<Planets.size();i++) { Planet P1 = Planets.get(i); PVector D = PVector.sub(P1.Pos,sun.Pos); float F = G*sun.Mass*getGrav(D); //D.normalize(); D.setMag(F); P1.Speed.sub(D); P1.Pos.add(P1.Speed); } } void show() { G3D.strokeWeight(1); for(Planet P:Planets) { G3D.stroke(P.C); for(int i =0;i<PathLength;i++) { if(P.Path[i]!=null) { G3D.stroke(P.C,lerp(255,20,i/(float)PathLength)); if(i==0) G3D.line(P.Path[i].x,P.Path[i].y,P.Path[i].z,P.Pos.x,P.Pos.y,P.Pos.z); else G3D.line(P.Path[i].x,P.Path[i].y,P.Path[i].z,P.Path[i-1].x,P.Path[i-1].y,P.Path[i-1].z); } } G3D.noStroke(); //stroke(0); if(P.Mass<LineLimit) { //fill(P.C); G3D.stroke(P.C); G3D.point(P.Pos.x,P.Pos.y,P.Pos.z); G3D.noStroke(); }else { G3D.fill(P.C); G3D.translate(P.Pos.x,P.Pos.y,P.Pos.z); G3D.sphere(P.R); G3D.translate(-P.Pos.x,-P.Pos.y,-P.Pos.z); } } G3D.fill(sun.C); G3D.sphere(sun.R); } void mouseWheel(MouseEvent event) { float e = event.getCount(); if(e>0) { cameraSize*=1.2; }else if(e<0) { cameraSize/=1.2; } } void mouseDragged() { rotY+=(mouseX-pmouseX)/200.0; rotX+=(mouseY-pmouseY)/200.0; rotX = constrain(rotX,-PI/2,PI/2); } void keyPressed() { if(key=='+'&&keyPressed) { Warp=(int)(Warp*1.3)+1; }else if(key=='-'&&keyPressed) { if(Warp>1) Warp=(int)(Warp/1.3)-1; } } class Planet { PVector Pos; PVector Speed; PVector[] Path; int PathTimer; float Mass; float R; color C; Planet(PVector Pos,PVector Speed,float Mass) { Path=new PVector[PathLength]; C=color(random(255),255,255); R=getSize(Mass); R=max(R,2); this.Pos=Pos; if(Speed.magSq()==0) { PVector D=PVector.sub(Pos,sun.Pos); float R = D.mag(); D=new PVector(D.y,-D.x); D.setMag(sqrt(G*(Mass+sun.Mass)/R)); this.Speed=D; }else this.Speed=Speed; this.Mass=Mass; } Planet(PVector Pos,PVector Speed,float Mass,color C) { this.C=C; Path=new PVector[PathLength]; R=getSize(Mass); R=max(R,2); this.Pos=Pos; if(Speed.magSq()==0) { PVector D=PVector.sub(Pos,sun.Pos); float R = D.mag(); D=new PVector(D.y,-D.x); D.setMag(sqrt(G*(Mass+sun.Mass)/R)); this.Speed=D; }else this.Speed=Speed; this.Mass=Mass; } } class Sun { PVector Pos; float Mass=36000; float R = 25; color C =color(50,255,255); Sun() { Pos=new PVector(0,0); } }
  13. I seem to have found a small problem. When looking at any planet it seems to use the sun direction that comes to your ship. so when looking next to the sun at jool i see only night at jool, when it should be full day there. Notice in the image that jool has the same Crescent shape as the Mun. Same thing happens with Duna.
  14. Eriksonn

    What did you do in KSP today?

    24 years is a very long time since when i made the config setting the problems occured in less than 4 years. Also the L4 and L5 Points are infact perfectly stable if there only is 2 bodies doing gravity(kerbin and mun). But in my system there is kerbin, mun, olei, minmus and olemut, in order of most important i Think. I had to put minmus in a 5/2 resonance with the mun in order for olei to not mess up minmus, so i Think that i have used up all stable orbits to put nightmare in so i might put it in kerbins L4 point instead. Sidenote, i launched some cubesats the other day on random orbits in the kerbin system and some "survived" in stable orbits, so i could perhaps use one of those orbits to Place nightmare in. Only problem is that principia dont like when objects get too Close so they might not work since they were Close to kerbin, but i might launch more cubesats and try to find better orbits…. Also, if you want to use it with stock the only problem is jool, and on the mod page there is a fix for that so dont worry about having to deal with all the weirdness i am giving myself.
  15. Eriksonn

    What did you do in KSP today?

    Since I use principia and principia allows for multiple reference frames, there is a special one for rendezvous. It clearly shows the orbital path relative to the target, Making it easy to get very Close. This orbit is actually just a regular elliptical orbit with an encounter at apoapsis ~1.5 orbits ahead. Sidenote: After 24 years of harmony mun kicked out nightmare from its orbit(the muns L4 point). I got very sad becauce i had placed it there when I started with this mod a month or so ago becauce i thought it would be stable. And now it turns out that it is not. And it messed up my relay sat in the process.