• Welcome to the new COTI server. We've moved the Citizens to a new server. Please let us know in the COTI Website issue forum if you find any problems.

Suggestion for T5SS and stellar data

dalthor

SOC-12
There was a prior discussion on T5SS stellar parsing, with some good ideas, and no apparent resolution. I posted an idea there, and then an updated version in the T5 forum. Some of the discussion was hard to follow and understand.

After a lot of playing with stellar data from TravellerMap, I have some thoughts and a suggestion. I use this IMTU, and it works pretty well. I simplified as much as possible.

Here I present the most recent version, for public consumption and use. If the T5SS can use and improve on it, praise the board!

I propose an expansion of the current T5 data format for the purpose of clarifying the OTU stellar data, in 2 separate parts. Each character in the initial segment represents one star.

The string starts with a P to indicate the Primary. For each additional star I add the e-hex value of the orbit, or a "c" for a companion, and go from left to right, one position per star, in the order above. I use a "." to represent a non-existent star. I put a space in the middle to make it easier to read.

IMTU I also have a custom 4-character field after that segment, which I call the POsH, used to "locate" the mainworld. This gives me the detail level I want IMTU. I'll add the POsH to my new indicator, with a dash as a separator.

P = planet type where 0 is planet, 1 is close satellite, 2 is far satellite, and 3 is asteroid belt
O is for the SOLAR orbit A-Z
s is the satellite orbit if MW orbits a GG, or a . (decimal) for a regular planet
H is the habitable zone indicator, - for HZ-1, = for HZ, + for HZ+1, or . for asteroid belt

This allows me to use EXISTING stellar info, and add my own interpretation of where each star is located, without fouling up YTU. This also means I DON'T HAVE TO CHANGE existing stellar data, but can do it my way by simply adding MY interpretation of the stellar data.

Here are some examples, taken from my current VB6 test sectors

Code:
Orbits    PoSH Stellar
--------- ---- ----------------
P... .... 01.- K5 V              >>> Primary only, planet in solar orbit 1, not a satellite, HZ-1
P.2c .... 02.- G4 V M6 VI K5 VI  >>> Close in orbit 2 with a companion, MW is planet in orbit 2, HZ-1
P... 6... 01B+ M8 VI BD          >>> near dwarf orbit 6; MW is solar orbit 1, satellite orbit B, HZ+1 
Pc.. .... 36.. DM BD             >>> primary with companion; MW asteroid belt in orbit 6

Pros:

o Consistency for future pubs/users
o Clarifies location of each existing star
o Ignore it if you don't want to use it
o Uses existing stellar data
o Almost NO PoSH indicators in the current data
- Regina and a couple of others added "Sa" (satellite) but that can be manually tweaked
- If an "official" data source gives details, use that data instead of random determination
o No changes to existing remarks needed, PoSH gives that info for remark generation

Cons:

o Adds about 15% to the overall length of the T5 data line
o Will take some work to create the OTU version
- Primary is easy; additional stars may be close, far, or far companion
o Can "add" remarks based on HZ (Co, Ho, Tr, etc) or Satellite
- that is IF they generate new remarks based on the data
o Something new to have to learn/figure out/adapt to

I'm sure there are other pros and cons, I leave those as an exercise for the reader. For example, MW is not tied to a specifi star at this time. ONE additional character in the PoSH could fix that.

Thoughts welcomed, criticism accepted, and willing to contribute.
 
During a recent phonecall, I was asked why I bothered to put this suggestion forward, especially considering the lack of response it generated.

I pulled the 35 main sectors down from Traveller Map, and went thru the remarks, looking for those related to the MW and habitable zone. I then generated PoSH for use IMTU, and updated the remarks accordingly. My data set is about 3 weeks old at this time, and I'm using it for the segment below.

If a world was marked a Garden World in the OTU, I kept it that way, and left it in the habitable zone. Didn't dig into the data to find the count disparity - it is mostly due to additional worlds meeting the criteria, also (Garoo) in at least one remark.

Asteroid (As) is determined by world size, I left that alone as well.


Here are the results:

