galaxy simulation.
simulate moving through the galaxy - wherever you wish
do we have the galaxy mapped yet? last I knew, galaxy@home was working on it, and that was a long time ago.
also we can get the general star topological density/star demographics and randomize the particulars
use the organization algorithm where you divide a 3d space into 8 sub-cubes recursively, it should speed up storage access. each cube on the smallest level of granularity will contain a list of stars.
we access those cubes that fall within our viewing field from within a certain distance, that distance is related to the max distance from which you'll be likely to see an individual star
however, it may be faster to make this not the max distance necessary to see all stars, but only most stars, and then allow our star lists to link to exceptionally high-magnitude stars from neighboring cubes. every cube would link to all stars that might be seen from the maximum distance from which we access that cube that are bright enough that they may be seen from further than that max distance. then when we access those lists we do a filter by apparent magnitude/distance from our current position squared > X.
data to store about stars:
location
color temperature
size
brightness (or do color temperature and size make brightness redundant.)
we must also store a density map of the galaxy as a whole for backdrop.
to calculate granularity necessary for the density map, we need to know the maximum distance from which we will take into consideration all individual stars, and multiply that by the fraction of a complete circle that a single pixel spans at that distance.
where to draw the line with regard to distance we consider vs magnitude of star that needs to be crosslinked to other cubes is an optimization problem. it also depends on our smallest granularity of cubes which is also an optimization problem. we need to know:
cpu overhead of accessing an individual cube
cpu overhead of accessing an individual star
number of stars / volume of space
histogram of star magnitudes
minimum magnitude / distance^2 that's visible
how breaking cubes up smaller affects harddrive access speed
also relevant: frames per second the graphics card can do with a given number of stars (or we might just render stars manually)
we should also store nebulae. the problem is i don't think we have 3-d data on those. can we take 2-d data and guesstimate? or we could invent nebulae using a realistic generation algorithm
binary stars should actually revolve around each other. this means we must know period lengths for binary stars. i don't think we can deduce this from size and distance fields because mass/volume depends on the star's content. although star content can perhaps be deduced from size and/or color temperature.
visible pulsars should pulse when the beam of emission is pointing toward us.
i guess we don't know where the pulsars are though except the ones that periodically point toward earth, but based on frequency of ones taht point to earth we should be able to deduce the general frequency of visible pulsars and randomize them.
black holes should be included. calculate their relativistic effects on viewing field.
idea: if you travel too close to a black hole it will suck you up. also as you near the schwarzchild radius, wouldnt your view of all other stars be distorted, for example by frequency shifting?
it wouldn't really be consistent for us to show any relativistic effects, though, because at relativistic speeds it takes 4 years to arrive at the nearest star.
allow to travel far away from the milky way and see it from a distance. if we do our rendering well, it will be as if we're looking at any old spiral galaxy from a hubble image.
by making our nebula generator part of the application and making it deterministic we can allow very detailed explorations of nebulae
http://en.wikipedia.org/wiki/File:Eta_Carinae_Nebula_1.jpg