Planet Builder 1.0

The place to discuss creating, porting and modifying Celestia's source code.
Topic author
Rassilon
Posts: 1887
Joined: 29.01.2002
With us: 22 years 4 months
Location: Altair

Planet Builder 1.0

Post #1by Rassilon » 08.11.2002, 23:40

Ok I want to know from the comunity what features should be included in this software and help me out a bit maybe with how to go about doing it...well if its too complicated that is ;)...

I am thinking mainly of something that the user can enter star name and number of planets to begin...then will generate a template randomly or can be edited step by step...I will add as many of the variables I am aware of in the ssc files but would like to know if there are some Im unaware of...Im sure there are some...

It will also give a graphical representation of the planets as thier plotted inc warnings according to Kepler and Roche ;)...Most of my data will be surfacing from this site: http://www.dausha.net/sciences/orbits.shtml

So let me know what you want to see...and suggestions/opinions are welcome of course...
I'm trying to teach the cavemen how to play scrabble, its uphill work. The only word they know is Uhh and they dont know how to spell it!

Don. Edwards
Posts: 1510
Joined: 07.09.2002
Age: 59
With us: 21 years 9 months
Location: Albany, Oregon

Post #2by Don. Edwards » 09.11.2002, 03:36

Go for it Rass. It will making systems a heck of a lot easier.

Avatar
selden
Developer
Posts: 10190
Joined: 04.09.2002
With us: 21 years 9 months
Location: NY, USA

Post #3by selden » 09.11.2002, 04:24

Rass',

If you haven't already, you might want to take a look at StarGen. Since its author has been thinking about such things for about 30 years, it might have some useful ideas ;)

http://users.rcn.com/brons/NerdCorner/StarGen/StarGen.html

and then there's StarForm at
http://www.irony.com/StarForm.html
Selden

Topic author
Rassilon
Posts: 1887
Joined: 29.01.2002
With us: 22 years 4 months
Location: Altair

Post #4by Rassilon » 09.11.2002, 04:57

Thanx Selden...those will help greatly...I know Marc did one a bit back...more of a random generator though...Mine will be both random and editor...

Heres my progress on the star cluster generator...not quite what I want hehe

Image

What I need is a more spherical method applied...Anyone got some formulas I could translate to VB?? regular trig, geometry or C++ is acceptable ;)
I'm trying to teach the cavemen how to play scrabble, its uphill work. The only word they know is Uhh and they dont know how to spell it!

HankR

Post #5by HankR » 09.11.2002, 08:36

Rassilon,

Have you considered using Java?

- Hank

Topic author
Rassilon
Posts: 1887
Joined: 29.01.2002
With us: 22 years 4 months
Location: Altair

Post #6by Rassilon » 09.11.2002, 22:32

Not really...Im getting there in VB...Heres the code thus far that generates the cluster...

Code: Select all

Private Sub cmdStar_Click()
    Dim i As Integer
    Dim r, e, d As Double
    Dim s As String * 1
    starValue = Val(starText.Text)
    If starValue < 1 Or starValue > 1000000 Then Exit Sub
    If Val(hipText.Text) < 300001 Or Val(hipText.Text) > 9999999 Then Exit Sub
    starScript = ""
    radiusValue = Val(radText.Text)
    prgReport.Max = starValue + 1
    For i = 1 To starValue
        Randomize Timer
        r = Rnd(1)
        e = Rnd(1)
        d = Rnd(1)
        r = r - Rnd(1)
        e = e - Rnd(1)
        d = d - Rnd(1)
        r = r / (100 + (starValue - i))
        e = e / (100 + (starValue - i))
        d = d / (100 + (starValue - i))
        r = r * (radiusValue)
        e = e * (radiusValue / (Val(distText.Text) / 3000))
        d = d * (radiusValue * radiusValue)
        d = d * (Val(distText.Text) / 16000)
        raValue = Val(raText.Text) + r
        decValue = Val(decText.Text) + e
        distValue = Val(distText.Text) + d
        specType = Int(13 * Rnd(1))
        If specType = 0 Then s = "O"
        If specType = 1 Then s = "B"
        If specType = 2 Then s = "A"
        If specType = 3 Then s = "F"
        If specType = 4 Then s = "G"
        If specType = 5 Then s = "K"
        If specType = 6 Then s = "M"
        If specType = 7 Then s = "R"
        If specType = 8 Then s = "S"
        If specType = 9 Then s = "N"
        If specType = 10 Then s = "WC"
        If specType = 11 Then s = "WN"
        If specType >= 12 Then s = "Q"
        prgReport.Value = i
       
        starScript = starScript & "# HIP " & (Val(hipText.Text) + i - 1)
        starScript = starScript & Chr$(13) & (Val(hipText.Text) + i - 1) & " {"
        starScript = starScript & Chr$(13) & Chr$(9) & "RA  " & Format$(raValue, "0.0000")
        starScript = starScript & Chr$(13) & Chr$(9) & "Dec  " & Format$(decValue, "0.0000")
        starScript = starScript & Chr$(13) & Chr$(9) & "Distance  " & Format$(distValue, "0.0000")
        starScript = starScript & Chr$(13) & Chr$(9) & "SpectralType " & Chr$(34) & s & "5V" & Chr$(34)
        starScript = starScript & Chr$(13) & Chr$(9) & "AppMag " & Format$(20 - (Sqr(radiusValue)), "0.00")
        starScript = starScript & Chr$(13) & "}" & Chr$(13)
    Next i
    cmdExit.Visible = True
    starData.Text = starScript
    Open "c:\Program Files\Celestia\extras" & clusterLabel.Text & ".stc" For Output As #1
    Print #1, starData.Text
    Close #1
