Home General


edited January 12 in General
This is a work-in-progress todo list for I, Voyager. The list will evolve over time, and I'm happy to discuss possible additions. If you wish to contribute, please let us know what you are working on. I'm eager to see our first contributor pull-request!

This list does not limit you! If you want to contribute something different that you think would be useful to others, I'd suggest making an addon and posting it in our FOSS Addons sub-forum. Also feel free to discuss any projects at any stage, free or otherwise, in our Projects sub-forum.

My thinking now is that we will remain in "alpha" until after Godot 4.0 release (probably in 2022). This allows me to continue to improve API without too much worry about breaking changes. By Godot 4.0 release, we should have a stable API. I'll port the project to 4.0 and then we'll move on to "beta" and then to official "v1.0" release.

Things I'm working on:
  • Ability to select and visit explored asteroids. We have a couple models in the current ivoyager_assets, but they are not implemented yet.
  • Stand alone "apps" for the Planetarium for various platforms with digital sigs and self-updaters (probably using Electron, but I'm not sure). Even better: We got a Progressive Web App with v0.0.10!
  • User can select whether camera tracks with body orbit (as it does now), ground (constant latitude, longitude) or neither. released in v0.0.7!
  • More componentization of Body: Atmosphere, Gravity, Composition, etc., that go alongside existing components Orbit, Model, etc. A spacecraft, for example, is just a Body that has some of those components but not others. [Partly done but more components are likely...]
  • AsteroidPacker addon. This is what turns source data into the asteroids binaries. It's currently repository asteroid_importer, but doesn't work with current versions. It'll be renamed "asteroid_packer" and polished up a little.
  • Fixing errors in 3RD_PARTY.txt and possible clarification elsewhere on our website. This is mainly a concern for commercial projects: specifically, some of our "maps" are of ambiguous provenance. These were made by various space enthusiasts mostly in the '90s and ended up at NOAA ftp sites, with no attached copyright info. (All could be remade from public domain NASA images, if it comes to that...)
Waiting for Godot 4.0. Sometime after this we'll have our betas and then v1.0 release!
  • Ability to select an asteroid/comet/whatever from a point-graphic on the screen. The ~65000 asteroid points are positioned by the GPU. Godot 4.0 will allow us to communicate those coordinates back to the CPU so you can select individual asteroids with a mouse-click.
  • Support for multiplayer. My working assumption is that all network peers will have the same solar system (i.e., the same current scene which is a tree of Body instances). However, the server has authority over it. That's mostly an issue of synching Body nodes (with their respective Orbit, etc.) and that should not have to happen too frequently in most cases. [Some sync already implemented for my own project. But Godot 4.0 changes multiplayer system enough that I want to wait before doing more.]
Ongoing improvements. I may get around to any these at any time. But progress most likely depends on contributions from other developers:
  • More graphic effects: atmosphere, shadows (I don't know why we don't see shadows now!), maybe a little sun flare, etc.
  • A planet rings shader for Saturn! Some resources for that here.
  • For the Planetarium, an "astronomy sky mode". I added an "outward" camera view but it isn't useful for astronomy since the user has no reference points to orient themselves. ("Outward" view is currently disabled but can be enabled in the ViewButtons widget.)
  • "Plug-and-Play" Body class. It's rather complicated to add a Body now. The goal is that you can drop in a Body object with a model and some Cartesian position/velocity vectors, and away it goes...!
  • API for orbit perturbations. Our "orbits-on-rails" system (as some call it) uses Keplerian orbit elements as its internal coordinate system, with rates or modification of these elements to represent common, well-understood (and extremely well-approximated) perturbations that occur due to n-body effects and non-spherical planets. We are using this already for orbit precessions, but currently, the values (for precessions: Ω-rate and ω-rate) have to be given. We need code to calculate these given a Body in a particular environment. The formulas exist for most situations one finds in our solar system including oblateness of planets (allowing things like frozen orbits) and Lagrange points (which give tadpole & horseshoe orbits).
  • A shader-based starmap. The starmap looks OK -- until you narrow the field-of-view, then it looks terrible! Surprisingly, there are only ~10,000 visible stars, which is 1/6 of the number of asteroids we show (quite easily) even in our web deployment. So we should be generating stars in a similar way. Magnitude, color & position of stars would be in binary files similar to our current asteroids. (We may or may not have PanoramaSky for diffuse effects, but I suspect these should be shaders too.)
  • Barycenter mechanic. We'll probably use only for Pluto-Charon where it gives obvious visual improvement.
  • Comets!
  • Nearby star systems with known or probable exoplanets. (I, Voyager is already built to handle multi-star systems.)
  • Models for non-fictional spacecrafts. Priority would be those exploring the the solar system -- Voyager 1 & 2, New Horizon, Juno, etc. -- but maybe also Earth-orbiting Hubble, ISS, etc.
  • Some kind of dynamic loading mechanism for close-up planet views. I'd like to be able to replicate the view one would have looking at Earth when zoomed to the ISS.
  • API for astronomical navigation. E.g., get_hohmann_transfer_orbit(), etc.

  • More as I get to it...
Not specifically a priority (for me), but I'd love to have in official I, Voyager...
  • VR.
  • "Interpretive" completion of world maps for Pluto and the half-imaged moons from Uranus outward. This would be appropriate as an addon feature.
  • "Interpretive" small bodies: procedurally generated asteroids, comets and small moons. I forgot where I saw it, but there is a database somewhere with current best estimates of the shape of real small bodies based on long-distance images. It would be nice if we could incorporate this even if the detailed shapes and textures are fictional.
  • Fully procedural star/planetary systems.
  • Support for "special case" n-body effects. It's a complicated discussion, but we don't do a full n-body simulation (see comment "API for orbit perturbations" above). But there's no reason we can't simulate individual special cases this way. For example, a rogue planet tearing through the system...


Sign In or Register to comment.