You are browsing as a guest. Sign up (or log in) to start making projects!

ASTRA

  • 23 Devlogs
  • 243 Total hours

Astral Space Laboratory. My first large scale project. ASTRA will be built up from a core of a IAS15 (+GR soon) simulation of about 100 objects with a focus on accuray. Users will be able to add in a theoretical spacecraft into the scene and use a google maps style waypoint approach. where the user will say, 'gravity assist: jupiter' and my lambart solver will do the rest. I think this is kinda cool, but it is proving much harder than i first thought as i have never done a scope close to this.

Open comments for this post

7h 33m 15s logged

Devlog 20

OK added a new feature. So atm my code on startup was taking the current date and finding the closeted date that i have provided data for(pos/vel). This was working fine but if you wanted to jump from now to next year you would have to have waited ages. So ive fixed that. This is also the fist ui i’ve made entirely in unity instead o figma, and i wont lie i really like how it looks. But as you can see the ui took 7h to get fully working (i hate ui so much dude 😭) there was like a bajillion edge cases and flags and things i needed to setup, not fun tbh. But im really proud of how it works and looks. Up next is not optimisation😭, im gonna start looking into implementing a lambert solver and a bacis spacecraft controller as this project is going to turn into a mission planner hopefully very soon (i hope, sep 30th is too close bro)

0
0
42
Open comments for this post

11h 11m 54s logged

Devlog 19

Optimise❌. Add and fix features ✅. Yup more procrasonation, but i have a massive list of changes.

  • The planet Preview in the UI no longer shows missing textures when there is no texture for the object, this is done with a deterministic shader i made using the moons id to color it in game and in the UI.
  • I’ve added a taskbar at the top that i’m really proud of tbh, its easily expandable and easy to use now
  • Fixed the labelling issue with the moons, as unused labels were not being dealt with correctly and would just stay on screen(this was actually a massive pain to do 😭)
  • +50 other small anoying fixes

What i still need to do tho is fix the fittery nature of the orbits, its because the orbits update their position before the camera updates its world position(the cameras stays at 0, 0 and a script updates the positions of everything within range accordingly, however this code runs at the start of the frame and the camera updates at the end, this shouldn’t be a difficult fix but i remember coding the camera to update late in the frame for a reason so this may be harder than i think)

0
0
42
Open comments for this post

10h 5m 54s logged

Devlog 18

ITS WOKRING. Ive attached a vid below(sorry for quality idk why its like that) and i will admit there are a few issues. Main one rn is optimisation, however that should be fine this is all being run on one thread and there are like 5 separate opportunities for parrailation, im not too worried about that. However, ive encountered one issue, in this i have forced the simulation to run faster than it wants to. The integrator i am using has a dynamic time step, so if two objects get close or get to fast the simulation slows down to more accurately simulate this. For the last few days my timestep ahs been stuck at 10^-9 of a second 😭, i have manged to fix this a small amount but i think the problem is in my data. Atm i have ~100 objs and i only just realise that i have two asteroids in a binary orbit within 2500km of each other, which is almost certainly causing the issue. idk what to do tbh, i think my only option woul be to delete one fo them from the data(not too hard if im being honest), but ima do a final check tomorro. but apart from that im so happy i finally got a semi working project now.

0
0
13
Open comments for this post

10h 5m 15s logged

Devlog 17

Major update, physics is working. However it is 100% wrong atm, marse flyes out of the system at supersonic speeds and neputne starts to fall towards the sun(pic below😭). I have no idea what could be causing this as i have spend so long looking at the code. I was hoping i would have this finished much faster than this tbh but yeah. My best guess is a div by zero or a verry small number causeing problems, but that can only happen if there are two bodys extreemly close together so idk. Anyways I hopw to get this fixed within the week so i can finnaly start working on what i want to work on(like this was meant to be the easy first step of waht i want).

2
0
81
Open comments for this post

10h 33m 37s logged

Devlog 16