End Sub


Im still working out a more accurate way to have the cluster more spherical vs distance...hehe the funny thing is im using the clipping limit as a divisor...coincedence?

Lemme know if any of you find a better way...

Heres a pic of the finished NGC 107 cluster using this procedure...
Image

Image
I'm trying to teach the cavemen how to play scrabble, its uphill work. The only word they know is Uhh and they dont know how to spell it!

marc
Posts: 426
Joined: 13.03.2002
With us: 22 years 3 months
Location: Outback Australia

Post #7by marc » 10.11.2002, 02:01

That looks really cool ras.
Are you planning on modifying the selection of the spectral type? For instance F,G and K class stars are more common.

Im thinking something like this.

Code: Select all

specType = Rnd(100) 'zero to one hundred
               
If specType < 1 Then s = "O"     '1%  abundence
Else If specType < 40 Then s = "K"     '39%
Else If specType < 75 Then s = "G"     '35%
Else if specType < 100 Then s = "M"     '25%
End If


The abundance proportions would have to be researched and decided on of course. :wink:

Hank mentioned Java, It would be better than VB as then everyone with linux boxes can have a play with your program too.

As far as ease of programming goes, Ive used both and unless your using VB.NET I think you'd be better off with Java for the system generator.
Actually the .NET runtime framework is huge and a pain for people to aquire so forget i mentioned that. The JRE is only a few Meg in comparison.
I can help you get started if your interested in trying Java.

Topic author
Rassilon
Posts: 1887
Joined: 29.01.2002
With us: 22 years 4 months
Location: Altair

Post #8by Rassilon » 10.11.2002, 03:36

I might end up converting it to java at one point...just dont have it installed currently...

Yes I was thinking of something of that nature in global clusters...I am also employing a random planetary system generator...but not sure the percent chance of finding a system inside a global is...probably quite low I suspect...
I'm trying to teach the cavemen how to play scrabble, its uphill work. The only word they know is Uhh and they dont know how to spell it!

Topic author
Rassilon
Posts: 1887
Joined: 29.01.2002
With us: 22 years 4 months
Location: Altair

Post #9by Rassilon » 10.11.2002, 05:13

Whats the formula for finding the radius of a star using distance and apparent magnitude as coded in Celestia?

or the general law as applied in physics...
I'm trying to teach the cavemen how to play scrabble, its uphill work. The only word they know is Uhh and they dont know how to spell it!

erostosthenes
Posts: 62
Joined: 16.09.2002
With us: 21 years 9 months
Location: Phoenix, Arizona

Post #10by erostosthenes » 10.11.2002, 06:24

Rassilon wrote:Whats the formula for finding the radius of a star using distance and apparent magnitude as coded in Celestia?

or the general law as applied in physics...



Stellar radii are guessed at from their spectral class, not their apparent / absolute magnitude.

As far as the distribution of spectral types in globular clusters, you might want to do some research into what's called the Initial Mass Function or IMF. Usually it's something like the abundance of a spectral class is proportional to M^(-2.5) i think.

Topic author
Rassilon
Posts: 1887
Joined: 29.01.2002
With us: 22 years 4 months
Location: Altair

Post #11by Rassilon » 11.11.2002, 10:26

Ahh ok I figured out something that works so far...now I am wondering whats the best method for figuring out planet rotation?

Anyways heres an update...So far the generator will do the following:
* add a black hole to the center
* add pulsars using the model I did for psr1257+12
*add planets of varying shapes and sizes
* add companion stars and substellar objects
* add asteroids

All of which is optional...You can choose to add just the star cluster if you like...

Heres a few shots of the results...

Image

Image

