{"issue":{"milestone":{"created_at":"2011-05-21T09:12:15Z","title":"Version 2.0","creator":{"id":788702,"login":"Schroedingers-Hat","url":"https://api.github.com/users/Schroedingers-Hat","avatar_url":"https://secure.gravatar.com/avatar/134bb0a4e7e123bac83aa76c21042704?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"134bb0a4e7e123bac83aa76c21042704"},"open_issues":12,"state":"open","due_on":null,"closed_issues":2,"description":"To avoid getting bogged down in feature after feature, remove any thoughts of cosmology/astrophysics applications from v 1.0 and put them here.\r\nV 1 can be polished, and then a decision can be made whether to continue.\r\nThings like:\r\nEfficient handling of large numbers of objects.\r\nFaking or simulating gravity\r\nFocus on taking measurements/observations from the point of view of the observer in a realistic manner (ie. in reality measuring distance is hard, things like luminosity, angle spectra are easy. Distances and velocities are derived from these. For us, distance is easy, the other things are harder.).\r\nBackground objects\r\nHandling for gamma over 4000\r\nRealistic representations of distant stars (factoring in both luminosity and size so that they get small quickly, but don't disappear)\r\nGlare\r\nLighting","number":5,"url":"https://api.github.com/repos/Schroedingers-Hat/jsphys/milestones/5"},"user":{"id":788702,"login":"Schroedingers-Hat","url":"https://api.github.com/users/Schroedingers-Hat","avatar_url":"https://secure.gravatar.com/avatar/134bb0a4e7e123bac83aa76c21042704?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"134bb0a4e7e123bac83aa76c21042704"},"created_at":"2011-05-19T11:09:21Z","title":"Massive reduction in computation needed (no change in memory)","state":"closed","updated_at":"2011-12-16T20:15:30Z","labels":[],"id":926567,"html_url":"https://github.com/Schroedingers-Hat/jsphys/issues/36","closed_at":"2011-12-16T20:15:30Z","pull_request":{"patch_url":null,"html_url":null,"diff_url":null},"body":"We don't actually need to call updateX0 for anything for which position is a function every frame, no information is lost by not doing this.\r\nIt's fairly trivial to calculate the centre of mass, and radius of (or even a box containing) an arbitrary number of inertial bodies.\r\nWe can use this information to decide whether or not we're drawing a cluster (or cluster of clusters, or........) and if not, don't call updateX0, calcPast, or interact with it at all.\r\nAdditionally we can sort the objects in the cluster by their luminosities, if (r_furthestPoint-r_closestPoint)/r_middle is small enough we work through them until we decide not to draw one then ignore the rest. Calculate stuff in front first in hope of getting a nice large light normalization factor, so then we can ignore most of the red-shifted stuff.\r\nThis will change our algorithm from N computations to kN where k is the fraction of the universe which is visible, and large enough to make out.\r\n\r\nThis instantly changes our limiting factor for something about as sparse as a galaxy from CPU to memory, or possibly even the number of objects we can cram down the intartubes to the player. HDD storage of objects becomes a possibility.\r\n\r\nIf bandwidth becomes a significant limit, procedural generation becomes an option and as such a Minecraft style infinite universe, with a reasonable number of things in it. The only problem I can see with this is that giving people powerful telescopes will not really be an option.","number":36,"url":"https://api.github.com/repos/Schroedingers-Hat/jsphys/issues/36","comments":6,"assignee":null},"action":"closed"}