Ok, physics is fully implemented, kinda. Ive got the logic down, but i haven’t managed to simulate even one step yet 😬. Theres like 20 reasons why, but the majority of them are NaNs so far which suprised me tbh. After a while i gave up and began working on the UI a bit more, it only took me a hour or two to setup but i think it looks good, you are able to input the wanted speed of the sim, and eventually it will show you the speed its running at (as the integrator i am implementing does not take uniform steps and adapts its step size the simulation speed will fluctuate like 100%). But i think tomorrow or atleast in the next few days the physics will be working, as i can feel that it is so close. but once this is done i can finally move onto the thing that im much more well researched in, mission planning(more in the projects bio if you want to see what i mean)

0
0
24
Open comments for this post

6h 52m 42s logged

Devlog 15

Did it, i’ve managed to get the labels to work. There are still a few visual things i want to fix (like they look horrible atm). And they dont resent properly yet, however ik why its just gonna be a pain to fix. I think ima decrease the font size a bit and add some deterministic colors? But one thing is that you can click on these labels like you can with the much eaiser to code planet ones and it will show you a popup of the object/calc its kep data and allow you to fly to it automatically which im pretty proud of.

0
0
69
Open comments for this post

6h 0m 26s logged

Devlog 14

Ok still putting off physics atm, butttt ive done some stuff. Ive done a bit of optimisation, like ive split up the rendering into layers, so there a camera that renders the background, there a cam that renders the planets and a cam that renders the orbits. Because of this i can have separate scales for each camera, so whist the planets/moons are scaled down by 10000x, the orbits are done by 10000000x. meaning i can reader eve pluto in a single frame with a semi useable clipping plane. Ive also made it so you can click on a planet and it will automatically update everything, which i have been wanting to do for ages as i now do not need to use the inspector anymore to update what planet we are looking at. However there is still one issue, this only works for the 9 objects that have a dedicated label, the other 100 moons/asteroids are innecesable. I want to make it so once you zoom far in enough to a moon its label will show, however for planets like jupiter they will all overlap and look bad, but i dont really want to add anymore overhead to the UI rn and idk what to do, like if you have two that overlap which one do you hide? But hopefully once i finally decide to finish the IAS15 ill move onto phase 2 which is implementing mission planning(this is what im better at so it should hopefully pick up soon).

Also one thing do the orbits look better when their full or when they taper off? I prefer full but idk

1
0
93
Open comments for this post

9h 39m 43s logged

Devlog 13

Ok major update. I have managed to implement thee and a half things rn. 1: the UI is fully working and scales and moves with the window if you resize it. 2: the Ui calculates the keplarna elements of any body using no hardcoaded info. 3: i am able to use these elements to do a crude simulation of one orbit allowing me to visulise the orbits. 3.5: I half implemented IAS15 got stuck and decided to do steps 1-3. However as you can see its running at 39 fps which is just not going to happen. Annoyngly my code only takes up like 2ms however the way i have set it up means the camera is incredibly resource intetive(i had an issue with not being able to see the orbits so i just made the clipping plane of the camera a stupidly large number. I think theres a way to make a Ui shader or smthin to visulise the orbits, however i aint that smart and i hate hlsl so much bro 😭) If i made the clipping plane smaller and optimised my end a bit i could prolly push this to like 100 as thats where i was at before idk tho.

0
0
87
Open comments for this post

11h 48m 16s logged

Devlog 12

Ok, tbh physics hasn’t been too bad so far. Ive spent a few days on it and its almost there, not much to add on that - next devlog or two will be finishing it up and making it multithreaded. In the meantime ive been working on some UI and im pretty proud of it. Like it could be better but its the first Ui ive ever made and it took like 2h to setup so its staying. (whats really cool is that you can change the size of the game window and it will automatically resize itself). However ive run into a weird issue. So for the UI im rendering a preview of the planet. And i have done everything that i can think of to optimise this but this camera is tanking the entire project by about 20-30fps(its worse rn as i have deep profiling on atm) and i have no clue why. Like if you can think of a optimisation ive prolly already done it. But anyways its prolly something simple that i keep on missing. A preview of the porject is below - ignore the numbers about earth they are wrong.

0
0
18
Open comments for this post