Image

The last one is breathtaking...I could only imagine what it would be like with a landscape...Think I will model a few landscape planets to boot :mrgreen:

I am hoping this will be ready to download by tomorrow but I keep thinking of new options too add lol
I'm trying to teach the cavemen how to play scrabble, its uphill work. The only word they know is Uhh and they dont know how to spell it!

Avatar
selden
Developer
Posts: 10190
Joined: 04.09.2002
With us: 21 years 9 months
Location: NY, USA

Post #12by selden » 11.11.2002, 11:59

Well, planets with a high rotational speed , especially gas giants, will be slightly oblate.

Planets close to the sun may tend to be tidally locked in one way or another. (not necessarily one face toward the sun, but maybe some integral multiple or submultiple of their orbital period.)

In globular clusters, which are quite old, outer planets will have been stripped away by close encounters with other stars, so large systems will be rare.

Celestia needs to be able to mdel free planets and brown dwarf stars. Both have been detected by their infrared signatures in the Triangulum Nebula in Orion.

I hope these ideas help a little.
Selden

Stargazer_2098
Posts: 64
Joined: 02.05.2002
With us: 22 years 1 month
Location: Starship Thor Heyerdahl, continuing voyage

Post #13by Stargazer_2098 » 11.11.2002, 12:39

8O

Very good work! 8O 8) :D


Stargazer.
"We have lingered long enough on the shores of the cosmic ocean.
We are ready to set sail towards the stars
" --- Carl Sagan, Cosmos.
----
Member of the Noctis IV and Orbiter communities;
Visit Noctis
Visit Orbiter

Topic author
Rassilon
Posts: 1887
Joined: 29.01.2002
With us: 22 years 4 months
Location: Altair

Post #14by Rassilon » 11.11.2002, 18:01

Thanx Stargazer...I think when you try this out you will notice a resemblence to Noctis a bit ;)

selden wrote:Well, planets with a high rotational speed , especially gas giants, will be slightly oblate.

Planets close to the sun may tend to be tidally locked in one way or another. (not necessarily one face toward the sun, but maybe some integral multiple or submultiple of their orbital period.)

In globular clusters, which are quite old, outer planets will have been stripped away by close encounters with other stars, so large systems will be rare.

Celestia needs to be able to mdel free planets and brown dwarf stars. Both have been detected by their infrared signatures in the Triangulum Nebula in Orion.

I hope these ideas help a little.


Oblateness is a no-no in Celestia when making Gas Giants...atmospheres do not oblate well...so those you will have to pretend thier oblate lol...I will however look into the other factors more...There are some generated systems with 16 or more planets...I will end up having those more on the outskirt stars than in the core stars...I figure using the plotted distance vs relative distance of each star should give me a factor to work with...wont be too difficult to implement...

As far as Celestia modeling random planets...I suppose chris is leaving that up to us ;) but your right there should be more in Celestia...
I'm trying to teach the cavemen how to play scrabble, its uphill work. The only word they know is Uhh and they dont know how to spell it!

Avatar
selden
Developer
Posts: 10190
Joined: 04.09.2002
With us: 21 years 9 months
Location: NY, USA

Post #15by selden » 11.11.2002, 23:32

Ras',

Putting the larger systems in the outer areas sounds reasonable. Since globular clusters were formed at about the same time as the galaxy, the stars with eccentric orbits will have travelled through tne high density regions often. It seems likely that only a few planetary systems that happen to have nearly circular orbits near the outer fringes will have survived.

I wasn't trying to suggest that Celestia should generate random planets itself (or random stars, for that matter), but rather that it should let them be defined in .stc files or the equivalent. Apparently the ones they've found in Triangulum are about 8 times the mass of Jupiter and larger.

I guess what I'd like to see is the definitions of "stars" be made more general and that more specific details be allowed in their definitions in .stc files (like radial velocites and proper motions, to pick a feature at random ;) )
Selden

erostosthenes
Posts: 62
Joined: 16.09.2002
With us: 21 years 9 months
Location: Phoenix, Arizona

Post #16by erostosthenes » 12.11.2002, 01:43

selden wrote:
Putting the larger systems in the outer areas sounds reasonable. Since globular clusters were formed at about the same time as the galaxy, the stars with eccentric orbits will have travelled through tne high density regions often. It seems likely that only a few planetary systems that happen to have nearly circular orbits near the outer fringes will have survived.



normally i wouldn't argue, but this isn't quite correct. clusters formed long before the galaxy, and none of the stars in a cluster have circular orbits. clusters are generally 'hot' systems. that is, there is a high level of velocity dispersion. because there are so many stars in a cluster, no stable orbits can be attained.