Code:
Item		OTU	IMTU	Notes
--------------	---	-----	----------------------------------------------------
Asteroid belts	471	389	' disparity mainly due to Aslan in OTU remarks
Cold		3	1957	' OTU: matched to "O:Core" on all 3
Frozen		0	0
Garden		870	884
Hot		1	638	' OTU: matched to Hoa in remarks
Locked		0	1219
Satellite	5	2451	' OTU: Regina, Dinom; also matched 3 native races
Tropical	2	80	' OTU: matched to "O:Troj" on both
Tundra		0	263
Twilight zone	0	8668

Based solely on the remarks, only TWO mainworlds are satellites. All MWs are either Asteroid belt or are in the habitable zone; none are in HZ-1 or HZ+1, and none are frozen (that code isn't randomly available in T5 generation without mods)

My suggestion may not be viable, but the thought process is based on the data itself. Personally, at the least, I like the PoSH portion, because it does add that variety to the mainworlds, and would give a consistent base, without forcing a remark update.

The remarks could be updated accordingly if so desired, but even just giving the PoSH would have the same general effect, without needing to update remarks. I originally planned PoSH for purposes of travel time. The OTU portion came later, as I was looking at the current data.

=====

Is there something in the works for the T5SS to address this? Just curious...

Anyway, need some rack time. Thanks for letting me rant, and as usual

YMMV
 
I just noticed this. I've been off and on sick for a month, and have not been giving CotI the attention I should have. Reviewing.
 
Here's the biggest problem we have with virtually all OTU data...

No one kept the information we're needing for parsing. So in reality, we're looking for a way to re-determine those details.
 
Here's the biggest problem we have with virtually all OTU data...

No one kept the information we're needing for parsing. So in reality, we're looking for a way to re-determine those details.

Don, I agree, there is no practical way to figure it out, unless the original rolls were documented, and can be found and revealed. I (sort of) broke down the HZ and satellite versus planet stuff in my earlier post - the PoSH portion. I randomly determined MW type where available data didn't give hints or specifics. I've already coded my own PoSH generator, which I used for the statistics in second post of this thread.

Here is what I've been contemplating for stellar placement. I separate this process from that of determining PoSH, though someday the two may be linked. I don't get into stellar effects on the MW at this time - too complex for me to bother with right now. I'm just working on a baseline, and I'm pulling the stellar data from the existing T5SS data downloaded from TravMap.

For the basics, T5 stars can be Primary, Close, Near, and Far, and each of these may have a companion. Close orbits are 0-5, near orbits 6-11, and far orbits 12-17. I'll refer to these as ZONES hereafter. The process below is based on the 35 sectors typically considered as the base OTU.

An orbit falls within a ZONE (close, near or far), and the ZONE has a range of orbits.

MIN will represent the innermost orbit I can roll, and MAX will represent the outmost orbit I can roll. MIN will default to zero, and MAX will default to 17.

The first star will always be assumed as the primary. This is the simplest case, requiring no further action if there is only one star in the hex.

If there are 4 stars, this special case follows book 6 (Scouts) for a hex with 4 stars. The 3rd is automatically a far star, and the 4th is a far companion. MAX will be set to 11, since we already have two stars in far orbit, and don't want to roll an orbit beyond 11. I'll randomly roll the far orbit as 1d6+11 for use in my Orbits field. I will then generate a single orbit using the method below, and use that method to place the second star. The second star could therefore be a primary companion, or a close or near star with no companion.

These are the listings I found with four stars, making it VERY RARE in the OTU.
Code:
 - Dark_Nebula.txt: 2511 Lima             M3 V M8 V M6 V M0 V
 - Empty_Quarter.txt: 0426 Marhaban       G4 V M0 V M2 V M6 V
 - Empty_Quarter.txt: 1729 Hemant         M0 V M6 V M3 V M7 V
 - Solomani_Rim.txt: 1440 Capella         G8 III G1 III M1 V M5 V

I need to roll an orbital postion for the first star we still need to place. The orbit will range from MIN (always zero at this point) to MAX (either 11 or 17.)

If the rolled orbit is less than the minimum available orbit allowed for the primary (see T5, pg 43, table 5), the second star is INSIDE the primary, i.e. a primary companion. MIN will be set to the first available orbit around the primary for future rolls. Otherwise, the orbit stands as rolled, and MIN is still zero. MAX remains the same. ZONE is determined by that orbital position.

If I have another star to place, I generate another orbit in the range MIN to MAX.

If the roll puts the orbit in the same ZONE as the prior star, it will be a companion of that star, otherwise it will be a stand-alone star in the orbit rolled.

I use the orbits I generate to build my Orbits field. IMTU, I mainly use that for travel times. It may also be useful for jump masking for those that get to that level of detail.

Computers make it easy to generate random numbers in a range; I haven't done any tinkering using nD6 at this time. Putting this into code may or may not be a trivial task. I haven't started the stellar portion yet. This is my first draft.

Ideas, comments, and suggestions are appreciated.
 
Here's the biggest problem we have with virtually all OTU data...

No one kept the information we're needing for parsing. So in reality, we're looking for a way to re-determine those details.

*** What needs to happen for you to parse the data? What work or coding needs to be done? ***

Shalom,
Maksim-Smelchak.
 
Aren't you basically asking, Why don't you just redetermine the existing stellar data for the OTU?
 
*** What needs to happen for you to parse the data? What work or coding needs to be done? ***

To clarify, the problem is not parsing of data (i.e. throwing code at it). Due to the limited structure, the extant T5SS data set simply does not contain sufficient information to uniquely specify the actual stellar structure of the systems, which is what is required by this thread.

For example, given "M3 V M8 V M6 V" you can't determine whether it is a primary/companion+far, primary+close+near, primary+close+far, primary+near+far, primary+far/companion, etc...

So, as dalthor and DonM write, the only thing code could do is decide using heuristics and/or randomly or regenerate the data.
 
Last edited:
To clarify, the problem is not parsing of data (i.e. throwing code at it). Due to the limited structure, the extant T5SS data set simply does not contain sufficient information to uniquely specify the actual stellar structure of the systems, which is what is required by this thread.

For example, given "M3 V M8 V M6 V" you can't determine whether it is a primary/companion+far, primary+close+near, primary+close+far, primary+near+far, primary+far/companion, etc...

So, as dalthor and DonM write, the only thing code could do is decide using heuristics and/or randomly or regenerate the data.


Are we considering the basic level of parsing-detail of the EDG Stellar-Code information published in the TNE:1248 supplements to be non-canonical (at least, to the degree of granularity that that code details)?
 
To clarify, the problem is not parsing of data (i.e. throwing code at it). Due to the limited structure, the extant T5SS data set simply does not contain sufficient information to uniquely specify the actual stellar structure of the systems, which is what is required by this thread.

For example, given "M3 V M8 V M6 V" you can't determine whether it is a primary/companion+far, primary+close+near, primary+close+far, primary+near+far, primary+far/companion, etc...

So, as Dalthor and DonM write, the only thing code could do is decide using heuristics and/or randomly or regenerate the data.

Well, I have worked on stellar data at the Traveller wiki and even designed, with TJonesLo, binary and trinary tracking systems. I have also worked on 4-, 5-, and 6-star systems. Yes, there are 6-star systems in the Solomani Rim and Spinward Marches if I recall correctly.

I assume, and yes I know about assumptions, that the order of the listing indicates its position.

So "M3 V M8 V M6 V" means:

Primary: M3 V
Secondary: M8 V (near companion)
Tertiary: M6 V (far companion)

Since it's theoretically possible for multi-star combinations to happen in a great variety of mixes, I figured it was good enough for gaming.

It certainly works for a fictional universe... But, maybe I'm pragmatic.

Shalom,
Maksim-Smelchak.
 
I assume, and yes I know about assumptions, that the order of the listing indicates its position.

So "M3 V M8 V M6 V" means:

Primary: M3 V
Secondary: M8 V (near companion)
Tertiary: M6 V (far companion)

Since it's theoretically possible for multi-star combinations to happen in a great variety of mixes, I figured it was good enough for gaming.

It certainly works for a fictional universe... But, maybe I'm pragmatic.

But the T5 Star-System generation rules give much more specific detail concerning the actual stellar configuration (it can handle up to an 8-star system, along with their actual relative positions and orbital configurations). I think this is the level of detail that is being considered for the T5SS Data, since it is supposed to be T5 data. The question is, what is the easiest way to determine all of the configurations, and how do we parse it (clearly) for TravellerMap once we do?

Some of the TNE:1248 material had made a (pre-T5) attempt at a more granular level of stellar-detail for certain sectors, but not all.
 
But the T5 Star-System generation rules give much more specific detail concerning the actual stellar configuration (it can handle up to an 8-star system, along with their actual relative positions and orbital configurations). I think this is the level of detail that is being considered for the T5SS Data, since it is supposed to be T5 data. The question is, what is the easiest way to determine all of the configurations, and how do we parse it (clearly) for TravellerMap once we do?

Some of the TNE:1248 material had made a (pre-T5) attempt at a more granular level of stellar-detail for certain sectors, but not all.

Sounds great. I'd love to see that and would be willing to put my time and effort behind it if anyone organizes it.

*** Thanks for making your point, Whulorigan. Will you organize it happening? ***

In the mean time, I, and others, are making this happen at the Traveller wiki:

Binary star systems: http://wiki.travellerrpg.com/Category:Binary_Star_System

Trinary star systems: http://wiki.travellerrpg.com/Category:Trinary_Star_System

Shalom,
Maksim-Smelchak.
 
Sounds great. I'd love to see that and would be willing to put my time and effort behind it if anyone organizes it.

*** Thanks for making your point, Whulorigan. Will you organize it happening? ***

DonM and I (and others) have already dialogued somewhat about this in the past. I am not sure where the issue stands at the moment, however.
 
DonM and I (and others) have already dialogued somewhat about this in the past. I am not sure where the issue stands at the moment, however.

If you'd like some help, I'm offering. I data entry and crunch with the best of them and even have half a mind for creative work if it's needed.

Thanks!

Shalom,
Maksim-Smelchak.
 
To clarify, the problem is not parsing of data (i.e. throwing code at it). Due to the limited structure, the extant T5SS data set simply does not contain sufficient information to uniquely specify the actual stellar structure of the systems, which is what is required by this thread.

For example, given "M3 V M8 V M6 V" you can't determine whether it is a primary/companion+far, primary+close+near, primary+close+far, primary+near+far, primary+far/companion, etc...

So, as dalthor and DonM write, the only thing code could do is decide using heuristics and/or randomly or regenerate the data.

Exactly. Since at this point, it is doubtful we could recreate the original, we'd be guessing at anything other than the primary.

For MTU, my solution works for me. I threw it out here as a possibility, and to get folks thinking about what to do.

There may not be any easy way...here are the notes I have in mind, stripped from my sector generator. I have a "stellar parser" of sorts started, and the following notes are for the next phase - generating T5 data using existing stellar data.

My notes:

' if not already extended systems, AND there is more than one star, we have work to do
' Note that this section is specific to my traveller universe. Normally, nobody cares
' about what orbits are occupied by stars, except for calculating travel time. I'm doing
' this just to convert the OTU into T5 format, with up to 8 stars in a hex! I want to know
' which stars are in which orbit.

' process further star stuff here for "standard" stellar line

' T5 stars can be Primary companion, Close/comp, near/comp, and far/comp
' close orbits 0-5, near orbits 6-11, far orbits 12-17
' first star will always be primary, and will be skipped in this step

' if there are 4 stars, 3rd is far, 4th is far companion (VERY RARE in OTU - 4 known occurances)
'Dark_Nebula.txt: 2511 Lima M3 V M8 V M6 V M0 V
'Empty_Quarter.txt: 0426 Marhaban G4 V M0 V M2 V M6 V
'Empty_Quarter.txt: 1729 Hemant M0 V M6 V M3 V M7 V
'Solomani_Rim.txt: 1440 Capella G8 III G1 III M1 V M5 V

' otherwise
' roll up to 2 orbits, based on number of stars. 2nd star is lowest orbit; 3rd is next, and has DM+4
' if lowest is <= min allowed orbit 2nd star is primary companion
' if not companion, move star to next open allowed orbital position (close or near)
' if 3rd star exists, if orbit now less than 2nd, or in same zone, becomes companion, otherwise
' place it based on orbit (near or far). If far already exists, make it near.

===

This is my first wag at it. Thoughts and help appreciated
 
' T5 stars can be Primary companion, Close/comp, near/comp, and far/comp
' close orbits 0-5, near orbits 6-11, far orbits 12-17
' first star will always be primary, and will be skipped in this step

' if there are 4 stars, 3rd is far, 4th is far companion (VERY RARE in OTU - 4 known occurances)
'Dark_Nebula.txt: 2511 Lima M3 V M8 V M6 V M0 V
'Empty_Quarter.txt: 0426 Marhaban G4 V M0 V M2 V M6 V
'Empty_Quarter.txt: 1729 Hemant M0 V M6 V M3 V M7 V
'Solomani_Rim.txt: 1440 Capella G8 III G1 III M1 V M5 V

"Primary" should normally mean the most massive star in the system (or in some cases, perhaps the most luminous). Since there is generally a relationship between stellar mass and spectral class (at least within a given luminosity class), based on your above examples the bolded stars should be the primary in each system respectively:

'Dark_Nebula.txt: 2511 Lima M3 V M8 V M6 V M0 V
'Empty_Quarter.txt: 0426 Marhaban G4 V M0 V M2 V M6 V
'Empty_Quarter.txt: 1729 Hemant M0 V M6 V M3 V M7 V
'Solomani_Rim.txt: 1440 Capella G8 III G1 III M1 V M5 V

You could perhaps suggest that the first star is always the star about which the mainworld orbits (whether or not it is the actual system primary).
 
Note also that the same guesswork applies to mainworlds - are they in the habitable zone? Are they satellites?

If I couldn't determine that from existing codes (Ga, As, or Sa for example) I just randomly rolled MW location and generated them for my own use.

See the 2nd post in this thread.

I wasn't trying to step on toes, or subvert anything, just get the thought process rolling. :)

Ed
 
"Primary" should normally mean the most massive star in the system (or in some cases, perhaps the most luminous). Since there is generally a relationship between stellar mass and spectral class (at least within a given luminosity class), based on your above examples the bolded stars should be the primary in each system respectively:

'Dark_Nebula.txt: 2511 Lima M3 V M8 V M6 V M0 V
'Empty_Quarter.txt: 0426 Marhaban G4 V M0 V M2 V M6 V
'Empty_Quarter.txt: 1729 Hemant M0 V M6 V M3 V M7 V
'Solomani_Rim.txt: 1440 Capella G8 III G1 III M1 V M5 V

You could perhaps suggest that the first star is always the star about which the mainworld orbits (whether or not it is the actual system primary).

I like and agree with your logic.

I think most of the original 35 sectors were based on CT sector generation, especially book 6, since that included stellar generation. I think the order listed in the data sets was based on order generated, which was primary first, then additional stars. It didn't account for stellar mass at all. I left it as listed for "compatibility" purposes - I didn't want to get pummeled. I'm already too pushy. lol

By the way, I haven't downloaded any updates in a couple of months. My counts may need to be revisited.
 
Last edited:
If you'd like some help, I'm offering. I data entry and crunch with the best of them and even have half a mind for creative work if it's needed.

Thanks!

Shalom,
Maksim-Smelchak.

For what it is worth, on the Wiki my Mikhail (I call it Varan) sector data uses the "standard" format. In my personal files, I use the extended format I described above, and include the PoSH.

I left the wiki data in original format so anybody that downloads the data can use it.

There are going to be significant updates to the Varan stellar data, and possibly to the UWP info as I bring it in line with T5 standards.

I'll send the update to TravMap to keep it current there as well, again without my custom format.
 
Back
Top