<--3D implementation ^--systems--^

Masses and Springs


The main issue with my system as it stands is the Physics. Currently, my two biggest issues are with stability and extremes.

Right now, Masses take forever to stabilize -- to reach an equilibrium. While it's kinda neat to watch, it's not very useful when you're actually trying to read the data. I've played with different values of friction, different mass values, different spring values, and different gravitational constants, and I just can't find a set of values that work. Maybe I'm not "applying" Physics often enough, due to the discrete nature of the system?

It's the discreteness of this system that causes the other problem of extremes -- Masses that get too close or too far from each other. Because Physics happens in "ticks" -- that is, is applied at intervals instead of continuously -- the smoothness that a natural physical system has doesn't exist. If two Masses are pulled together by an especially strong Spring, or pushed together by other strong Masses, they may be so close at the next "tick" of the Physics engine that the force between them hits extraordinary heights. The two Masses are suddenly propelled from each other at an enormous rate, and now exist well outside the bounds of the Space. Then what happens if there's a Spring between them which now wants to snap these two Masses back together with an equivalently large force? Let me tell you, it doesn't look good.

Things to improve


First and foremost, I need to improve this so my systems stay stable, as mentioned above.


I should decide how I want to do my 3D Viewer (myself or with Java3d). Not until I've got better physics, though.


At some point I have to leave Java for performance reasons, and I've pretty much decided that it'll be for C#. That is unless the QT and OpenGL bug bites again, and I get a bigger desire to learn those instead.


The Viewer needs the ability to rotate and zoom and pan. Maybe to click on Masses to get information from them, or just to center on them. It should also allow the user to choose which Masses and Springs may or may not be displayed. To change to color of Masses, or maybe even their mass.

The Collectors and Physics could use some interfaces as well. The Collector might have a dialog box for what file to read, what machine to ping, or a slider for how fast to collect data. The Physics engine might allow a user to change the gravitational constant, to play with friction, or to turn off the effect of Springs.


While the WebAccessCollector was mildly interesting, it certainly doesn't represent the kind of data I want to visualize. I want a traceroute Collector, which goes and maps the Internet (this requires non-Java code to do); a genealogical viewer for quickly navigating the large family trees I have; an alternate directory browser, floating in space; A website map, allowing quick, visual checks for broken hyperlinks. There are all sorts of possible Collectors, and they need to be written!
<--3D implementation ^--systems--^
©2002-2017 Wayne Pearson