Avatar
selden
Developer
Posts: 10190
Joined: 04.09.2002
With us: 21 years 9 months
Location: NY, USA

Post #17by selden » 12.11.2002, 02:25

I wouldn't call this arguing, rather pointing out where some of my long held asumptions may have fallen flat on tender parts of their anatomies :)

I was under the impression that the stars in globular clusters were classed as Population II stars, the same as are in the halo and the central regions of our galaxy, with comparable (very low) metallicity levels and thus comparable ages.

Population I stars like our sun are "second generation". In contrast to the Pop II stars, they have relatively high metallicity levels due to the heavy elements supplied by Pop II supernovas. The "generous" supply of heavy elements in the regions where they formed implies that Pop I stars are much more likely to have planets than Pop II stars.

I recently came across a paper mentioning that some white dwarf halo stars had been found with even lower metallicity (like none at all) than is observed in Pop II stars, hence predating them. They were somewhat jokingly being called Population III stars.

Ras' has been having so much fun generating planetary systems for his globular clusters that I really didn't want to burst his bubble. It's easy to rationalize things when we're having fun :) Open galactic clusters similar to the Hyades would be a much better venue for planetary systems, I think. I've been rashly assuming that the globular cluster generation and planetary system generation could be treated as separate options. e.g. when generating glob.clusters, set probability of planets to a very tiny value or 0.

So far as the chaotic motion of globular cluster stars is concerned, I certainly can't argue with that. About all one can predict is that the central condensation will increase while as a side effect other stars effectively get ejected, possibly leading to central black holes as Ras' already has allowed for.
Selden

Topic author
Rassilon
Posts: 1887
Joined: 29.01.2002
With us: 22 years 4 months
Location: Altair

Post #18by Rassilon » 12.11.2002, 02:50

Nah no bubble busting...I already know planetary systems are rare if not impossible in global clusters...Thats why I implemented the option to load planets and also once planets are generated there will be hardly any if not none at all in the mist of the cluster...There is also a % chance of planets occuring option in the generator that is user editable...This generator is geared to create or will in the near future vast seas of stars of all sorts of venues...Once the day comes that chris implements stars possible outside our galaxy this will be the tool to use to fill galaxies with matter ;)
I'm trying to teach the cavemen how to play scrabble, its uphill work. The only word they know is Uhh and they dont know how to spell it!

erostosthenes
Posts: 62
Joined: 16.09.2002
With us: 21 years 9 months
Location: Phoenix, Arizona

Post #19by erostosthenes » 12.11.2002, 07:39

selden wrote:I was under the impression that the stars in globular clusters were classed as Population II stars, the same as are in the halo and the central regions of our galaxy, with comparable (very low) metallicity levels and thus comparable ages.


yeh this is precisely what i was getting at, the stars in clusters are very old pop II stars, much older than the stars in the disk and bulge of the galaxy, or the bar for that matter :wink: . the halo is an all-together different subject and right now, its dynamics and origins can only be speculated at. the age of clusters alone would suggest they must be hot systems - otherwise they would've long ago collapsed into supermassive blackholes. moreover, it's been directly observed that they do in fact have extremely high velocity dispersions like elliptical galaxies, and are essentially triaxial, dynamically hot systems.

i can't remember who, but there is a team working on calculating the proper motions of millions of stars in the disk, and assuming their motions become more dynamic over their lifetime (due mainly to scattering off of heavy gas clouds) they hope to reconstruct the individual clusters that each star came from before it was integrated into the disk.

Topic author
Rassilon
Posts: 1887
Joined: 29.01.2002
With us: 22 years 4 months
Location: Altair

Post #20by Rassilon » 12.11.2002, 17:27

Well theres still one little thing holding me back from releasing this is the fact that I cannot seem to produce a cluster at a perfect spherical shape...Its still coming out very oblate like the first examples above...even more so the further out you plot it...so when having right ascention declination and distance in ly makes it almost impossible to come up with an even number between the three...so I come once again to you to ask if theres is some way of figuring this out to be perfectly geometrical...I am thinking no...

Besides I want it perfect otherwise I will get a slew of 'this is not spherical enough comments'...I think I may not release this as a global cluster generator but as a open cluster generator of sorts in the coming days...dunno...I wish I had Borlands builder as I absolutely hate VC and VB's not far behind...Basic is too limited sometimes and it seems I do better with C hmm suppose I could use Borlands 3.1 but imagine trying to compile a cluster in DOS of 10k stars hehe I think a retarded man once said 'No one will ever need more than 640k of memory'...
I'm trying to teach the cavemen how to play scrabble, its uphill work. The only word they know is Uhh and they dont know how to spell it!


Return to “Development”