18h 38m logged

Devlog 11

Ok major update. I’ve rewritten the core code from the base up as I had so many unnecessary lists/arrays/variables etc. Also ive rewritten the camera  controller to be smoother and easier to use. Yes this is   still procrastination before implementing physics. I promise that in the next devlog I will have the physics working. (or atlest partially)

0
0
16
Open comments for this post

9h 43m 14s logged

Devlog 10

Before I implement physics i decided to procrastonate with optimisations. Good news: its now running at 200fps(used to be like 150ish). Bad news: Ive got to athually implent the physics. Ive been reading up on it and i understand a two body 2d form of IAS15, but ~100 ish body and 3D not so much. So the next few days may just be devlogs of planets moving hopefully where they should. Oh i also started to implent a trail that follows the planets, but its proving diffucult as ‘planet-space’ and ‘world space’ are complete diffrent local tranforms and for some reason i just cant figue out a fast way of converting between them (I have one solution but it does an unnesasay amount of divs per frame, which is eating up processing power that should go to physics). But so far this is it, oh i also added a ring that goes around the planet but ive not got a screenshot of it and im not waiting 5m for unity to open so js imagine rings next to the labels in the same color as the label

0
0
12
Open comments for this post

9h 33m 49s logged

Devlog 9

I finally did it!!! So ive spend the last like week trying to use SPICE data (a fancy way of getting data avout planets like pos, vel ect - and like so much more) in my unity project. Ive managed to write a python script (as there is no good wrapper for C#) that converts the ~10gb of data i have into about 25mb of data i need in my own format(spanning from 2000-2030, i want to update this to 2100, however data for some asteroids only go to 2030). This is absolutely overkill, but so far its the only option i have, but the good news is i can ship the porject with this data and avoid the trouble with trying to compress 10gb of data as there is no way im shipping a project that is 90% useless data. Ive prolly explained what ive done really badly but idk its finally done. (attached below is proof that ive got the data - ignore the horrible color choices and lack of visible planets plz). Next up: implementing IAS15.

0
0
5
Open comments for this post

11h 34m logged

Devlog 8

Been working on implementing IAS15(a physics solver for space sims, its not as bad as it sounds although the paper is soo confusing bro). So far its going ok. But i think im going to have to do an entire overhaul of my architecture, as i think i have redundant arrays and variables taking up memory (IAS15 calls on variables like thousands of times per frame and i want to minimise cache misses). Also I still havent managed to get SPICE to work in C# yet either. I think over the next few days i will focus on refining the architexture insted of logic. So far this has taken me much longer than i thought it would 😭. I think my scope may be a tad ambitios to put it lightly as this is meant to be the core of the final project. (also yes this is the same image as last time, all the updates have been code, idk what to put)

0
0
8
Open comments for this post

9h 10m logged

Not really a devlog, js messing aroind wih optimasations n other stuff tbh (its like 11:30pm for me rn i just wanna get the time logef fir the last two days)

0
0
11
Open comments for this post

10h 3m 53s logged

Devlog 7

Massive change from last time. So for context atm I am building a solar system sim as a core for this project. And ive been trying to create some sort of method to simulate the moons without any heavy computation, as I assumed physically simulating ~500 objects would not be feasible. To put it lightly, ive wasted my time. Ive done a bit more research into the integrator i am planning to implement (IAS15), and turns out it can handle 1000 ish object just fine (even on a laptop) at only a few milliseconds per loop. So Now the next few days I will probably be spending on research on IAS15 and optimisation tricks for it. Something i need to decide soon is if this is going to be c# or hslsl as its alot of computation (so good for gpu) but its lots of complex computation (better for CPU). IDK tbh im larping CS atm, i have no idea what’s slow for a computer to run.

0
0
26
Open comments for this post

10h 33m 59s logged

Short one today. Ive sorta got about 5 diff things om activity workig on for this project atm, so i thought ill finally explain what this is. So the bameof this projct is Astra Labs (Still a work in progress rn) and its a mission planer. What im working on atm is the soalr system simulation and accurate inital data. But at the end of this you will be able to select a start/end pos and (this ive not figures out yet) be able to test oit hypothetical spacecrafts/routes. Im not selling it well tbh. Tryst me tho in like 3 months this is finna be 👌

0
0
9
Open comments for this post

8h 4m 59s logged

Devlog 6

The past few days I’ve been looking into NASA’s spice database, which is an incredibly powerful tool to get data about the solar system. I’m not sure if I’ve  mentioned yet but the core of this project is a solar system sim, which I’m hoping to be accurate to about 100yrs or so (probably less in the end, but I will push it as far as my computer can handle). To do this I’m using the RKF54 integrator(sounds scary but it’s just a glorified mean (kinda)), which is incredibly powerful and can be incredibly precise. But it still requires initial precise data, which I will use spice to generate. Now, spice is an incredibly well documented program, but from what i can find, its strength is python and C; neither of which unity supports (tbh i havent tried yet, but i assume). So at the moment ive tried like 50 different wrappers and plugins, and so far no luck. But its almost 100% on my end as I do not follow the website very well 😅. I’ve done a few other things in the meantime though, like ive finished my object shader(and my earth one too) and finally imported all the planet/dwarf planet textures. Once ive got spice to work, progress should hopefully start to take off.

0
0
8
Open comments for this post

10h 21m 49s logged

Devlog 5

Today I managed to finally get the camera working. Its not fully there yet, like I want to add logarithmic zooming and other minor things, but the core is working. The camera stays contently at the orgin, with objects moving around it. This gives me two main benefits, 1: i can store the cameras ‘real’ position as a double3, which removes all jittering due to floating point errors. and 2: culling objects is much easier as as part of the update loop on moving the objects involves calculating the distance between the objects, allowing us to cull all objects at a certain distance with virulently no more expense.

Ive also began working on the UI, but its more of a ‘just making it work’ UI than a ‘looking nice’ UI atm and graphic design will come much later.

0
0
9
Open comments for this post

8h 23m 33s logged

Devlog 4

OK stepped back from shaders. I’ve spent the last 3 days working on my camera movement script. I got the initial movement down on the first day. However, this project is using massive scales, so a float vector three isn’t enough precision. So (and im not fully done yet) but i’ve spent the last few days doing two things: 1: updating everything to doubles, 2:keeping the camera at the origin, and moving the scene around it (this way means we only work with objects around the origin)

There is still lots to do tho but ill be back once ive managed to make the camera script to work.

0
0
7
Open comments for this post

38m 16s logged

Devlog 3

Shaders are the best bro
I went into this thinking that i would hate learning hlsl and all of that. But to my surprise unity has a visual scripting system that works similar to scratch. I just wrote my first lighting shader ever in like 20m. 20 minutes is crazy, it took me 30m to make a hlsl shader that turns an object orange. ve attached what it looks like down below

0
0
9
Open comments for this post

43m 53s logged

Devlog 2

Short Devlog today. But I made my first shader!! Its extremely simple right now literally creating a coloured material, but tis something. But I think i’m going to stick to C# for the while being

0
0
12
Open comments for this post

33h 32m 57s logged

Devlog 1

Ok this is my first devlog of Astra. I wish i had more to show for 30h of work but sadly I corrupted my entire project about 20h in 😭 loosing about 2-3 days of progress. Luckily Most of this time was spent on building the architecture and importing/creating textures. I still have the google docs that I’m writing my notes down and thats got most of my ideas for the architecture. (by architecture i mean setting up scripts and gameobjects like ‘physicsSolver’ or ‘simManager’, this is probably not what architecture is but idk). However I had spent so long on my cameraColtroller script which was lowkey really cool. Like it had complete freedom in the scene and could move anywhere, you could select an object and the camera would smoothly ‘fly’ to the object and you could orbit around it. And this is the one thing i haven’t rebuilt yet. But ill see you in the next one when it should hopefully be rebuilt?

0
0
12

Delete project?

Are you sure you want to permanently delete this project? This action cannot be undone.

All devlogs, followers, and associated data will be removed.

Followers

Loading…