I wanted to put out a development progress report for version 3.02.
It's been slow going, but I think significant progress has been made
and I'm hoping it won't be long before 3.02 will be ready for release.
Here are the features/bug fixes implemented so far:
* People's names are now displayed on the settlement map tool. The
names of the current occupants of a building are displayed in a
bulleted list below the building's name. A list of people outside the
settlement on EVA's is displayed on the upper left side of the map.
The Label button now has a drop down set of check boxes for selecting
label display options. This format for displaying person labels will
likely change as we implement more detailed tracking of person
location/movement within buildings and around the settlement, so this
is only a near-term solution.
* Lars added a nice new background tile for the application desktop
that's a definite improvement over the older gray tile. The old
desktop logo was also removed.
* A memory leak bug was found and fixed relating to creating new
simulations and loading simulations from a file. I determined using
the Java Visual VM performance monitor tool that old simulations were
not being properly garbage collected, so each simulation
created/loaded took more memory until the application slowed down and
eventually ran out of memory. I fixed this by going through and
carefully making sure all old simulation references were cleared and
key simulation classes had destroyer methods that cleared out all
collections. The memory leak appears to be gone now in performance
monitoring, so I think it's resolved. Thanks to Raul in the forums
for reporting this problem.
* I refactored and improved the code for calculating distance and
direction between locations on the surface of Mars. This code is used
for rover driving, among other things. Rover drivers were having
trouble reaching destinations and sometimes circled around the
destinations until they ran out of fuel. This happened particularly
when the time compression was set low. The distance and direction
calculation code was using poor algorithms that had significant error
at short distances (<5km). I did some research on Great Circle
algorithms used by pilots for navigation and fixed/improved the code,
and created some unit test cases to check the error margin from
expected calculated distances and directions. The new code tested to
be accurate in distances down to micrometers. The rovers appear to be
reaching their destinations just fine now, even at low time
* Jonathan has been working on performance improvement. There's a new
-headless parameter that allows starting the simulation by itself
without the GUI. This should be useful for performance testing.
Things left to do for version 3.02:
* Continue working on CPU/memory performance improvements for both the
simulation and the GUI. I'm going to be using the Java Visual VM
performance monitor to help with this.
* I'd like to create a GUI tool for viewing and editing resupply
missions from Earth to the settlements. This will also allow users to
create new resupplies from Earth when a settlement is running out of
* Try to create a Debian package for the sim, perhaps using a maven
plugin. If this is successful and can be a part of our normal version
release cycle, we should look into getting this into the Ubuntu and
other package repositories.
Let me know your thoughts on this. We can discuss things at the
upcoming developer meeting as well.
Mars Simulation Project